三级PC技术寻址方式的复习(3)
三级PC技术寻址方式的复习 (3)
三、直接寻址
在直接寻址方式中,操作数的偏移地址(EA)是指令的一部分,它与操作码一起存放在代码段中,而操作数可以存放在数据段,也可以存放在其他段。操作数的物理地址(PA)由其所在段的段寄存器内容左移4位与指令中给出的偏移地址(EA)相加形成。
汇编格式:含有变量的地址表达式或段寄存器名:[EA]
功能:指令下一字单元的内容是操作数的偏移地址EA。
PA=(段寄存器)×10H+EA
直接寻址的寻址方式如图所示:
这种寻址方式和前两种的最大的区别就是:指令执行时需要再存取存储器,也就是存取操作数时需要访问内存,而前两种寻址方式存取操作数时不需要访问内存。
例:2003.4三级PC考题
若有BUF DW 1、2、3、4,则可将数据02H取到AL寄存器中的指令是
(A)MOV AL, BYTE PTR[BUF+1]
(B)MOV AL, BYTE PTR[BUF+2]
(C)MOV AL, BYTE PTR [BUF+3]
(D)MOV AL,BUF[2]
答案:B
分析:根据数据定义伪指令BUF DW 1、2、3、4画出内存分配示意图,在存储单元相应位置标出变量名和EA。答案D中目的操作数AL的类型为字节,而源操作数BUF[2]前无BYTEPTR,则BUF[2]类型为字,两个操作数的类型不一致,指令是错误的,因此答案D可排除。变量BUF的EA为0,数据02H在内存中的EA为2。答案ABC中指令的源操作数都是直接寻址,而只有[BUF+2]的EA为2,所以选B。