摘要:
过程调用 1. 栈帧结构 说明: 返回值在相对%ebp偏移量为4的位置; 第一个参数放在相对于%ebp偏移量为8的位置; 支持过程调用和返回的指令: 一个过程调用的整个汇编流程示意: 阅读全文
摘要:
Big Endian大端模式和Little Endian小端模式 定义 1. Little Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。 2. Big Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。 3. 网络字节序:TCP/IP各层协议 阅读全文
摘要:
内存对齐 1. 为何要内存对齐 1. 平台原因(移植原因) :不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。 2. 性能原因 :经过内存对齐后,CPU的内存访问速度大大提升。 2. 内存对齐的规则 许多实际的计算机系统对基本类型 阅读全文
摘要:
AT&T汇编指令学习(GCC) 1. 寄存器命名原则: 相比inter语法,AT&T语法格式要求所有的寄存器都必须加上取值符"%". 2. 操作码命令格式: 1. 源/目的操作数顺序: Intel语法格式中命令表示格式为:"opcode dest, src"; "操作码 目标, 源" AT&T语法格 阅读全文
摘要:
编译连接 目标文件的格式 可重定位文件: 包含代码和数据 可被用来链接成执行文件或者共享目标文件 linux(.o) windows(.obj) 可执行文件: 包含可以执行的程序 系统可以直接执行的文件 linux (ELF文件,无后缀) windows (.exe) 共享目标文件: 包含代码和数据 阅读全文