汇编语言03详解.ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
逻辑段分配 立即数寻址的功能 立即数寻址的执行 寄存器寻址的功能 寄存器寻址的执行 存储器直接寻址的功能 存储器直接寻址的执行 寄存器间接寻址的功能 寄存器间接寻址的执行 基址寻址的功能 基址寻址的执行 基址变址寻址的功能 基址变址寻址的执行 相对基址变址寻址的功能 相对基址变址寻址的执行 * * 寻址方式 指令系统设计了多种操作数的来源。 寻找操作数的过程就是操作数的寻址。 操作数采取哪一种寻址方式,会影响机器运行的速度和效率。 * 如何寻址一个操作数对程序设计很重要! 80x86的机器代码格式(补充) * 给出立即寻址方式需要的数值本身。 给出某些寻址方式需要的对基地址的偏移量。 表明采用的寻址方式。 1/2字节 0/1字节 0/1/2字节 0/1/2字节 操作码 mod reg r/m 位移量 立即数 操作数 标准机器代码示例(补充) mov ax,[BP+0] ;机器代码是 8B 46 00。 前一个字节8B是操作码(含w=1表示字操作)。 中间一个字节46(01 000 110)是 “mod reg r/m”字节。 reg=000表示目的操作数为AX。 mod=01和r/m=110表示源操作数为[BP+D8]。 最后一个字节就是8位位移量〔D8=〕00。 * 1/2字节 0/1字节 0/1/2字节 0/1/2字节 操作码 mod reg r/m 位移量 立即数 2位 3位 3位 标准机器代码示例(补充) mod 位移量 00 位移量=0 01 位移量=低位代符号扩成16位 10 位移量=高位:低位 11 r/m作为“reg”自断对待 1/2字节 0/1字节 0/1/2字节 0/1/2字节 操作码 mod reg r/m 位移量 立即数 * mod 分配 标准机器代码示例(补充) reg w=1 (16位) w=0 (8位) 段 000 AX AL 00 ES 001 CX CL 01 CS 010 DX DL 10 SS 011 BX BL 11 DS 100 SP AH 101 BP CH 110 SI DH 011 DI BH 1/2字节 0/1字节 0/1/2字节 0/1/2字节 操作码 mod reg r/m 位移量 立即数 * Reg 分配 标准机器代码示例(补充) r/m 操作数地址 000 (BX)+(SI)+位移 001 (BX)+(DI)+位移 010 (BP)+(SI)+位移 011 (BP)+(DI)+位移 100 (SI)+位移 101 (DI)+位移 110 (BP)+位移 111 (BX)+位移 1/2字节 0/1字节 0/1/2字节 0/1/2字节 操作码 mod reg r/m 位移量 立即数 * r/m 分配 其它机器代码形式(补充) * if d = 1 then ``to reg; if d = 0 then ``from reg 其它机器代码形式(补充) mov al,05 ;机器代码是B0 05。 前一个字节B0是操作码(含一个操作数AL),后一个字节05是立即数。 mov ax,0102H ;机器代码是B8 02 01。 前一个字节B8是操作码(含一个操作数AX),后两个字节02 01是16位立即数(低字节02在低地址)。 * 操作码 操作数 指令的助记符格式 操作码 操作数1,操作数2 ;注释 操作数2,称为源操作数 src,它表示参与指令操作的一个对象。 操作数1,称为目的操作数 dest,它不仅可以作为指令操作的一个对象,还可以用来存放指令操作的结果。

文档评论(0)

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

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

1亿VIP精品文档

相关文档