0%

第四章指令系统题目

定义题

计组中不同的寻址方式:

  1. 立即寻址
  2. 直接寻址
    • 存储器直接寻址:指令中说明的是存储器里放的地址,通过这个地址访问内存获取操作数,访存1次
    • 寄存器直接寻址:指令中的是寄存器的编号,通过这个编号找到对应寄存器
  3. 间接寻址
    • 存储器间接寻址:指令中说明的是存储器里放的是地址的地址,通过这个地址访存找到对应存储单元,对应存储单元里的还是地址,根据这个地址再次访存找到对应的存储单元,此时存储单元里的才是需要的操作数
    • 寄存器间接寻址:指令中给出的是寄存器的编号,根据编号找到指定寄存器,指定寄存器中放的是内存中地址,根据这个地址访存找到对应的存储单元,此时存储单元里的才是需要的操作数
  4. 变址,基址等寻址

指令寻址

顺序寻址

(PC) + "1" -> PC

这里的+1并不是直接+1,而是取决于指令字长与存储字长

例如:系统采用定长指令字结构,指令字长=存储字长=2B,主存按照字节(1B)编址,则实际上PC每次是+2

而若采用不定长指令字结构,则每次加的值取决于正在执行的指令的长度。

跳跃寻址

即通过转移指令JMP直接修改PC的值,跳转到相应的指令。下条指令的地址不是通过程序计数器PC加1获得的,而是由指令本身给出。

数据寻址方式

堆栈寻址

更详细寻址方式参考

计算题

指令格式相关的指令范围

设计题

指令集的构成分析

第一题解答

第二题

没什么好说的,0000H到FFFFH

第三题

寻址范围

解析:

第3题

寄存器寻址:只能找到寄存器范围,8个

寄存器间接寻址:寄存器位数是16位,所以从0000H~FFFFH,\(2^{16}\)

直接寻址:根据前面计算形式地址是18位,所以范围是0000H~3FFFFH, \(2^{18}\)

变址寻址:寄存器 + 形式地址,所以最小是16个0加18个0得0,最大是16个1加18个1得4FFFEH

第3题根据前面分析应该是变址最大