第3章 指令系统与汇编语言程序设计 1.直接寻址方式 直接寻址方式是一种针对内存的寻址方式。在这种寻址方 式下,指令中给出的地址码即为操作数的有效地址EA,它是 个8位或16位的位移量。在默认方式下,操作数存放在数 据段DS中,如果要对除DS段之外的其他段如CS、ES、SS中的 数据寻址,应在指令中增加前缀,指出段寄存器名,这称为 段跨越 在直接寻址方式的指令中,操作数的有效地址EA已经 给出,那么操作数的物理地址为:PA=(DS)×10H+EA 11
11 第3章 指令系统与汇编语言程序设计 1. 直接寻址方式是一种针对内存的寻址方式。在这种寻址方 式下,指令中给出的地址码即为操作数的有效地址EA,它是 一个8位或16位的位移量。在默认方式下,操作数存放在数 据段DS中,如果要对除DS段之外的其他段如CS、ES、SS中的 数据寻址,应在指令中增加前缀,指出段寄存器名,这称为 段跨越。 在直接寻址方式的指令中,操作数的有效地址EA已经 给出,那么操作数的物理地址为:PA=(DS)×10H+EA
第3章 指令系统与汇编语言程序设计 2.寄存器间接寻址方式 寄存器间接寻址方式是指操作数的有效地址EA在指定的寄 存器中,这种寻址方式是在指令中给出寄存器,寄存器中的 内容为操作数的有效地址 16位操作数寻址时,BA放在基址寄存器BX、BP或变址寄存 器SI、DI中,所以该方式下操作数的物理地址计算公式有以 下几个: 物理地址PA=(DS)×10H+(BX) 物理地址PA=(DS)×10H+(DI) 物理地址PA=(DS)×1OH+(SI) 物理地址PA=(SS)×10H+(BP)
12 第3章 指令系统与汇编语言程序设计 2.寄存器间接寻址方式 寄存器间接寻址方式是指操作数的有效地址EA在指定的寄 存器中,这种寻址方式是在指令中给出寄存器,寄存器中的 内容为操作数的有效地址。 16位操作数寻址时,EA放在基址寄存器BX、BP或变址寄存 器SI、DI中,所以该方式下操作数的物理地址计算公式有以 下几个: 物理地址PA=(DS)×10H+(BX) 物理地址PA=(DS)×10H+(DI) 物理地址PA=(DS)×10H+(SI) 物理地址PA=(SS)×10H+(BP)
第3章 指令系统与汇编语言程序设计 3.寄存器相对寻址方式 这种寻址方式是在指令中给定一个基址寄存器或变址寄存 器和一个8位或16位的相对偏移量,两者之和作为操作数的 有效地址。当选择间址寄存器BX、SⅠ、D时,指示的是数据 段中的数据,选择B作间址寄存器时,指示的是堆栈段中的 数据。 有效地址计算为:EA=(reg)+8位或16位偏移量;其 中reg为给定寄存器 物理地址计算为: PA=(DS)×1OH+EA(使用BX、SI、DI间址寄存器) PA=(SS)×10H+EA(使用BP作为间址寄存器) 13
13 第3章 指令系统与汇编语言程序设计 3.寄存器相对寻址方式 这种寻址方式是在指令中给定一个基址寄存器或变址寄存 器和一个8位或16位的相对偏移量,两者之和作为操作数的 有效地址。当选择间址寄存器BX、SI、DI时,指示的是数据 段中的数据,选择BP作间址寄存器时,指示的是堆栈段中的 数据。 有效地址计算为:EA=(reg)+8位或16位偏移量;其 中reg为给定寄存器。 物理地址计算为: PA=(DS)×10H+EA (使用BX、SI、DI间址寄存器) PA=(SS)×10H+EA (使用BP作为间址寄存器)
第3章 指令系统与汇编语言程序设计 4.基址变址寻址方式 在基址变址寻址方式中,有效地址EA是基址寄存器加变 址寄存器,即两个寄存器的内容之和为操作数的有效地址 在该寻址方式中,当基址寄存器和变址寄存器的默认段寄存 器不同时,一般由基址寄存器来决定默认用哪一个段寄存器 作为段基址指针。若在指令中规定了段跨越,则可以用其他 寄存器作为段基地址。 基址变址寻址方式的物理地址计算公式为: 物理地址PA=(DS)×10H+(BX)+(SI) 物理地址PA=(SS)×10H+(BP)+(DI 14
14 第3章 指令系统与汇编语言程序设计 4.基址变址寻址方式 在基址变址寻址方式中,有效地址EA是基址寄存器加变 址寄存器,即两个寄存器的内容之和为操作数的有效地址。 在该寻址方式中,当基址寄存器和变址寄存器的默认段寄存 器不同时,一般由基址寄存器来决定默认用哪一个段寄存器 作为段基址指针。若在指令中规定了段跨越,则可以用其他 寄存器作为段基地址。 基址变址寻址方式的物理地址计算公式为: 物理地址PA=(DS)×10H+(BX)+(SI) 物理地址PA=(SS)×10H+(BP)+(DI)
第3章 指令系统与汇编语言程序设计 5.相对基址变址寻址方式 这种寻址方式是在指令中给出一个基址寄存器、一个变 址寄存器和8位或16位的偏移量,三者之和作为操作数的有 效地址。 基址寄存器可取BX或BP,变址寄存器可取SI或DI 如果基址寄存器采用BX,则段寄存器使用DS; 如果基址寄存器采用BP,则段寄存器使用SS 其物理地址计算为 PA=(DS)×10H+(BX)+(SⅠ)或(DI)十偏移量 PA=(SS)×10H+(BP)+(SI)或(D)十偏移量
15 第3章 指令系统与汇编语言程序设计 5.相对基址变址寻址方式 这种寻址方式是在指令中给出一个基址寄存器、一个变 址寄存器和8位或16位的偏移量,三者之和作为操作数的有 效地址。 基址寄存器可取BX或BP,变址寄存器可取SI或DI。 如果基址寄存器采用BX,则段寄存器使用DS; 如果基址寄存器采用BP,则段寄存器使用SS。 其物理地址计算为: PA=(DS)×10H+(BX)+(SI)或(DI)+偏移量 PA=(SS)×10H+(BP)+(SI)或(DI)+偏移量