第3章 指令系统与汇编语言程序设计 2.寻址及寻址方式的概念 计算机的指令中通常要指定操作数的位置,即 给出操作数的地址信息,在执行时需要根据这个地 址信息找到需要的操作数,这种寻找操作数的过程 称为寻址。寻址方式就是寻找操作数或操作数地址 的方式 不同机器的指令系统都规定了一些寻址方式以 供编程时选择使用,根据给定的寻址方式,就可以 方便地访问各类操作数
6 第3章 指令系统与汇编语言程序设计 2. 寻址及寻址方式的概念 计算机的指令中通常要指定操作数的位置,即 给出操作数的地址信息,在执行时需要根据这个地 址信息找到需要的操作数,这种寻找操作数的过程 称为寻址。寻址方式就是寻找操作数或操作数地址 的方式。 不同机器的指令系统都规定了一些寻址方式以 供编程时选择使用,根据给定的寻址方式,就可以 方便地访问各类操作数
第3章 指令系统与汇编语言程序设计 8086指令中的操作数有三种可能的存放位置: (1)操作数直接在指令中,即跟随在指令操作码之 后,指令的操作数部分就是操作数本身,这种操作 数叫立即操作数 (2)操作数存放在CPU的某个内部寄存器中,这时 指令的操作数部分是CPU内部寄存器的一个编码,称 为寄存器操作数 (3)操作数存放在内存储器的数据区中,这时指 令的操作数部分包含此操作数所在的内存地址,称 为存储器操作数
7 第3章 指令系统与汇编语言程序设计 8086指令中的操作数有三种可能的存放位置: (1)操作数直接在指令中,即跟随在指令操作码之 后,指令的操作数部分就是操作数本身,这种操作 数叫立即操作数。 (2)操作数存放在CPU的某个内部寄存器中,这时 指令的操作数部分是CPU内部寄存器的一个编码,称 为寄存器操作数。 (3)操作数存放在内存储器的数据区中,这时指 令的操作数部分包含此操作数所在的内存地址,称 为存储器操作数
第3章 指令系统与汇编语言程序设计 328086CPU的寻址方式 321立即数寻址 立即数寻址方式是指操作数直接存放在给定的指令中,紧跟 在操作码之后。 立即数可以是8位或16位二进制数。例如,给定如下指令, 采用立即数寻址: MOV AL, 10 十进制数(D) MOV AL 00100101B 二进制数(B) MOV AX 263AH 十六进制数(H)
8 第3章 指令系统与汇编语言程序设计 3.2 8086 CPU的寻址方式 3.2.1 立即数寻址 立即数寻址方式是指操作数直接存放在给定的指令中,紧跟 在操作码之后。 立即数可以是8位或16位二进制数。例如,给定如下指令, 采用立即数寻址: MOV AL, 10 ; 十进制数(D) MOV AL, 00100101B ; 二进制数(B) MOV AX, 263AH ; 十六进制数(H)
第3章 指令系统与汇编语言程序设计 322寄存器寻址 寄存器寻址方式是在指令中直接给出寄存器名,寄存器 中的内容即为所需操作数。在寄存器寻址方式下,操作数存 在于指令规定的8位、16位寄存器中。寄存器可用来存放源 操作数,也可用来存放目的操作数 寄存器寻址方式是CPU内部的操作,不需要访问总线周期, 因此指令的执行速度比较快 对于16位操作数,寄存器可以是AX、BX、CX、DX、SI DI、SP、BP等。 对于8位操作数,寄存器可以是AH、AL、BH、BL、CH、CL 等
9 第3章 指令系统与汇编语言程序设计 3.2.2 寄存器寻址 寄存器寻址方式是在指令中直接给出寄存器名,寄存器 中的内容即为所需操作数。在寄存器寻址方式下,操作数存 在于指令规定的8位、16位寄存器中。寄存器可用来存放源 操作数,也可用来存放目的操作数。 寄存器寻址方式是CPU内部的操作,不需要访问总线周期, 因此指令的执行速度比较快。 对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、 DI、SP、BP等。 对于8位操作数,寄存器可以是AH、AL、BH、BL、CH、CL、 DH、DL等
第3章 指令系统与汇编语言程序设计 323存储器寻址 计算机中访问内存的寻址方式有多种,不管哪 种寻址方式,最终都将得到存放操作数的物理地址。 采用存储器寻址时,指令中需要给出操作数的地址 信息。 存储器操作数的有效地址EA的计算方法和寻址方 式有着密切地联系,而操作数物理地址PA的计算则 和操作数的具体存放位置有关
10 第3章 指令系统与汇编语言程序设计 3.2.3 存储器寻址 计算机中访问内存的寻址方式有多种,不管哪一 种寻址方式,最终都将得到存放操作数的物理地址。 采用存储器寻址时,指令中需要给出操作数的地址 信息。 存储器操作数的有效地址EA的计算方法和寻址方 式有着密切地联系,而操作数物理地址PA的计算则 和操作数的具体存放位置有关