微机原理及其应用 第4章.ppt

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

5.寄存器相对寻址 操作数的有效地址EA由两部分合成,一部分置于某个基址或变址寄存器中,另一部分为指令中指定的8位或16位位移量。操作数所在的默认段与寄存器间接寻址类似。 例: MOV AX,4000H [DI] 或 MOV AX,[DI + 4000H] 设DI=1000H,则有效地址为: EA=1000H+4000H=5000H。 若DS=3000H,则物理地址为: 30000H + 5000H = 35000H。。 例: MOV AX,[BX][DI] 或 MOV AX,[BX+DI] 设BX=6000H,DI=1000H,则:EA=6000H+1000H=7000H,默认段为DS。 若DS=2000H,则源操作数所对应的物理地址为:20000H+7000H=27000H。 7.相对基址变址寻址 有效地址由三部分组成, 即:EA=基址寄存器内容+变址寄存器内容+8位或16位位移量。 操作数所对应的默认段与基址变址寻址方式相同。 例: MOV AX,[BX+SI+0080H]; 则:EA=BX+SI+0080H,操作数在数据段 POP CS × ② DAS:压缩型BCD码减法的调整指令 指令功能:把AL中的减法结果调整为缩压型BCD码数,调整后的结果在AL中。 调整原则如下:若AL中低4位大于9或AF=1,则AL-06H→AL,并使AF置1; 若AL中高4位大于9或CF=1,则AL-60H→AL,并使CF置1。 (3)乘法的BCD码调整 AAM:乘法的非压缩型BCD码调整 指令功能:把AX的乘法结果调整为非压缩型BCD码数。调整后的结果低位(个位)在AL中,高位(十位)在AH中。 调整过程:把AL的内容除以0AH,商放AH中,余数放AL中。 (4)除法的BCD码调整 AAD:除法的非压缩型BCD码调整 指令功能:对AX中的两位非压缩型BCD码数进行调整。 调整原则:AH×0AH+AL→AL,0→AH; 显然AAD的操作实质是将AX中的非压缩型BCD码(十进制数)转换为二进制。 与其它5条调整指令不同的是,AAD指令须放在相应的除法指令之前。 表4.1 串操作指令的隐含参数 (1)REP S_ins ;CX-1→CX,若CX≠0, 重复执行串操作。 常用作MOVS,STOS指令的前缀 段间转移(属性FAR): ● 转移指令和转移目标不在同一代码段内,转移时需 要同时改变CS和IP的值。 ● 段间转移可实现在1MB的地址空间范围内任意转移。 段内转移(属性NEAR) : ● 转移指令和转移目标在同一代码段内,转移时仅需要改变IP的值,而CS的值保持不变。 段内转移可实现在一个代码段内的地址空间范围(最大为64KB)内任意转移。 若段内转移的范围在-128~+127之间,则称为短转移(属性SHORT) 无论是段内转移还是段间转移,都还有直接和间接转移之分。 直接转移:在转移指令中直接指明目标地址的转移量称为直接转移。 间接转移:如果转移地址存放在某一寄存器或内存单元中,则称为间接转移。 若转移地址存放在寄存器中,则只能实现段内间接转移(因为寄存器间接寻址的最大范围为64K); 若转移地址存放在内存单元中,则既可实现段内间接转移,也可实现段间间接转移。 段内转移还有相对和绝对转移之分 相对转移:目标地址是IP值加上一个偏移量的转移称相对转移。 绝对转移:以一个新的值完全代替当前的IP值(CS值可能也发生改变)的转移称为绝对转移。 在8086指令系统中,段内直接转移都是相对转移,段内间接转移以及段间转移都是绝对转移。 为判断两个带符号数A,B大小,可先作A-B,若: OF=0 且 SF=0 则必有 A≥B SF=1 则必有 A<B OF=1 且 SF=0 则必有 A<B SF=1 则必有 A>B ∴得出结论:判断 A>B 的依据是 OF⊕SF=0 A<B 的依据是 OF⊕SF=1 A = B 的依据是 ZF=1 3.子程序调用和返回指令 子程序调用(CALL)指令包括:段内直接调用、段内间接调用、段间直接调用、段间间接调用等形式。 在CALL指令中直接给出子程序名是最常见的形式。 返回指令包括RET和RET n两种形式,其中的RET n

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档