2009年5月程序员笔试考前练习(33)

来源:软件水平考试    发布时间:2012-11-05    软件水平考试视频    评论

  计算机指令系统往往具有多种寻址方式,操作数就是指令的一部分称为A寻址,操作数地址在指令中的称为B寻址。当操作数地址在寄存器中,就采用C寻址方式。假设基址寄存器的内容为2000H,变址寄存器的内容为03A0H,指令的地址码部分为3FH,当前正在执行的指令所在地址为2B00H。若采用相对寻址方式,则数据实际地址为D。若采用变址寻址并考虑基址时,数据的实际地址为E。

  供选择的答案
  A:①直接
  ②运算器
  ③立即数
  ④指令

  B:①直接
  ②间接
  ③堆栈
  ④内存

  C:①直接
  ②寄存器
  ③寄存器间接
  ④变址

  D:①23A0H
  ②4B00H
  ③2B3FH
  ④2EA0H

  E:①23DFH
  ②4BFH
  ③23A0H
  ④203FH

  【答案】A:③B:①C:③D:③E:①
  【解析】本题考查指令系统常用的寻址方式。
  所谓寻址方式是确定本条指令的数据地址及下一条要执行的指令地址的方法。它与计算机硬件结构关系极为密切,与高级语言的编译程序设计也同样密切。下面介绍题中涉及的几种寻址方式。
  直接寻址。指令的地址码部分给出操作数的地址,就是直接寻址。
  基址寻址。在计算机中设置一个专用的基址寄存器,或由指令指定一个通用寄存器为基址寄存器。这样操作数的地址由基址寄存器的内容和指令的地址码相加得到,这就是基址寻址。基址寻址主要用于解决程序在存储器中的定位和扩大寻址空间等问题。通常基址寄存器中的值只能由系统程序设定,由特权指令执行。
  变址寻址采用的机制是,由指令地址码部分给出的地址和指定的变址寄存器的内容相加得到地址。
  间接寻址即根据指令的地址码所取址的内容是操作数的地址或指令的地址,而非操作数或下一条要执行的指令。根据地址码指出的是寄存器地址还是内存地址,又可以把间接寻址分为寄存器间接寻址和存储器间接寻址。
  相对寻址。把程序计数器PC的内容与地址码部分给出的位移量相加得到操作数地址或转移地址,这就是相对寻址,相对寻址主要用于转移指令。
  了解以上概念,问题A、B、C的解答就很明确了。以上寻址方式在计算机中一般组合使用,但对于使用高级语言的程序员来说,考虑寻址方式是编译程序的事情。对于使用汇编语言开发程序的程序员来说,认真研究指令的寻址方式对于所开发程序的运行效率就有很大的影响了。
  接着具体分析解答D、E。D采用相对寻址,把当前执行指令的地址与地址码部分给出的位移量之和作为操作数的地址,这里正好是2B00H+3M=2B3FH。E是基址与变址的组合寻址,实际地址应为:
  基址寄存器内容+变址寄存器内容+指令地址码=2000H+03A0H+3FH=23DFH。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答