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

8086的寻址方式和指令系统.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
22 固定寻址 8086的单操作数指令,其操作是在CPU中某个固定的 寄存器中进行,这个寄存器被隐含在操作码中,这种 寻址方式的指令大多为单字节指令。也有双操作数指 令,如寄存器入栈和出栈指令 ?PUSH AX 入栈指令,源操作数为寄存器寻址,目的 操作数地址固定为堆栈栈顶。 ?POP AX 出栈指令,源操作数地址固定为堆栈栈顶, 目的操作数为寄存器寻址。 还有乘、除法指令虽不是单字节指令,但被乘数、被 除数总是放在AL或AX中。固定寻址指令中,对固定操 作数是被隐含了的。 特点: 1. 这种寻址方式的指令大多为单字节指令; 2. 执行速度快,因固定寻址的指令不需要计算EA (有效 地值),且部分操作发生在CPU内部。 返回 23 24 执 行 步 骤 存储器寻址 存储器寻址的指令,其操作数总是在代码段之外的数据 段、堆栈段或附加段的存储器中,指令给出的是操作 数寻址信息(逻辑地址)。 CPU首先根据操作数字段提供的地址信息,由执行部件EU计算出有效地址EA 再由总线接口单元BIU根据公式PA=(16×段首址)+EA 计算出实际物理地址 执行总线周期访问存储器,取得操作数,最后再执行指令规定的基本操作。 一条指令中,最多只能有一个存储器操作数 按EA的计算方法不同分为: 返回 25 直接寻址方式 寄存器间接寻址 寄存器相对寻址 存储器寻址 基址变址寻址 相对的基址变址寻址 串寻址 26 直接寻址方式 在直接寻址方式中,操作数所在存储单元的有效地 址EA直接由指令给出。 注意: 如果指令中没有用前缀指明操作数存放在哪 一段,则默认为使用的段寄存器为数据段寄存器DS, 因此,操作数的物理地址PA=16×DS+EA。 指令中有效地址上必须加一个方括号,以便与立即 数相区别。 例:MOV AX, [2000H] 指令机器码为A1H、00H、20H,执行过程如下: STEP1: 取指令机器码0A1H、00H、20H; STEP2: CPU分析操作码 0A1H 知指令功能为数据传送指令 STEP3: 计算操作数所在内存单元物理地址PA=16×(DS) +EA,EA由指令直接给出,DS为默认的段基址寄存器。 STEP4: CPU执行总线操作,从PA地址单元取得数据送到 AX寄存器。 27 28 设DS=3000H,则源操作数的物理地址PA=16×3000H+ 2000H=32000H。由于目的操作数是16位寄存器AX,所 以将把该地址处的一个字送进AX。若地址32000H中的内 容为34H,32001H中的内容为12H,我们用(32000H)= 1234H来表示这个字。则执行指令后,AX=1234H。 代码段 数据段 操作码 00H 20H · · 34H 12H AX AH 12H AL 34H ×10H DS +) 32000H 3000H 2000H 32000H 29 如果要对代码段、堆栈段或附加段寄存器所指出的存 储区进行直接寻址,应在指令中指定段超越前缀。 例如,数据若存放在附加段中,则应在有效地址前加 “ES:”,这里的冒号 “:” 称为修改属性运算符, 计算物理地 址时要用ES作基地址, 而不再是默认值DS。 MOV AX,ES:[1000H] 该指令的源操作数的物理地址 PA=16×ES+1000H。 30 在汇编语言中还允许用符号地址代替数值地址,实际 上就是给存储单元取一个名字,这样,如果要与这些 单元打交道,只要使用其名字即可,不必记住具体地 址是多少。 MOV AX,AREA1 不过光从指令的形式上看,AREA1不仅可代表符号地址, 也可以表示它是一个16位的立即数,两者之间究竟如何来 区别呢?程序中还必须事先安排说明语句也叫做伪指令来加 以说明。 31 直接寻址方式应注意: 1. 在汇编语言程序中, 直接地址可用数值表示, 被包括在方括 号[ ]之中;直接地址也可用符号地址表示, 例如,MOV AX,AREA2,这里的AREA2为符号地址。 2. 直接寻址方式下,操作数地址位于数据段以外时,应使用 段超越前缀。 如:MOV AL,ES:AREA2 ;表示把附加段ES中的变量 地址AREA2中的内容传送到AL。 3. 直接寻址方式用于处理存储器中的单个变量。 返回 32 寄存器间接寻址 操作数的有效地址EA是通过基址寄存器BX、BP或 变址寄存器SI、DI中的内容间接得到,称这四个寄存 器为间址寄存器: BX EA= BP SI DI ① 指定BX、SI、DI为间址寄存器,则操作数在数据段中。用 DS寄存器作段首址,操作

文档评论(0)

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

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

1亿VIP精品文档

相关文档