5基址寻址和变址寻址 操作数的有效地址EA等于基地址分量或变址分量加上 指令中给出的位移量。 操作码寻址特征位移量 内存 BX OR 段寄存器土 BP OR SI BEA¥爆作数 OR 指令中使用BX或BP时为基址寻址。指令中使用S或D时 为变址寻址
11 5.基址寻址和变址寻址 操作数的有效地址EA等于基地址分量或变址分量加上 指令中给出的位移量。 指令中使用BX或BP时为基址寻址。指令中使用SI或DI时 为变址寻址。 操作码 寻址特征 位移量 OR OR OR BX DI BP SI 段寄存器 操作数…... …... 内存 EA
段寄存器的隐含使用规则与寄存器间接寻址方式相 例: MOV AX,10HS→ MOV AX,DS:10S MOV TABLE DI, AL=>MOV DS: TABLE DI, AL 注意:当位移量为常数时,不能加方括号。 这两种寻址方式只需通过改变寄存器的内容就可用 条指令访问不同的存储单元,并且由于增加了一个位移量 分量,因此它们能够很方便地访问数组和表格数据。 由于这两种寻址方式中寄存器中的内容是相对于由 位移量指定的初始单元。因此也叫寄存器相对寻址。 12
12 例:MOV AX,10H [SI] MOV TABLE [DI],AL 注意:当位移量为常数时,不能加方括号。 这两种寻址方式只需通过改变寄存器的内容就可用一 条指令访问不同的存储单元,并且由于增加了一个位移量 分量,因此它们能够很方便地访问数组和表格数据。 由于这两种寻址方式中寄存器中的内容是相对于由 位移量指定的初始单元。因此也叫寄存器相对寻址。 段寄存器的隐含使用规则与寄存器间接寻址方式相 同 => MOV AX,DS:10H [SI] =>MOV DS:TABLE [DI],AL
6基址变址寻址 操作数的有效地址是三个地址分量之和,即: EA=基址+变址+位移量 操作码寻址特征位移量 内存 BX IOR BP HEA 段寄存器操作数 OR DI 当基址选用BX时隐含使用段寄存器DS,而选用BP时 则隐含使用段寄存器SS。 13
13 6.基址变址寻址 操作数的有效地址是三个地址分量之和,即: EA=基址+变址+位移量 当基址选用BX时隐含使用段寄存器DS,而选用BP时 则隐含使用段寄存器SS。 操作码 寻址特征 位移量 BP BX OR DI SI OR EA 操作数…... …... 内存 段寄存器
例如:MOCX,100 HBXID MOV TABLEBXIDI, AX 下面的用法是错误的。 MOV AX, ARRAYBXIIBPI MOV AX, TABLEISIIDI 在基址变址寻址方式中,程序运行期间有两个地 址分量可以修改。因此它是最灵活的一种寻址方式 可以方便地对二维数组进行访问
14 例如:MOV CX,100H[BX][DI] MOV TABLE[BX][DI],AX 下面的用法是错误的。 MOV AX,ARRAY[BX][BP] MOV AX,TABLE[SI][DI] 在基址变址寻址方式中,程序运行期间有两个地 址分量可以修改。因此它是最灵活的一种寻址方式, 可以方便地对二维数组进行访问
存储器操作数寻址方式中地址形成小结 BX SI SI基址变址) 寻址 BP 位移量 BX 直接寻址 基址变址寻址 BP EA 寄存器间 CS 接寻址 BIU DS 16 +20位物理地址 es 15
15 存储器操作数寻址方式中地址形成小结 直接寻址 寄存器间 接寻址 基址变址寻址 基址(变址) 寻址 SI DI BX BP 位移量 BX BP SI DI EA 20位物理地址 ES CS DS SS ×16 EU BIU