• 软考笔记(4)——寻址


    1.讲解

    在这里插入图片描述

    1.1立即寻址

    立即寻址:操作数就包含在指令当中。
    一般来说,指令像0×1+0×2(+是操作码)。
    内存里的0×1,0×2分别存储的1和2。一般的话我们要根据这个地址去找对应的操作数。
    而立即寻址不是这样,立即寻址里面放的就是1和2,你都不用去寻找它了,因为这个指令里面包含这个操作数本身了。立即寻址就可以马上得到这个操作数。它是最快的。

    1.2寄存器寻址

    寄存器寻址:操作数存放在某一寄存器中,指令中直接给出操作数所在存储单元的地址。
    在这里插入图片描述
    主存储器就是内存。
    CPU内部通用寄存器就是我们的寄存器寻址。就是我从寄存器里去拿这个操作数是比我在内存里拿操作数要快的(也就是比直接寻址快)。

    比如给了两个寄存器,一个叫R1一个叫R2。
    R1+R2,直接去对应寄存器取值就可以了,比如R1存1,R2存2
    R1+R2就是1+2

    1.3直接寻址

    直接寻址:操作数存放在内存单元中,指令中直接给出操作数所在的存储单元的地址。

    对直接寻址,指令像0×1+0×2(+是操作码)。
    内存里的0×1,0×2分别存储的1和2。根据这个地址去找对应的操作数。

    1.4寄存器间接寻址

    寄存器间接寻址:操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
    R1+R2
    去寄存器读取,发现R1是0×1,R2是0×2
    去内存找0×1和0×2,分别是1和2
    所以R1+R2就是1+2

    1.5间接寻址

    间接寻址:指令中给出操作数地址的地址。
    就是比如0×1+0×2
    通过0×1内存中寻址得到0×3,0×2得到0×4。
    再通过0×3在内存中得到操作数1,通过0×4得到操作数2。

    目录的排序是根据速度来的,越快的越在前面。

    2.写题

    1

    在这里插入图片描述
    了解即可,选D

    2

    在这里插入图片描述
    这题很有意思。
    注意它是一个转移指令。内存里的0×1它存的不是操作数,而是一个转移的指令,去从这个指令转移到另一个指令当中去,比如说0×10有一个指令,如何通过0×1获得0×10来去执行一个新的指令。

    当然是用程序计数器,因为程序计数器就是保存下一条将要执行的指令的地址。

    AR是保存当前CPU所访问的内存单元的地址。应该是先用程序存储器找到地址,再把地址给AR。

    其它选项都是运算器的东西。

    选A

    3

    在这里插入图片描述
    把数45放在R1中,所以可以是寄存器寻址。不是寄存器间接寻址,寄存器间接寻址是存放传送到的寄存器的地址,那最后数就不是存到R1了。

    至于为什么可以是立即寻址,看立即寻址的定义:操作数就包含在指令中。再看题目,MOV R1,#45,操作数45是不是就包含在指令当中了?

    所以选B

    4

    在这里插入图片描述
    字长为32位,按字编辑,就是看内存容量里有多少个字。这个计算机的B=32bit
    内存容量的2GB的B还是等于8bit
    所以都化成最小单位bit来算吧
    就是2×2³⁰×8除以32
    等于2²⁹bit,也就是512M

    5

    在这里插入图片描述
    立即寻址的定义:操作数就包含在指令中。
    选C

    6

    在这里插入图片描述
    其实这题只要知道立即寻址最快就可以排除错误的三项了。
    之前目录就是按照速度来排的。
    寻址从快到慢是:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,间接寻址

    选A

  • 相关阅读:
    Zabbix自定义监控项与触发器
    vue3 学习笔记09 -- 自适应实现(postcss-pxtorem)
    Transformer上进行递归
    如何轻松实现在线K歌房,与王心凌合唱《山海》
    【Elasticsearch】聚合查询(四)
    C++:GCC编译:GCC编译C++程序分步流程
    黑马QtDay2学习笔记:
    ios-关联对象
    复合函数的结合律证明
    Postman接口断言&上下游参数传递
  • 原文地址:https://blog.csdn.net/heipao17/article/details/127100102