第4章 8068088指令系统1(寻址方式) (楼俊君).pptVIP

  • 4
  • 0
  • 约6.67千字
  • 约 36页
  • 2018-09-22 发布于江苏
  • 举报

第4章 8068088指令系统1(寻址方式) (楼俊君).ppt

第4章 8068088指令系统1(寻址方式) (楼俊君)

第4章 指令系统 主要内容: 指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理 操作码的含义 指令对操作数的要求 指令执行的结果 4.1 概述 8088/8086指令系统: (1)指令向后兼容(x86系列) (2)应用广泛,资料易于寻找 指令按功能分为六大类(92种) (1)数据传送类; (2)算术运算类; (3)逻辑运算和移位; (4)串操作; (5)控制转移类; (6)处理器控制。 4.2 指令的寻址方式 部分8088/8086常用指令 8088/8086的操作数分为3类 1、立即数(常数)源操作数就是参加操作的数据本身,它们可以是8位或16位。取值范围如下表: 4.2 8086的寻址方式 寻址方式——寻找操作数的方法 寻找操作数的地址(一般指源操作数) 寻找要执行的下一条指令的地址 在8086指令系统中,操作数所在地址的寻址方式可分为8种: ①立即寻址 ⑤ 寄存器相对寻址 ②直接寻址 ⑥基址-变址寻址 ③寄存器寻址 ⑦相对的基址-变址寻址 ④寄存器间接寻址 ⑧隐含寻址 4 寄存器间接寻址 操作数的偏移地址(有效地址EA)放在寄存器中 只有SI、DI、BX和BP可作间址寄存器 例: MOV AX, [BX] MOV CL, CS:[DI] IN AL, [DX];括号省去 OUT [DX],AL;括号省去 错误例 : × MOV AX, [DX] × MOV CL, [AX] 例: MOV AX, [BX+8] MOV CX, TABLE[SI] MOV AX, [BP+1000H] ; 默认段寄存器为SS 指令操作例:MOV AX,DATA[BX] 若(DS)=6000H, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=55H 则物理地址 = 60000H + 1000H + 2A00H = 63A00H 指令执行后:(AX)=5566H (见下页图示) 例: MOV AX, [BX] [SI] MOV AX, [BX+SI] MOV AX, DS: [BP] [DI] 错误例: × MOV AX, [BX] [BP] × MOV AX, [DI] [SI] 如何寻找指令的地址呢? (1)程序中将要执行的指令的地址由CS:IP指向; (2)程序的第一条指令的地址(首地址)由操作系统OS分配产生; (3)一般程序是一条接着一条的顺序执行的,所以CS:IP自动加1即可实现。 (4)当程序跳转执行时,CS:IP采用直接方式或间接方式改为跳转到的指令地址。 小结 寄存器间接、寄存器相对、基址变址、相对基址变址4种寻址方式的比较: 寻址方式 指令操作数形式 寄存器间接 只有一个寄存器(BX/BP/SI/DI之一) 寄存器相对 一个寄存器加上位移量 基址—变址 两个不同类别的寄存器 相对基址-变址 两个不同类别的寄存器加上位移量 使用相对的基址-变址寻址方式可以很方便地访问二维数组。 基址寄存器 数组首地址 变址寄存器 数组元素行址 位移量 数组元素列址 (偏移地址) 二维数组例:内存图示(按行存储) (行位移地址) (行内元素下标) 1 8 3 2 5 2 4 0 9 A = 8 隐含寻址 指令操作数是隐含的,在指令中未显式地指明。 例:MUL BL 指令隐含了被乘数AL及乘积AX 类似的指令还有:XLAT、DIV、CBW、MOVS等 (AL)×(BL)→AX 用途:操作数存放在寄存器或存储器地址指定的单 元中 指令由( )和( )构成 如何取得操作数——称为( ) 操作码 操作数 寻址方式 寻址方式可分8种 立即寻址 直接寻址 - 针对M、I

文档评论(0)

1亿VIP精品文档

相关文档