微机原理第3节 指令系统.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 指令系统 第三章 指令系统 §3.1 概述 指令是让计算机完成某种操作的命令,指令的集合称作指令系统,不同系列计算机有不同的指令系统。 任何一种汇编语言的指令语句都是与机器指令一一对应的,它通过汇编程序将其翻译成机器指令代码(目标代码),让CPU执行某种操作。 86系列汇编语言指令语句格式如下图所示,带方括号的项表示是可选项。 [标号:] 指令助记符 [操作数] [;注释] §3.2 寻址方式 指令系统设计了多种操作数的来源,操作数可以定位在以下地方之一:指令中、寄存器、存储单元、I/O端口。寻找操作数的过程就是操作数的寻址方式。 操作数采取哪一种寻址方式,会影响机器运行的速度和效率。 如何寻址一个操作数对程序的设计来讲也很重要。 §3.2 寻址方式 §3.2 寻址方式 8086 CPU指令系统中,有一部分指令所用的8位或16位操作数就在指令中提供,这种方式叫立即寻址方式。 如果操作数就在CPU的内部寄存器中,那么寄存器名可在指令中指出。这种寻址方式就叫寄存器寻址方式。 使用直接寻址方式时,数据总是在存储器中,存储单元的有效 地址EA由指令直接指出,所以直接寻址是对存储器进行访问时 可采用的最简单的方式。 例如: MOV AX, [ 2000H ] EA=2000H, 假设(DS)=3000H, 那么物理地址PA=32000H §3.2 寻址方式 注意: 隐含的段为数据段DS 可使用段跨越前缀 MOV AX, ES: [2000H] 操作数地址可由变量(符号地址)表示, 但要注意变量的属性。 VALUE DB 10 MOV AH, VALUE MOV AX, VALUE ? MOV AX, WORD PTR VALUE ? §3.2 寻址方式 §3.2 寻址方式 采用寄存器间接寻址方式时,操作数一定在存储器中,存储单元的有效地址由寄存器指出。 16位寻址时可用的寄存器是BX,BP,SI和DI;         §3.2 寻址方式 §3.2 寻址方式 例如: MOV AX,[BX] 设DS=5000H,BX=3000H,则本指令在执行时,将53000H 和53001H两个单元的内容送AX。 MOV BX,[BP] 设SS=5000H,BP=4000H,则本指令在执行时,将54000H 和54001H两个单元的内容送BX。 §3.2 寻址方式 操作数的有效地址EA为基址或变址寄存器的内容与指令中指定的位移量之和,操作数在存储器中。 可用寄存器及其对应的默认段情况与寄存器间接寻址方式相同。 EA计算方法如下: §3.2 寻址方式 例如: MOV AX,COUNT[SI](MOV AX,[COUNT+SI]) 若(DS)=3000H,(SI)=2000H, COUNT=3000H,(35000H)=1234H 则物理地址=30000+2000+3000=35000H 执行结果为(AX)=1234H 寄存器相对寻址通常用于对数组元素、字符串等进行操作,操作过程中,指令会自动修改变址寄存器中的地址,以指向下一个操作数。 §3.2 寻址方式 用这种寻址方式时,操作数的有效地址等于基址寄存器的内容加上一个变址寄存器的内容。 16位寻址时,基址寄存器可用BX和BP,变址寄存器可用SI和DI。 §3.2 寻址方式 例如:   MOV AX,[BX+SI] 设DS=1000H,BX=5000H,SI=2000H,则上面指令在执行时,有效地址为7000H,本指令将17000H和17001H两单元的内容取到AX中。 MOV AX, ES:[BX] [SI] §3.2 寻址方式 相对基址变址寻址方式中,操作数的有效地址EA是基址寄存器内容、变址寄存器内容和指令中指定的位移量三项之和,操作数在存储器中。 16位寻址时,基址寄存器可用BX和BP,变址寄存器可用SI和DI。 常用于对二维数组的寻址。 §3.2 寻址方式 说明: 在一条指令中,若有两个操作数,可以采用不同的寻址方式,也可以采用相同的寻址方式。 例如:ADD AX,3064H MOV AX ,CX “[]”:汇编语言中,常将“[]”方括号中的内容作为存储单元的地址。如:[BX]、[DI]、[2056H] 除立即数寻址和寄存器寻址外,其他寻址方式都有隐含的段寄存器,操作数实际的物理地址是由段寄存器的内容和指令码中求得的有效地址

文档评论(0)

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

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

1亿VIP精品文档

相关文档