首页 微型计算机接口技术课件第三章1

微型计算机接口技术课件第三章1

举报
开通vip

微型计算机接口技术课件第三章1 第3章 指令系统(1) 主要内容: 指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理 操作码的含义 指令对操作数的要求 指令执行的结果 3.1 概述 了解: 指令及指令系统 指令的格式 指令中的操作数类型 一、指令与指令系统 指令: 控制计算机完成某种操作的命令 指令系统: 处理器所能识别的所有指令的集合 指令的兼容性: 同一系列机的指令都是兼容的 二、指令格式 指令中应包含的信息: 运算数据的来源 运算结果的去向 执行的操作 指令格式: 操...

微型计算机接口技术课件第三章1
第3章 指令系统(1) 主要内容: 指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理 操作码的含义 指令对操作数的 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 指令执行的结果 3.1 概述 了解: 指令及指令系统 指令的格式 指令中的操作数类型 一、指令与指令系统 指令: 控制计算机完成某种操作的命令 指令系统: 处理器所能识别的所有指令的集合 指令的兼容性: 同一系列机的指令都是兼容的 二、指令格式 指令中应包含的信息: 运算数据的来源 运算结果的去向 执行的操作 指令格式: 操作码 [操作数],[操作数] 执行何种操作 目标操作数 源操作数 参加操作的数据 或数据存放的地址 指令格式: 零操作数指令: 操作码 单操作数指令: 操作码 操作数 双操作数指令: 操作码 操作数,操作数 多操作数指令: 三操作数及以上 三、指令中的操作数 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 征参加操作的数据本身 立即数 表征数据存放的地址 寄存器 存储器 操作数: 立即数操作数: 表示参加操作的数据本身,可以是8位或16位 例: MOV AX,1234H MOV BL,22H 立即数无法作为目标操作数 立即数可以是无符号或带符号数,其数值应在可取值范围内 操作数: 寄存器操作数: 表示参加运算的数存放在指令给出的寄存器中,可以是16位或8位。 例:MOV AX,BX MOV DL,CH 操作数: 存储器操作数: 表示当前参加运算的数存放在存储器的某一个或某两个单元中 例:MOV AX,[1200H] MOV AL,[1200H] 22H 11H 1200H 偏移地址 AH AL ┇ 四、指令字长与机器字长 指令字长由操作码的长度、操作数地址长度、操作数个数决定 8088/8086CPU采用变字长指令格式 机器字长: 计算机能够直接处理的二进制数的位数 五、指令的执行速度 指令的字长影响指令的执行速度 (常用指令的执行时间见表3-1) 对不同的操作数,指令执行的时间不同: 存储器 立即数 寄存器 快! 3.2 寻址方式 寻找操作数所在地址的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 寻找转移地址的方法 本节 一、立即寻址 指令中的源操作数是立即数,即源操作数是参加操作的数据本身 例:MOV AX,1234H 12H 34H AH AL MOV 代码段 ┇ 二、直接寻址 指令中直接给出操作数的偏移地址 例:MOV AX,[1200H] 22H 11H 1200H 偏移地址 AH AL ┇ 11 22 数据段 直接寻址 直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。 例:MOV AX,ES:[1200H] 三、寄存器寻址 参加操作的操作数在CPU的通用寄存器中。 例:MOV AX,BX AX BX 四、寄存器间接寻址 参与操作的操作数存放在内存中,其偏移地址为指令中的寄存器的内容。 例:MOV AX,[BX] 设(BX)=1200H 22H 11H 1200H 偏移地址 AH AL ┇ 11 22 数据段 代码段 MOV 寄存器间接寻址 由寄存器间接给出操作数的偏移地址 存放偏移地址的寄存器称为间址寄存器,它们是:BX,BP,SI,DI 操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器: BX,SI,DI 默认在数据段 BP 默认在堆栈段 寄存器间接寻址 寄存器 间接寻址 基址寻址(间址寄存器为基址寄存 器BX,BP) 变址寻址(间址寄存器为变址寄存 器SI,DI) 五、寄存器相对寻址 操作数的偏移地址为寄存器的内容加上一个位移量 例:MOV AX,[BX+DATA] 设DS=2000H,BX=0220H,DATA=05H 则:AX=[20225H] 六、基址、变址寻址 操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,操作数的段地址由选择的基址寄存器决定 例:MOV AX,[SI+BX] 七、基址、变址、相对寻址 操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,再加上一个位移量 操作数的段地址由选择的基址寄存器决定 例:MOV AX,[BP+SI+DATA] 八、隐含寻址 指令隐含了的一个或两个操作数的地址,即操作数在默认的地址中 例: MUL BL 指令的执行:AL×BL AX 3.3 8086指令系统 从功能上包括六大类: 数据传送 算术运算 逻辑运算和移位 串操作 程序控制 处理器控制 一、数据传送 通用数据传送 输入输出 地址传送 标志位操作 1. 通用数据传送 一般数据传送指令 堆栈操作指令 交换指令 查表转换指令 字位扩展指令 特点: 该类指令的执行对标志位不产生影响 一般数据传送指令 一般数据传送指令 MOV 格式:MOV dest,src 操作:src dest 例: MOV AL,BL 一般数据传送指令 注: 两操作数字长必须相同 两操作数不允许同时为存储器操作数 两操作数不允许同时为段寄存器 在源操作数是立即数时,目标操作数不能是段寄存器 IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现 一般数据传送指令 判断下列指令的正确性: MOV AL,BX MOV AX,[SI]05H MOV [BX][BP],BX MOV DS,1000H MOV DX,09H MOV [1200],[SI] 一般数据传送指令应用例 将(*) 的ASCII码2AH送入内存1000H开始的100个 单元中: MOV DI,1000H MOV CX,64H MOV AL,2AH AGAIN:MOV [DI],AL INC DI ;DI+1 DEC CX ;CX-1 JNZ AGAIN ;CX≠0则继续 HLT 上段程序在代码段中的存放形式 設CS=109EH,IP=0100H,则各条指令存放地址 如下: CS : IP 109E:0100 MOV DI,1000H 109E:0103 MOV CX,64H 109E:0106 MOV AL,2AH 109E:0108 MOV [DI],AL 109E:010A INC DI 109E:010B DEC CX 109E:010C JNZ 0108 109E:010E HLT 数据段中的分布 送上2AH后数据段中相应存储单元的内容改 变如下: DS:1000 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1010 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1020 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1030 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1040 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1050 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1060 2A 2A 2A 2A 00 00 00 00 00 00 00 00 00 00 00 00 偏移地址[DI] 堆栈操作指令 掌握: 有关堆栈的概念 栈顶、栈首、栈底 堆栈指令的操作原理 执行过程,执行结果 堆栈操作的原则 先进后出 以字为单位 堆栈操作指令 压栈指令 PUSH 格式: PUSH OPRD 出栈指令 POP 格式: POP OPRD 压栈指令 PUSH 指令执行过程: (SP)←(SP)-2 (SP)-1←操作数高字节 (SP)-2←操作数低字节 压栈指令的操作 设AX=1234H,SP=1200H 执行 PUSH AX 指令后堆栈区的状态: 1200H ┇ 堆栈段 SP-2=11FEH 12H 34H 1200H ┇ 堆栈段 12H 34H AX 入栈后 入栈前 出栈指令POP 指令执行过程: (SP) 操作数低字节 (SP)+1 操作数高字节 (SP)←(SP)+2 出栈指令的操作 执行 POP AX 堆栈区的状态: 12H 34H 11FEH ┇ 堆栈段 代码段 PUSH 12 34 AX SP+2 堆栈操作指令说明 指令的操作数必须是16位的 操作数可以是寄存器或存储器两单元,但不能是立即数 不能从栈顶弹出一个字给CS PUSH和POP指令在程序中一般成对出现 PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反 堆栈操作指令例 PUSH AX PUSH BX PUSH WORD PTR[BX] POP WORD PTR[BX] POP AX POP BX ┇ 如此,会使AX和BX的内容互换 交换指令 格式: XCHG REG,MEM/REG 两操作数必须有一个是寄存器操作数 不允许使用段寄存器。 例: XCHG AX,BX XCHG [2000],CL 查表指令 格式: XLAT 说明:用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址 操作:[BX+AL] AL 例:教材第112页 查表指令例 数据段中存放有一 张ASCII码转换表, 设首地址为2000H, 现欲查出表中第11 个代码的ASCII码 (设DS=4000H) 30 31 32 ... 39 41 42 ... 45 46 ... 42000H+0 42000H+11 ‘0’ ‘1’ ‘2’ ‘9’ ‘A’ ‘B’ ‘E’ ‘F’ 查表指令例 可用如下指令实现: MOV BX,2000H ;(BX)←表首地址 MOV AL,0BH ;(AL)←序号 XALT ; 查表转换 执行后得到:(AL)=42H 字位扩展指令 将符号数的符号位扩展到高位 指令为零操作数指令,采用隐含寻址,隐含的操作数为AX及AX,DX 无符号数的扩展规则为在高位补0 字节到字的扩展指令 格式: CBW 操作:将AL内容扩展到AX 规则:若最高位=1,则执行后AH=FFH 若最高位=0,则执行后AH=00H 字到双字的扩展指令 格式: CWD 操作:将AX内容扩展到DX AX 规则:若最高位=1,则执行后DX=FFFFH 若最高位=0,则执行后DX=0000H 字位扩展指令例 MOV AL,44H CBW ;执行结果 MOV AX,0AFDEH CWD MOV AL,86H CBW ? 2. 输入输出指令 掌握: 指令的格式及操作 指令的两种寻址方式 指令对操作数的要求 输入输出指令 专门面向I/O端口操作的指令 包括 输入指令 IN acc,PORT 输出指令 OUT PORT,acc 端口地址 指令寻址方式 直接寻址 直接给出8位端口地址,可寻址256个端口 间接寻址 16位端口地址由DX指定,可寻址64K个端口 I/O指令例 IN AX,80H MOV DX,2400H IN AL,DX OUT DX,AX OUT AL,35H 3. 地址传送指令 取偏移地址指令LEA LDS指令 LES指令 取偏移地址指令LEA 将变量的16位偏移地址取出送目标寄存器 格式: LEA REG,MEM 指令要求源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器, LEA指令 比较下列指令: LEA SI,DATA1 MOV SI,DATA1 MOV BX,[BX] LEA BX,[BX] ┇ ┇ ┇ DATA1 符号地址 12H 34H 1100H 88H 77H BX=1100H LEA指令在程序中的应用 将数据段中首地址为MEM1 的50个字节的数据传送到同一逻辑段首地址为MEM2的区域存放。编写相应的程序段 LEA指令在程序中的应用 开 始 取源地址 取目标地址 送数据块长度到CL 传送一个字节 修改地址指针 修改计数值 计数值=0? 结 束 N Y LEA指令在程序中的应用 LEA SI,MEM1 LEA DI,MEM2 MOV CL,50 NEXT: MOV AL,[SI] MOV [DI],AL INC SI INC DI DEC CL JNZ NEXT HLT 取远地址指针指令 LDS reg,MEM32 LES reg,MEM32 指令中源操作数是存储器某4个连续单元的偏移地址,目标操作数是间址寄存器。 LDS指令例 例: LDS DI,[1200H] MOV AX,[DI] 指令执行后: LDS指令例 DS = 6000H DI = 1234H AX = 2233H ┇ ┇ 12H 34H 00H 60H 1200H 数据段 1 ┇ DS DI 数据段2 33H 22H 61234H LES指令例 LES DI,[1200H] MOV AX,[DI] ┇ ┇ 12H 34H 00H 60H 1200H 数据段 ┇ ES DI 附加段 33H 22H 61234H 4. 标志位操作指令 LAHF SAHF PUSHF POPF 隐含操作数AH 隐含操作数FLAGS LAHF,SAHF LAHF ;将FLAGS的低8位装入AH SAHF ;执行与LAHF相反的操作 CF PF AF ZF CF …. AH FLAGS D15 D0 D7 D0 PUSHF,POPF 针对FLAGS的堆栈操作指令 将标志寄存器压栈或从堆栈弹出 二、算术运算类指令 加法运算指令 减法运算指令 乘法指令 除法指令 算术运算指令的执行大多对状态标志位会产生影响 1. 加法指令 普通加法指令ADD 带进位位的加法指令ADC 加1指令INC 加法指令对操作数的要求与MOV指令相同 ADD指令 格式: ADD OPRD1,OPRD2 操作: OPRD1+OPRD2 OPRD1 ADD指令的执行对全部6个状态标志位都产生影响 ADD指令例 MOV AL,78H ADD AL,99H 指令执行后6个状态标志位的状态 ADD指令例 01111000 + 10011001 00010001 1 标志位状态: CF= SF= AF= ZF= PF= OF= ADC指令 指令格式、对操作数的要求、对标志位的影响与ADD指令完全一样 指令的操作: OPRD1+OPRD2+CF OPRD1 ADC指令多用于多字节数相加,使用前要先将CF清零。 INC指令 格式: INC OPRD 操作: OPRD+1 OPRD 常用于在程序中修改地址指针 不能是段寄存器或立即数 2. 减法指令 普通减法指令SUB 考虑借位的减法指令SBB 减1指令DEC 比较指令CMP 求补指令NEG 减法指令对操作数的要求与对应的加法指令相同 SUB指令 格式: SUB OPRD1,OPRD2 操作: OPRD1- OPRD2 OPRD1 对标志位的影响与ADD指令同 SBB指令 指令格式、对操作数的要求、对标志位的影响与SUB指令完全一样 指令的操作: OPRD1- OPRD2- CF OPRD1 DEC指令 格式: DEC OPRD 操作: OPRD - 1 OPRD 指令对操作数的要求与INC相同 指令常用于在程序中修改计数值 应用程序例 MOV BL,2 NEXT1 :MOV CX,0FFFFH NEXT2: DEC CX JNZ NEXT2 DEC BL JNZ NEXT1 HLT NEG指令 格式: NEG OPRD 操作: 0 - OPRD OPRD 8/16位寄存器或存储器操作数 用0减去操作数,相当于对该操作数求补码 指令的两点注意请参见教材p121 CMP指令 格式: CMP OPRD1,OPRD2 操作: OPRD1- OPRD2 指令执行的结果不影响目标操作数! CMP指令 用途: 用于比较两个数的大小,可作为条件转移指令转移的条件 指令对操作数的要求及对标志位的影响与SUB指令相同 CMP指令 两个无符号数的比较: CMP AX,BX 若 AX > BX CF=0 若 AX < BX CF=1 两个带符号数的比较 CMP AX,BX 两个数的大小由OF和SF共同决定 OF和SF状态相同 AX > BX OF和SF状态不同 AX < BX CMP指令例 LEA BX,MAX LEA SI,BUF MOV CL,20 MOV AL,[SI] NEXT:INC SI CMP AL,[SI] JNC GOON ;CF=0转 XCHG [SI],AL GOON:DEC CL JNZ NEXT MOV [BX],AL HLT 程序功能 ? 程序功能 ┇ ┇ ┇ MAX BUF XXH XXH XXH 找20个数中最大的数,并将其存放在MAX单元中 3. 乘法指令 无符号的乘法指令MUL 带符号的乘法指令IMUL 乘法指令采用隐含寻址,隐含的是存放被乘数的累加器AL或AX及存放结果的AX,DX; 若运算结果的高位全为0或1,表示其为无效数据,OF=CF=0 无符号数乘法指令 格式: MUL OPRD 不能是立即数 操作: OPRD为字节数 AL×OPRD AX OPRD为16位数 AX×OPRD DXAX 无符号数乘法指令例 MUL BYTE PTR[BX] ┇ BX XXH AL ×XXH AX 带符号数乘法指令 格式: IMUL OPRD IMUL指令将OPRD视为带符号数,运算时若操作 数为负数,要先将操作数求补码,运算后再将结 果求补。 IMUL指令例 设:AL=FEH,CL=11H,求AL与CL的乘积。 若为无符号数,则 MUL CL 结果:AX=10DEH 若将两操作数看作有符号数,则: IMUL CL 指令执行后:AX=FFDEH=-34。 4. 除法指令 无符号除法指令 DIV OPRD 有符号除法指令 IDIV OPRD 若OPRD是字节数,则执行AX/OPRD 若OPRD是双字节数,则执行 DXAX/OPRD 指令要求被除数是除数的双倍字长 AL=商 AH=余数 AX=商 DX=余数 5. BCD码调整指令 共6条,均为隐含寻址方式,隐含的操作数是 AL或AL、AH; 不能单独使用,要紧跟在相应的算术运算指令 之后; 执行结果为压缩BCD码或扩展BCD码表示的十进制数。 加法指令应用例 计算2658+3619=? 结果存放在SUM单元 设被加数和加数的每一位都以ASCII码形式存放在内存中,低位在前,高位在后。 36H 32H 39H 31H STRING1 STRING2 38H 35H 36H 33H 数据段 SUM ... ... 加法指令应用例 LEA SI,STRING1 LEA DI,STRING2 LEA BX,SUM MOV CX,4 CLC NEXT:MOV AL,[SI] ADC AL,[DI] AAA MOV [BX],AL INC SI INC DI INC BX DEC CX JNZ NEXT
本文档为【微型计算机接口技术课件第三章1】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
壹笑先生
致力于服务广大学子、教师、社考人员等一份学习的资料!
格式:ppt
大小:284KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-05-13
浏览量:11