编译原理
骑摩托的巴菲特
这个作者很懒,什么都没留下…
展开
-
linux中间文件与可执行文件的区别
在源码中,会使用到各种变量以及方法,这些变量和方法,在程序执行之前,应当知道其具体的位置,也就是内存地址,当然,在有操作系统的主机上运行,这种地址也是虚拟地址。这些变量和方法,在编译后,变成各种符号,存放在编译生成物的符号表中,之后的链接的工作就是符号决议和重定位。在java中,class文件被jvm加载的时候会发生链接,在c语言中表现的更明显。我们在linux上来看看这个过程。先编写一个he...原创 2019-06-26 00:01:23 · 664 阅读 · 0 评论 -
nasm生成elf文件
生成elf文件并非只能用gcc。nasm可以生成各个平台的中间文件和可执行文件。下面我们用nasm来生成hello.o:先写一个hello.s源文件section .data msg: db "hello world!",0ah,0dh; msglen: equ $ - msg;section .text global mainmain: mov eax,4; mov ebx...原创 2019-06-29 21:55:55 · 1763 阅读 · 0 评论