计算机组成与设计笔记
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