6、基址加变址寻址 (Based Indexed addressing) 它的EA是由三部分组成的,基址寄存器 BX或BP的内容加上变址寄存器的内容再加 位移量。物理地址由基址寄存器按规则选 择段寄存器,也可以使用段超越。 例: MOV AX,8AHBX][SI 该例中EA=8AH十BX十SI 物理地址=DS×10H+8AH+BX+SI
6、基址加变址寻址(Based Indexed addressing) 它的EA是由三部分组成的,基址寄存器 BX或BP的内容加上变址寄存器的内容再加 位移量。物理地址由基址寄存器按规则选 择段寄存器,也可以使用段超越。 例: MOV AX , 8AH[BX][SI] 该例中EA=8AH+BX+SI 物理地址=DS×10H+8AH+BX+SI
存储器存取方式 约定段 可超越使用的段 偏移量 取指令 CS 无 IP 堆栈操作 SS 无 SP 源字符串 DS CS,ES,SS SI 目的字符串 ES 无 DI 用BP作基址 SS CS.ES.DS 有效地址 通用数据读写 DS CS.ES.SS 有效地址 (BP作基址除外)
BX BX 基 或 或 BP BP 或 S SI 变 或 或 Dt DI 位移母 EA EA CS 0001 或 SS 0000 或 a日为 DS 0100 或 ES 0300 2如位物理地址
7、其他 A、隐含寻址 在指令中没有明显的标出,而指定寄存器 参加操作,称之为“隐含寻址”。 DAA MUL BL
7、其他 A、隐含寻址 在指令中没有明显的标出,而指定寄存器 参加操作,称之为“隐含寻址”。 DAA MUL BL
寄存器名 特殊用途 隐含性质 在输入输出指令中作数据寄存器用 不能隐含 AX,AL 在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商 隐含 AH 在LAHF指令中,作目标寄存器用 隐含 在十进制运算指令中作累加器用 AL 隐含 在XLAT指令中作累加器用 隐含 在间接寻址中作基址寄存器用 不能隐含 BX 在XLAT指令中作基址寄存器用 隐含 CX 在串操作指令和LOOP指令中作计数器用 隐含 CL 在移位/循环移位指令中作移位次数计数器用 不能隐含 在字乘法/除法指令中存放乘积高位或被除数高位或余数 DX 隐含 在间接寻址的输入输出指令中作地址寄存器用 不能隐含 在字符串运算指令中作源变址寄存器用 隐含 SI 在间接寻址中作变址寄存器用 不能隐含 在字符串运算指令中作目标变址寄存器用 隐含 DI 在间接寻址中作变址寄存器用 不能隐含 BP 在间接寻址中作基址指针用 不能隐含 SP 在堆栈操作中作堆栈指针用 隐含
寄存器名 特殊用途 隐含性质 在输入输出指令中作数据寄存器用 不能隐含 AX, AL 在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商 隐 含 AH 在LAHF指令中,作目标寄存器用 隐 含 在十进制运算指令中作累加器用 隐 含 AL 在XLAT指令中作累加器用 隐 含 在间接寻址中作基址寄存器用 不能隐含 BX 在XLAT指令中作基址寄存器用 隐 含 CX 在串操作指令和LOOP指令中作计数器用 隐 含 CL 在移位/循环移位指令中作移位次数计数器用 不能隐含 在字乘法/除法指令中存放乘积高位或被除数高位或余数 隐 含 DX 在间接寻址的输入输出指令中作地址寄存器用 不能隐含 在字符串运算指令中作源变址寄存器用 隐 含 SI 在间接寻址中作变址寄存器用 不能隐含 在字符串运算指令中作目标变址寄存器用 隐 含 DI 在间接寻址中作变址寄存器用 不能隐含 BP 在间接寻址中作基址指针用 不能隐含 SP 在堆栈操作中作堆栈指针用 隐 含