定义题
计组中不同的寻址方式:
- 立即寻址
- 直接寻址
- 存储器直接寻址:指令中说明的是存储器里放的地址,通过这个地址访问内存获取操作数,访存1次
- 寄存器直接寻址:指令中的是寄存器的编号,通过这个编号找到对应寄存器
- 间接寻址
- 存储器间接寻址:指令中说明的是存储器里放的是地址的地址,通过这个地址访存找到对应存储单元,对应存储单元里的还是地址,根据这个地址再次访存找到对应的存储单元,此时存储单元里的才是需要的操作数
- 寄存器间接寻址:指令中给出的是寄存器的编号,根据编号找到指定寄存器,指定寄存器中放的是内存中地址,根据这个地址访存找到对应的存储单元,此时存储单元里的才是需要的操作数
- 变址,基址等寻址
指令寻址
顺序寻址
(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题根据前面分析应该是变址最大