最低有效位:二进制位的最右边一位
最高有效位:二进制位的最左边一位
lb 指令将字节看作有符号数,使用符号扩展填充寄存器左侧24位,lbu 把字节看作无符号数,进行零扩展。
对二进制补码取反的快速方法:取反加一
计算机中指令的表示:
指令在计算机内部是以若干或高或低的电信号序列表示,形式上和数的表示相同。实际上指令的各部分都可看作一个独立的数
将这些数拼接在一起就形成了指令。
因为几乎所有指令中都要用到寄存器,so需要将寄存器名字映射称为数字。MIPS中寄存器$s0 ~ $s7映射到寄存器16 ~ 23,
$t0 ~ $t7映射到寄存器8 ~ 15
机器指令分为若干字段:
指令: add $t0, $s1, $s2 对应机器指令的十进制表示形式:
| 0 | 17 | 18 | 8 | 0 | 32 |
第一个字段 0 和最后一个字段 32 组合起来告诉MIPS进行加法计算,第二个字段 17 表示第一个源操作数,第三个字段 18 表示第二个源操
做数,第四个字段表示目的寄存器号,第五个字段没用到故为0。这样这条指令的二进制形式为:
| 000000 | 10001 | 10010 | 01000 | 000000 | 100000 |
指令的布局形式叫做指令格式,从位数上看,MIPS指令占32位,与数据字的位数相等,为遵循简单源于规整的原则,所有MIPS指令都是32位长。
MIPS字段命名:
| op | rs | rt | rd | shamt | funct |
op:指令的基本操作,即操作码,用于表示操作和格式