8086的寻址方式和指令系统解读.ppt

  1. 1、本文档共168页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8086的寻址方式和指令系统解读

微机原理及接口技术 第三章 8086的寻址方式和指令系统 3.1 8086指令格式和寻址方式 3.1.1 指令格式 3.1.2 寻址方式 一 寻址方式和有效地址的概念 二 各种寻址方式 三 存储器寻址时的约定 一 寻址方式和有效地址的概念 二 各种寻址方式 1 立即数寻址 2 寄存器寻址 3 直接寻址 4 寄存器间接寻址 5 寄存器相对寻址 6 基址变址寻址 7 相对基址变址寻址 存储器寻址时的约定 3.3 8086/8088指令系统 3.3.1 数据传送类指令 一、通用数据传送类指令 1. MOV指令 MOV指令举例 练习 2.堆栈操作指令PUSH/POP 3. 交换指令XCHG 4. 查表转换指令XLAT(或称换码指令) 举例 二、地址传送指令 1.LEA 有效地址(EA)送寄存器指令 2. LDS(LES) 地址指针传送指令 举例 三、标志位传送指令 1.标志寄存器读写指令LAHF/SAHF 2.标志寄存器入栈出栈指令PUSHF/POPF 举例: 四、输入输出数据传送指令IN/OUT 举例 3.3.2 算术运算类指令 一、二进制算术运算指令 1、加减法指令 (1)加减法指令ADD/SUB ADD指令实例 单字节和双字节数的表示范围 符号数和无符号数都不溢出 无符号数溢出 符号数溢出 符号数和无符号数都溢出 (2)带进位、借位的加减法指令ADC/SBB (3)增量和减量指令INC/DEC (4)取负指令NEG (5)比较指令CMP 2、乘除法指令 (1)乘法指令MUL/IMUL (2)除法指令DIV/IDIV 二、符号扩展指令CBW/CWD 例: 三 、BCD算术运算指令(十进制调整指令) 1、非压缩BCD数算术运算调整指令 AAM AH←(AL)/0AH的商 即AL除以10,商送AH AL←(AL)/0AH的余数 即AL除以10,余数送AL 2、压缩BCD数算术运算调整指令 例 求(8576)10+(2695)10 , AX=8576H, BX=2695H 3.3.3 逻辑运算与移位指令 一、 逻辑运算指令 NOT 逻辑非 AND/OR/XOR 逻辑与/或/异或 特点 例1:屏蔽0、1两位,使其为0,可用AND指令。 例2:屏蔽第5位,使其为1,可用OR指令。 例3:XOR指令的应用 TEST 测试指令 例4:检测AL最低位是否为1,为1则转移,可使用TEST指令。 二、移位和循环移位指令 移位指令SHL/SAL/SHR/SAR SHL/SAL/SHR/SAR操作功能 例 例 例 循环移位指令ROL/ROR/RCL/RCR ROL/ROR/RCL/RCR操作功能 3.3.5 控制转移类指令 一、无条件转移指令 JMP(jump) 段内转移 段间转移 段间间接转移实例 二、调用与返回指令 CALL 调用指令 RET 返回指令 三、 条件转移指令(直接标志) 三、条件转移指令(间接标志) 四、循环控制指令 五、中断指令 3.3.6 处理器控制类指令 一、 标志位操作指令 二、外同步类指令 三、停机指令和空操作指令 MOV AL, 43H OR AL, 20H ;AL=63H 0100 0011 OR 0010 0000 0110 0011(63H) 操作数的某些位取反。 如:XOR CL,80H 将CL寄存器中的第7位取反,其它位不变。 测试某一操作数是否与另一给定的操作数相等。 如: XOR AX,042EH JZ MATCH … 检查AX内容是否与024EH相等,若相等,则转移到标号 为MATCH的语句执行,否则执行JZ下面的语句。 例 从偏移地址TABLE开始的内存区中,存放着100个字节型数据,要求将这些数进行累加,并将累加和的低位存SUM单元,高位存SUM+1单元。 程序如下: LEA BX,TABLE ;(BX)←数据表地址指针 MOV CL,100 ;(CL)←数据块长度 XOR AX,AX ;清AL、AH,并清进位CF LOOP: ADD AL,[BX] ;加一个数到AL JNC GOON ;如(CF)=0,转移到GOON INC AH ;否则,AH加1 GOON:INC BX ;地址指针加1 DEC CL ;计数值减1 JNZ LOOP ;如(CL)≠0,转移到LOOPER MOV SUM,AX ;否

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档