第3章80x86指令系统和寻址方式变址寻址有效地址为变址寄存器(SIDD的内容和位移量DISP之和例:;设DS=3000H,SI-2000H,EA=35003HMOV AX,3003HJSI基址变址寻址一有效地址为基址寄存器和变址寄存器的内容之和,再加上DISP。例:1MOVAXMASK|BX+SII;物理地址-DS×16+BX+SI+MASK立即操作数一立即寻址寄存器操作数一寄存器寻址三种操作数存储器操作数一一直接寻址、寄存器间接寻址、基址寻址、变址寻址、基址变址寻址6
6 ◼ 变址寻址——有效地址为变址寄存器(SI/DI)的内容和位移量DISP之和 例: MOV AX, 3003H[SI] ; 设DS=3000H, SI=2000H, EA=35003H ◼ 基址变址寻址——有效地址为基址寄存器和变址寄存器的内容之和, 再加上DISP。 例: MOV AX, MASK[BX+SI]; 物理地址=DS16+BX+SI+MASK 第3章 80x86指令系统和寻址方式 三种操作数 立即操作数——立即寻址 寄存器操作数——寄存器寻址 存储器操作数——直接寻址、寄存器间接寻址、 基址寻址、变址寻址、基址变址寻址
第3章80x86指令系统和寻址方式2.程序寻址方式■段内直接寻址方式例:JMP 1000HCALL 1000H段内间接寻址方式例:JMIPBXCALL AXJMPWORDPTR[BP+TABLE]■段间直接寻址方式例:JMP 2500H:3600HCALL 2600H:3800H段间间接寻址方式例:JMPDWORDPTR[BX]CALL DWORDPTR[BX]7
7 2. 程序寻址方式 ◼ 段内直接寻址方式 例: JMP 1000H CALL 1000H ◼ 段内间接寻址方式 例: JMP BX CALL AX JMP WORD PTR [BP+TABLE] ◼ 段间直接寻址方式 例: JMP 2500H : 3600H CALL 2600H : 3800H ◼ 段间间接寻址方式 例: JMP DWORD PTR [BX] CALL DWORD PTR [BX] 第3章 80x86指令系统和寻址方式
第3章80x86指系统和寻址方式3.VO地址空间■直接端口寻址指由指令直接给出端口号,端口号可以为0~255。例如:INAL,32H;32H为8位端口地址■间接端口寻址由DX寄存器指出端口地址,这种方式给出的端口号可为0~65535。例如:IN AL,DX;DX寄存器的内容为端口地址注意:无论程序工作在16位还是32位模式,都用DX作为I/O空间的间址寄存器,这是因为I/O地址空间仅有64KB的缘故。8
8 3. I/O地址空间 ◼ 直接端口寻址 指由指令直接给出端口号,端口号可以为0~255。 例如:IN AL, 32H ; 32H为8位端口地址 ◼ 间接端口寻址 由DX寄存器指出端口地址,这种方式给出的端口号可为0~65535。 例如:IN AL, DX ; DX寄存器的内容为端口地址 注意:无论程序工作在16位还是32位模式,都用DX作为I/O空间 的间址寄存器,这是因为I/O地址空间仅有64KB的缘故。 第3章 80x86指令系统和寻址方式
第3章80x86指令系统和寻址方式4.段寄存器的确定80X86的指令在形式上只给出了地址偏移值(有效地址),未指明当前段寄存器,而是用默认规定指出所选用的隐含段寄存器,如下表。访存类型段寄存器段超越前缀的可用性代码CS不可用SS不可用PUSH、POP类代码不可用ES串操作的目标地址SS可用CS、DS,ES、FS、GS以(E)BP、(E)SP间址的指令其它DS可用CS、SS、ES、FS、GS例如:MOV BX,ES:[DI;源操作数在ES指定的段中。9
9 第3章 80x86指令系统和寻址方式 4. 段寄存器的确定 ◼ 80X86的指令在形式上只给出了地址偏移值(有效地址),未指明 当前段寄存器,而是用默认规定指出所选用的隐含段寄存器, 如下表。 ◼ 例如:MOV BX, ES:[DI] ; 源操作数在ES指定的段中。 访存类型 段寄存器 段超越前缀的可用性 代码 CS 不可用 PUSH、POP类代码 SS 不可用 串操作的目标地址 ES 不可用 以(E)BP、(E)SP间址的指令 SS 可用CS、DS,ES、FS、GS 其它 DS 可用CS、SS、ES、FS、GS
第3章80x86指令系统和寻址方式8086的指令系统3.2.2数据传送指令算术运算指令逻辑运算指令移位与循环移位指令控制转移指令串操作指令与重复前缀子程序调用与返回指令中断调用与返回指令处理机指令10
10 3.2.2 8086的指令系统 ◼ 数据传送指令 ◼ 算术运算指令 ◼ 逻辑运算指令 ◼ 移位与循环移位指令 ◼ 控制转移指令 ◼ 串操作指令与重复前缀 ◼ 子程序调用与返回指令 ◼ 中断调用与返回指令 ◼ 处理机指令 第3章 80x86指令系统和寻址方式