官方mooc笔记

factual question: evaluate each option to determine if it is correct
For the Negative Factual Information questions,
remember that you're looking for an answer
that either isn't in the paragraph,
or directly contradicts information in the paragraph.

看起来挺有趣的书
果然自己还是懂得太少了

ELF(Executable and Linking Format) 可执行可链接格式

od {-t [c/x1/x1z...]} [file] 将文件转为[字符/ 十六进制 / 十六进制后显示字符]格式,默认为8进制

readelf -h [file] 读取elf格式头信息

静态链接库

ar ruv libfoo.a foo.o bar.o #打包静态链接库
ar tv libfoo.a #查看库中内容
cc -o baz.o -lfoo #链接libfoo.a到baz.o

动态链接库

gcc -fPIC -c add.c #生成.o文件,PIC:position independent code
gcc -shared -o libmymath.so subtract.o add.o #生成动态链接库
gcc -o libmymath.so -fPIC -shared subtract.c add.c #将两步命令合为一步
gcc main.c -L. -lmymath 

同时有静态动态链接库时优先链接动态链接库

objdump -d hello.o 反汇编

我还能有多少次像这样奋斗呢?
我还能有多少次像这样追求着目标呢?
就将每一次的奋斗的机会当做一份馈赠吧。

给2020的自己订下两个目标:
1. 参加超算比赛,最好能和学长们一起拿到冠军
2. 发一篇paper,尽管目标很远,不过尽量去努力吧

以上

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