三级PC技术寻址方式的复习(4)

文章作者 100test 发表时间 2007:03:10 17:52:16
来源 100Test.Com百考试题网


三级PC技术寻址方式的复习 (4)

到目前为止,我们已经复习了寄存器寻址、立即寻址、直接寻址这三种寻址方式。前面三种寻址方式相对来说容易理解和掌握,而后四种寻址方式的操作数都存放在内存储器中,而且其汇编格式有相似之处,容易混淆。学习中我们要紧紧抓住这四种寻址方式中操作数都存放在内存储器中这一特点,而要访问内存储器存放操作数的存储单元,则需要知道存放操作数的存储单元在内存储器中的偏移地址(EA)。寻址方式的重要区别就是得到EA的方式不同。只要掌握如何计算通过这四种寻址方式得到的内存操作数的偏移地址,问题就迎刃而解了。

  4.寄存器间接寻址

  寄存器间接寻址得到的操作数存放在内存储器中,而操作数的偏移地址EA在指令指明的寄存器中,即寄存器的内容为操作数的偏移地址EA。

  汇编格式:[R] R(Register 寄存器的简写,只能是SI,DI,BX,BP其中之一)

功能:R的内容为操作数的偏移地址EA。即操作数的有效地EA存放在基址寄存器(BX或BP)或变址寄存器(DI或SI)中:

  EA= [R] 用R作间接寻址寄存器时。

  寄存器间接寻址的寻址方式如图所示:

  若用寄存器SI,DI,BX间接寻址,则操作数在当前数据段中。

  PA=(DS)×10H EA

  若用寄存器BP间接寻址,则操作数在当前堆栈段中。

  PA=(SS)×10H EA

  寄存器间接寻址和寄存器寻址在汇编格式上相比较多了个中括号,也就是因为这样,他们的寻址方式截然不同,寄存器寻址不需访问内存,操作数就在指令指定的寄存器中,而寄存器间接寻址需要访问内存,操作数的偏移地址EA就是寄存器的内容。

  例:2002.8三级PC考题

  根据下面的指令和伪指令序列,AX寄存器的内容是多少?

  TAB DW 1, 2, 3, 4, 5, 6

  ENTRY EQU 3

  MOV BX, OFFSET TAB

  ADD BX, ENTRY

  MOV AX, WORD PTR [BX]

  (A)0300H(B)0003H(C)0506H(D)0403H

  答案:A

  内存分配示意图:

  分析:根据数据定义伪指令BUF DW 1、2、3、4画出内存分配示意图,在存储单元相应位置标出变量名和EA。OFFSET TAB得到的是变量TAB的EA。TAB这个变量的EA为0则MOV BX,OFFSET TAB这个指令的源操作数OFFSET TAB是立即寻址,(BX)=0。ENTRY为符号常量,指令ADD BX,ENTRY的源操作数ENTRY也是立即寻址(BX) 3→BX,(BX)=3。MOV AX,WORD PTR [BX]指令中源操作数[BX]是寄存器间接寻址,前面的WORD PTR指明内存操作数为字类型。指令执行后把偏移地址为3的字单元的内容传给AX。所以答案选A。

相关文章


计算机基础知识文件的属性(一)
2000年4月全国计算机等级考试一级WINDOWS笔试试卷
三级PC技术寻址方式的复习(4)
2001年9月全国计算机等级考试一级WINDOWS笔试试卷
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛