2019年11月

MIPS指令集

PC寄存器(program counter): 保存当前运行指令地址
SP寄存器(stack pointer):当前栈指针,栈增长按地址从高到低
$a0 ~ $a3:传递函数参数
$v0 ~ $v1:函数返回值
$t0 ~ $t9:临时寄存器,过程调用中不需要被保存
$s0 ~ $s7:保留寄存器,过程调用中必须被保存
$zero:存储0
$gp:全局指针(指向静态数据)
$at: 由汇编器所使用

jr $ra: 无条件跳转至地址ra
lui $t0,255(load upper immediate):设置$t0中高16位为255

PC相对寻址:相对PC寄存器寻址

堆:从下向上增长(低地址向高地址),存储动态的内存

C后缀名

unix: .c : c源文件
.s : 汇编文件
.o : 目标文件
.a : 静态链接库
.so : 动态链接库
.out : 可执行文件

MS-DOS: .C, .ASM, .OBJ, .LIB, .DLL, .EXE

浮点数标准

单精浮点数:1位符号位,8位指数位,23位尾数
双精浮点数:1位符号位,11位指数位,52位尾数

| 指数 | 尾数 | 表示 |
| 0 | 0 | 0 |
| 0 | 非0 | 非规格化数 |
| 1 ~ max - 1 | 任意值 | 浮点数 |
| max | 0 | 无穷 |
| max | 非0 | NaN |

负指数使用偏阶
如-1 -> -1 + 127 = 126