重要公式:
a:系统某个部分初始耗时比例,k:加速比例,S:获取的加速比
重要计算:
二进制和十六进制之间的计算:
普通方法:
特殊情况方法:
十进制和十六进制计算:
使用x除于16取余数,余数转化为16进制数,然后倒序书写
数据类型的取值范围
C++中的int类型范围就是int32_t的范围,以此推断猜想long类型就是int64_t的范围
IEEE浮点表示法
,,
在支持IEEE浮点格式的机器上都是使用偶数舍入的舍入方式,但是C语言没有要求机器使用IEEE浮点,所以没有标准的表示方式。
GCC编译器编译C语言:
- 执行linxu代码:gcc -Og -o codename FileName.c
- C预处理器扩展源代码,如插入所有#include的文件,扩展#define声明指定的宏
- 产生源文件的汇编代码,名字为FileName.s
- 将汇编代码转化程二进制目标代码文件FileName.o
- 链接器将两个目标代码文件与实现库函数(如printf)的代码合并,并产生最终可执行代码文件codename
汇编代码
一个a乘b的结果存储到dest中
寻址模式
Imm:立即数偏移
rb:基址寄存器
ri:变址寄存器
s:比例因子
例子:
3:操作数既是值
4:rax得地址
6:(%rax + %rdx + 9)
8:(%rcx * 4 + 0xFC)
9:(%rax + %rdx * 4 )
每个寄存器的字节大小
- ebx不能作为复制得目的寄存器
- 寄存器rax不能复制到栈指针rsp中