在最小C程序上生成的汇编指令的目的是什么?

mri*_*ing 3 x86 assembly nasm elf disassembly

我反汇编了编译非常简单的源文件test.c的代码,它看起来像这样:

void main() {}
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

 gcc -c test.c 
 ld -o test -Ttext 0x0 -e main test.o 
 objcopy -R .note -R .comment -S -O binary test test.bin
 ndisasm -b 32 test.bin
Run Code Online (Sandbox Code Playgroud)

前四行的所有目的是什么?为什么它会添加到eax指向的内存位置,2*eax,edx + 0x52,比较等等?这是关于检查程序是否正确执行或其他什么?

unw*_*ind 11

我相信你有一些不是代码的反汇编,这就是为什么它没有多大意义.

为了得到一个什么样的文件可能包含一个想法,我会建议运行objdump二进制(ELF),看看你是否可以识别任何部分的上方字节序列.