例3.8执行过程 存储器 OP 代码段 20 00 3344 10000 +1122 10020 数据段 44 (AX)=4466 °33 图3.2例3.8执行过程图 89 888 16
例 3.8 执行过程 存储器 2 0 O P 代码段 ≈ ≈ 0 0 数据段 10000 10020 33 44 + 11 22 (AX) = 44 66 4 4 3 3 图3.2 例3.8执行过程图 16
寄存器间接寻址例题 例3.9 SUB AX,[BP] 说明:SUB是双操作数指令,功能是实现减法运算, 目的操作数地址是AX,源操作数的偏移地址EA为BP的 内容。由于源操作数用BP作间接寻址,所以源操作数 存储在堆栈段中,寄存器SS的内容左移4位二进制与EA 相加,形成源操作数的物理地址PA。 执行前:(AX)=3344H,(BP)=30H,(SS)=2000H, (20030H)=1234H 执行: (10030H) →AX 执行后:(AX)=2110H,(BP)、(SS)、(20030H) 不变。 17
寄存器间接寻址例题 例3.9 SUB AX,[BP] 说明:SUB是双操作数指令,功能是实现减法运算, 目的操作数地址是AX,源操作数的偏移地址EA为BP的 内容 。由于源操作数用 由于源操作数用BP作间接寻址,所以源操作数 存储在堆栈段中,寄存器SS的内容左移4位二进制与EA 相加,形成源操作数的物理地址PA 。 执行前:(AX)=3344H,(BP)=30H,(SS)=2000H, (20030H)=1234H 执行: (10030H) →AX 执行后:(AX)=2110H,(BP)、(SS)、(20030H) 不变 。 17
5.寄存器相对寻址 在该寻址方式中,操作数存放在存储器中,而操作 数的偏移地址EA是指令中指定的寄存器的内容与指令 中给出的位移量相加之和,与寄存器间接寻址方式相 比,偏移地址EA的生成增加了一个相对位移量X。 汇编格式:X[R] 操作数位置:存储器 功能:R的内容与X相加之和为操作数的偏移地 址EA。 其中,X表示位移量,R表示寄存器名。寄存器只 能选择SI、DI、BP、BX其中之一。操作数所在段的段 地址遵循8086处理器的默认规定。 18
5.寄存器相对寻址 在该寻址方式中,操作数存放在存储器中,而操作 5.寄存器相对寻址 在该寻址方式中,操作数存放在存储器中,而操作 数的偏移地址EA是指令中指定的寄存器的内容与指令 中给出的位移量相加之和,与寄存器间接寻址方式相 比,偏移地址EA的生成增加了一个相对位移量X。 汇编格式:X[R] 操作数位置:存储器 功能:R的内容与X相加之和为操作数的偏移地 相加之和为操作数的偏移地 址EA。 其中,X表示位移量,R表示寄存器名。寄存器只 能选择SI、DI、BP、BX其中之一。操作数所在段的段 地址遵循8086处理器的默认规定。 18
寄存器相对寻址图 指令 段基地址 基址或变址寄存器 位移量 EA 存储器 寄存器 ⊕ 操作数 地址 888 19
寄存器相对寻址图 指 令 基址或变址寄存器 位移量 段基地址 EA 存储器 寄存器 ⊕ ⊕ 操作数 地 址 19
寄存器相对寻址例题 例3.10M0VAX,5[BX] 说明:源操作数采用寄存器相对寻址,X相对量的值 为5,BX作间接寻址寄存器,所以源操作数的EA=[BX]+5, 数据段寄存器DS的内容左移4位二进制与EA相加,形成源 操作数的物理地址PA。目的操作数采用寄存器寻址,操 作数地址为AX。 执行前:(AX)=0000H,(BX)=1BH,(DS)=2000H, (20020H)=3789H。 执行:(20020H)→AX 执行后:(AX)=3789H,(BX)、(DS)、(20010D)内容 不变。 20
寄存器相对寻址例题 例3.10 MOV AX,5[BX] 说明:源操作数采用寄存器相对寻址,X相对量的值 寄存器相对寻址例题 说明:源操作数采用寄存器相对寻址,X相对量的值 为5,BX作间接寻址寄存器,所以源操作数的EA=[BX]+5, 数据段寄存器DS的内容左移 4位二进制与EA相加,形成源 操作数的物理地址PA。目的操作数采用寄存器寻址,操 作数地址为AX 。 执行前:(AX)=0000H,(BX)=1BH,(DS)=2000H, (20020H)=3789H 。 执行:(20020H)→AX 执行后:(AX)=3789H (AX)=3789H,(BX) 、(DS) 、(20010H) (20010H)内容 不变。 20