北航考研
选择题
1、MIPS指令
MIPS中的算数运算操作只作用于寄存器(可以这样理解:CPU中算术逻辑单元只能对寄存器中的数据进行直接运算),因此变量必须要对应到寄存器,才能进行运算。
注意:
MIPS既提供了检测溢出的加(add)、减(sub)指令,也停供了不检测溢出的加(addu)、减(subu)指令以适用不同高级语言的需求。
相邻字之间的地址相差4个字节,而不是一个字节,PC不能简单加1;
对于lw、sw,基地址和偏移地址之和必须是4的倍数,即需要字对齐,如果字没有对齐,则读数据操作需要两次才能完成;
MIPS 汇编的最大特点就是指令的结构比较单一,所有的指令都可以翻译成 32 位二进制的机器码.
MIPS寻址方式
寻址方式 | 特点 | 访存次数 | 指令类型 |
立即数寻址 | 操作数是位于指令自身的常数 | 0(立即数已经在寄存器中存在) | I |
寄存器寻址 | 0 | R | |
基址寻址 偏移寻址 |
地址=基址寄存器的值+形式地址 | 2(第一次是访问寄存器中保存的基址,第二次是访问基址加上偏移量得到的实际地址。因此,基址寻址需要2次访存。) | I |
PC相对寻址 | PC寄存器中的值+形式地址 | 1(相对寻址是在当前指令地址的基础上进行偏移,计算出要访问的内存地址,然后直接访问该地址的内容,只需要一次访存操作即可完成。) | I |
伪直接寻址 | PC中原高4位 + 指令中的26位 + 00 (32位地址) | J |
相关例题
1、 jr指令可以跳转到的代码范围有多大?
A. 64KB B. 64MB
C. 256MB D. 4GB
答案:D
解析一:jr指令属于R指令,采用寄存器寻址方式寻址,跳转到$ra寄存器保存的地址。因为$ra寄存器保存32位数据,故可跳转地址范围大小是2^32个地址单元,即2^(32+3) = 235bits = 4 GB的数据内容范围。(3为字节,按字节对齐)
解析二:
JR(Jump Register)指令是用于跳转到程序存储器中的指定地址,以执行特定