计算机组成原理 L02 指令集体系结构(ISA)复习-1
复习-1 用作例题/课后题整理 复习-2 用作理论知识点整理
如何使用大常数
由于大数值范围:[-2^31, 2^31-1],而I型指令常数字段只有16bits,所以需要使用两次I型指令。
- 取立即数到寄存器高16位指令
lui
->load upper immediate
- 与立即数进行逻辑或运算
ori
->or immediate
lui $t0, 1010101010101010
ori $t0, $t0, 1010101010101010
有符号数取反
按位取反,再加1
符号扩展
复制最高有效位(符号位)
无符号数:用0填充左边的数位
有符号数:用1填充左边的数位
课堂练习-1
lb
:将字节存入寄存器的最低 8 bits
sb
:将寄存器最低 8 bits存入存储器的字节中
$zero
恒为0。MIPS 是大端法,大端法是正常书写的方法,高位在低地址。
add
将$s3
置0;lb
存入0x1
的地址原有的数据 即 0x90 到$t0
寄存器 第1题答案0x90sb
存入$s3
寄存器的值 0x90 到 0x6 第1题答案0x6 0x90- 小端法 0x6 的值将从 0xFF 到 0x12
课堂练习-2
重新改写下面的指令,以支持更远距离的分支转移
beq $s0, $s1, L1
//These instructions replace the short-address conditional branch:
bne $s0, $s1, L2
j L1
L2:
例子:循环
编译C语言:leaf过程
嵌套
int fact( int n)
{
if (n<1) return (1);
else return (n * fact(n-1));
}
标签:复习,符号,0x90,L02,t0,存入,指令集,寄存器,ISA
From: https://www.cnblogs.com/68786C/p/17438821.html