第4章指令系统 3,存储器寻址 如果操作码所需操作数存放在内存储器中,则指令中 需要给出操作数的地址信息。为了提高程序的灵活性, 8086指令系统提供了多种存储器寻址方式 (1)直接寻址 (2)寄存器间接寻址 (3)寄存器相对寻址 (4)基址变址寻址 (5)关于段跨跃前缀
第4章 指令系统 3. 存储器寻址 如果操作码所需操作数存放在内存储器中,则指令中 需要给出操作数的地址信息。为了提高程序的灵活性, 8086指令系统提供了多种存储器寻址方式 (1)直接寻址 (2)寄存器间接寻址 (3)寄存器相对寻址 (4)基址变址寻址 (5)关于段跨跃前缀
第4章指令系统 (1)直接寻址 汇编格式:①含有变量的地址表达式。 ②段寄存器名:EA。 功能:指令下一字单元的内容是操作数的偏移地 址EA。 图形表示 段寄存器 指 段首址 左移4位 EA PA躁作数
第4章 指令系统 (1) 直接寻址 汇编格式:①含有变量的地址表达式。 ②段寄存器名:[EA]。 功能:指令下一字单元的内容是操作数的偏移地 址EA。 图形表示:
第4章指令系统 【例4.3】 【例4.3】寄存器和存储器内容为:(AX)=1212H, BUF为数据段定义的变量,其偏移地址是2000H, (DS)=3000H,(32000H)=4545H。 执行指令: MOV AX,BUF 执行后:(AX 图形表示: 段寄存器 段首址 左移4位 BA操作数 执行:(32000H)→AX 执行后:(AX)=4545H 返回本
第4章 指令系统 【例4.3】 【例4.3】寄存器和存储器内容为:(AX)=1212H, BUF为数据段定义的变量,其偏移地址是2000H, (DS)=3000H,(32000H)=4545H。 执行指令:MOV AX ,BUF 执行后:(AX)=? 图形表示: 执行:(32000H)→AX 执行后:(AX)=4545H 返回本节
第4章指令系统 (2)寄存器间接寻址 寄存器间接寻址方式中,寄存器的内容为 操作数的偏移地址EA,操作数在存储器中。 汇编格式:[R 功能:操作数存放在存储器,寄存器R存放 操作数的偏移地址EA
第4章 指令系统 (2) 寄存器间接寻址 寄存器间接寻址方式中,寄存器的内容为 操作数的偏移地址EA,操作数在存储器中。 汇编格式:[R] 功能:操作数存放在存储器,寄存器R存放 操作数的偏移地址EA
第4章指令系统 寄存器间接寻址示意图: 例如: MOV AX,[BX 若(DS)=2000H,(BX)=1000H,物理地址=20000H+ 1000H=21000H。指令执行前,(AX)=2030H,(21000H) 0AOH,(21001H)=50H,指令执行后,(AX)=50A0H (21000H)=0A0H,(21001H)=50H。指令执行情况如下 AH AL 数据段物理地址 AOH 21000H 50H 20001H 56H 20002H
第4章 指令系统 寄存器间接寻址示意图: 例如:MOV AX,[BX] 若(DS)=2000H,(BX)=1000H,物理地址=20000H+ 1000H=21000H。指令执行前,(AX)=2030H,(21000H) =0A0H,(21001H)=50H,指令执行后,(AX)=50A0H, (21000H)=0A0H,(21001H)=50H。指令执行情况如下: AX AH AL 数据段 物理地址 A0H 21000H 50H 20001H 56H 20002H