第3讲寻址方式和指令系统.pptVIP

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
*/87;*/87;*/87;指令有机器指令和汇编指令两种形式。 前一种形式由基2码(二进制)组成,它是机器所能直接理解和执行的指令。但这种指令不好记忆,不易理解,难写难读。因此,人们就用一些助记符来代替这种基2码表示的指令,这就形成了汇编指令。汇编指令中的助记符通常用英文单词的缩写来表示,如加法用ADD、减法用SUB、传送用MOV等等,这些符号化了的指令使得书写程序、阅读程序、修改程序变得简单方便了。但计算机不能直接识别和执行汇编指令,在把它交付给计算机执行之前,必须翻译成计算机所能识别的机器指令。汇编指令与机器指令是一一对应的,本书中的指令都使用汇编指令形式书写,便于学习和理解。;*/87;*/87; 指令中用于确定操作数存放地址的方法,称为寻址方式。 操作数及操作结果存放的地点有三处:存放在指令的地址码字段中;存放在寄存器中;存放在存储器的数据段、堆栈段或附加数据段中。 寻找这些操作数有三种基本寻址方式,立即寻址方式、寄存器寻址方式和存储器寻址方式。其中,存储器寻址又包括多种寻址方式。下面分别介绍这些寻址方式。 ;*/87;*/87;汇编这种寻址方式时,汇编程序将寄存器的地址编号写入指令的地址码字段。当机器执行含有这种寻址方式的指令时,根据地址码字段的编号访问到寄存器,继而访问到操作数。这种寻址方式的优点是:寄存器数量一般在几个到几十个,比存储器单元少很多,因此它的地址码短,从而缩短了指令长度,节省了程序存储空间;另一方面,从寄存器里取数比从存储器里取数的速度快得多,从而提高了指令执行速度。;当操作数放在存储器中的某个单元时,CPU要访问存储器才能获得该操作数。如果存储器的存储单元地址是20位,把通过各种方法算出段内偏移地址(有效地址),结合段地址形成20位物理地址找到操作数的方法,统称为存储器寻址方式。;*/87;*/87;*/87;*/87;【例3-5】 假设TABLE是在数据段定义的一个字节数组的首地址标号(变量名),其偏移地址为1000H,则指令 MOV AL,TABLE 或 MOV AL,TABLE+2 或 MOV AL,[TABLE] 或 MOV AL,[TABLE+2] 或 MOV AL,[1000H] 或 MOV AL,[1000H+2] 是等效的。其中TABLE、[TABLE]、[1000H]、TABLE+2、[TABLE+2]和[1000H+2]都是直接寻址方式。 ;例3-6】 MOV AX,[1000H] 如果(DS)=3000H,(31000H)=12H,(31001H)=34H,则指令执行完以后,(AX)=3412H。 由此看出,这种寻址方式默认的段寄存器是DS。IBM-PC机允许在汇编指令中指定除DS寄存器以外的段寄存器作为操作数的段地址,这就是段超越前缀,其汇编格式为 段寄存器名:地址表达式 或 段寄存器名:数字表达式 或 段寄存器名:[地址表达式] 或 段寄存器名:[数字表达式 ] ;【例3-7】 假设TABLE是在附加数据段定义的一个字节数组的首地址标号,其偏移地址为1000H,则指令 MOV AL,ES:TABLE 或 MOV AL,ES:[TABLE] 或 MOV AL,ES:1000H 或 MOV AL,ES:[1000H] 是等效的,都表示将字节数组的第一个数组元素送入AL寄存器中。 ;*/87;汇编寻址这种方式时,汇编程序将BX、SI、DI或BP寄存器的地址编号写入指令的地址码字段,当机器执行含有这种寻址方式的指令时,依据地址码字段的值访问得到寄存器的值,将该值作为操作数的偏移地址。如果指令中指定的寄存器是BX、SI、DI,则操作数默认在数据段中,取DS寄存器的值作为操作数的段地址值;如果指令中指定的寄存??是BP,则操作数默认在堆栈段中,取SS寄存器的值作为操作数的段地址值,从而算得操作数的20位物理地址,继而访问到操作数。;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/87;*/8

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档