网站大量收购独家精品文档,联系QQ:2885784924

汇编语言第3章 寻址方式.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 寻址方式 主讲:××× 3.1 Intel CPU的指令 3.1.1 指令与指令系统 3.1.2 指令的格式 3.1.1 指令与指令系统 指令是计算机的操作命令,通过指令去要求计算机完成某种指定的操作。它是CPU本身可以直接完成的操作。如传送、算术运算、串处理等,都是CPU本身可以直接完成的操作,不用借助于一段程序来实现,所以CPU有对应的传送、算术运算、串处理等指令。 CPU的指令种类虽然有限,但它们经过排列组合组成的指令序列却是无限的,每种指令序列理论上即是一种程序。所以运行在有限种类指令CPU上的程序几乎是无限的。 3.1.2 指令的格式 计算机中的指令一般由操作码字段和操作数字段两部分组成,个别的指令没有操作数字段。操作码字段指示计算机所要完成的操作,而操作数字段则指出在指令执行过程中所需要的操作数。操作数字段比较灵活,可以是操作数本身、还可以是得到操作数方法的信息,即寻址方式。 指令的二进制代码格式为: 操作码 [操作数1] …… [操作数n] 指令的种类 若没有操作数字段,称为无操作数指令;若操作数字段只有一个,称为单操作数指令;若操作数字段有两个,称为双操作数指令;若操作数字段是三个,称为三操作数指令。最常用的是双操作数指令和单操作数指令。 几种指令的书写格式。 1.双操作数指令的书写格式。 格式:[标号:] 操作码 dst,src [;注释] 2.单操作数指令的书写格式。 格式:[标号:] 操作码 opr [;注释] opr项即该指令的惟一操作数。其它项与双操作数指令类似。 3.三操作数指令的书写格式。 格式:[标号:] 操作码 dst,src,imm[;注释] 4.无操作数指令的书写格式。 格式:[标号:] 操作码  [;注释] Intel 8086/8088 CPU的指令一般由操作码字段和操作数字段两部分组成,对于某条指令的操作数字段,如果直接给出全部操作数的具体值,则该条指令的操作结果就永远是单一的,没有变化。所以,Intel 8086/8088 CPU的指令的操作数字段都不直接给出所有操作数的具体值,而只是在操作数字段中给出如何得到这个操作数的信息,如在CPU中某个寄存器中得到这个操作数,或在内存的某个段中,以某种方式求得这个操作数的偏移地址,进而求得该操作数的物理地址,根据该物理地址在内存中取得这个操作数。这些在操作数字段中,表示如何得到该操作数的信息,称为该操作数的寻址方式。 3.2 Intel 8086/8088 CPU的寻址方式 3.2.1立即寻址 3.2.2寄存器寻址 3.2.3直接寻址 3.2.4寄存器间接寻址 3.2.5寄存器相对寻址 3.2.6基址变址寻址 3.2.7相对基址变址寻址 3.2.8端口寻址方式 以MOV指令和ADD指令为例详细介绍所有寻址方式 3.2.1立即寻址 立即寻址是指操作数的具体值作为指令的一部分而直接写在指令中,这种操作数称为立即数,立即数紧跟在操作码之后,与操作码一起存放在代码段中。 如果立即数为16位,则立即数的存放规则是高字节存放在高地址,低字节存放在低地址。如助记符表示的指令MOV BL,3AH,对应的二进制机器语言指令为B33AH,其中,B3H是操作码,3AH为立即数;助记符表示的指令MOV AX,1200H,对应的二进制机器语言指令为B80012H,其中,B8H是操作码,而0012H是立即数,存放规则是高字节存放在高地址,低字节存放在低地址。 3.2.2寄存器寻址 寄存器寻址方式的操作数直接存放在由指令指明的寄存器中。在汇编指令中直接书写寄存器名,如16位寄存器操作数可以是AX、BX、CX、DX、SI、DI、BP、SP等;8位寄存器操作数可以是AH、AL、BH、BL、CH、CL、DH、DL。此寻址方式由于存取操作数直接从CPU内部寄存器中获得,不需访问存储器,因而指令执行的速度快。 3.2.3直接寻址 采用直接寻址的操作数,其所在存储单元的偏移地址直接在指令中给出,其所在的段是默认的,即在数据段,当然,操作数也可以在非默认段,这种情况称为段跨越。在用助记符书写的汇编语言指令中,偏移地址如果是具体的数值,则必须加中括号;偏移地址如果是符号地址,则可以不加中括号[];段跨越时,操作数前必须加“段寄存器名”:这样的段跨越前缀。直接寻址是最简单的存储器寻址,这种寻址,适合于处理存储器的单个存储单元。 3.2.4寄存器间接寻址 采用寄存器间接寻址的操作数,其所在存储单元的偏移地址直接在指令中的基址或变址寄存器中给出,基址或变址寄存器是指8086/8088 CPU中的BX、SI、DI、BP四个寄存器。操作数所在的段是默认的,即是BX、S

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档