这几天看来linux C 里面有一些关于汇编到基础知识,我就把看后到心得说出来听听,每天都有连载哦@!。
和C一样,汇编也有相似到格式。
1. .section .data 下面的相当于全局变量
2. .section .text 下面的相当于写的代码
(.section 表达到意思是段 以他开头的指令是 汇编指示 不翻译成机器指令)
3. .globl _start 和C中到 int main() 是一样的
4. movl $1, %eax 将类型为long型到立即数1 放到eax中去 (1放入eax寄存器是_exit的系统调用号 内核需要eax判断用户需要那种系统调用 ebx的值是给_exit传到 表退出状态)
5.x86 通用寄存器eax ebx ecx edx edi esi eip 是 程序计数器 eflags保存计算中的标志位 ebp 和 esp用于维护函数调用的栈帧
6.as 是汇编命令 变成 *.o 文件 ld 是链接汇编命令 变成可执行文件
7.ELF 文件 读出目标文件的ELF readelf -a *.o hexdump -C *.o 打印全部文件信息 objdump -d *.o 反汇编命令