回 帖 发 新 帖 刷新版面

主题:程序员笔试考前练习(33)[

http://www.educity.cn 作者:不详 来源:希赛教育
计算机指令系统往往具有多种寻址方式,操作数就是指令的一部分称为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。

回复列表 (共1个回复)

沙发

法蕾雅竹纤维竹元诚

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即21世纪品质生活、健康生活,生态家纺,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料 http://294355161.qzone.qq.com
网商咨询 法蕾雅竹元诚QQ 294355161 
科技之光传访法蕾雅http://player.youku.com/player.php/sid/XMTc2MzY4MjQ0/v.swf
法蕾雅竹纤维的神奇六大功效新浪博客
http://blog.sina.com.cn/s/blog_6ca0216a0100n7hq.html 
 

我来回复

您尚未登录,请登录后再回复。点此登录或注册