🍃概念梳理
小知识点
32位最大支持4GB内存
x86的32位架构一般又被称作IA-32,全名为“Intel Architecture, 32-bit”。其64位架构由AMD率先推出,并被称为“AMD64”。之后也被Intel采用,被其称为“Intel 64”。一般也被称作“x86-64”、“x64”。
值得注意的是Intel早在1990年代就与HP合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64或x64弄混。
gcc指令常用方式 -o wodeexe 指定输出文件名字 -Og 指定优化等级为低 helloworld.c c文件
x86-64 高16位必须为0
汇编详解
编译: compile以后就是汇编代码
gcc -S -Og hello.c
汇编:assembly后是二进制代码 没法直接认
gcc -Og -c hello.c
汇编出来的东西里面有
很多
.size mul… .ident “GCC:Ubuntu”…
点开头的信息不用管 都是给汇编器和链接器的伪指令
gdb的使用
可以载入 一个二进制目标代码就是.obj的程序
然后gdb hello.o
然后查看x/14xb 某个函数
反汇编器 objdump
objdump -d hello.o
注意:反汇编只是用 obj目标代码来确定汇编代码 不需要访问 源代码或汇编代码