写惯了高级语言,很容易忘了计算机执行指令的本质。如果不深入了解计算机的执行过程,无法想象一个最简单的c文件被运行起来中间涉及到多少繁琐的工作。为了更深入的了解相关的知识(linker,loader),先把最基础的汇编复习一下(以前汇编学的很不好)。汇编可以很直接的操作机器,不需要其他库文件,通过这种裸指令的练习,加深自己的感悟。
分为几部分来学:
一、语法
二、功能号
三、调试
在所有之前,先写个hello world来表示一下吧:)
.data
msg:.string "hello,wonderful!\n"
len=.-msg
.text
.global _start
_start:
movl $len,%edx
movl $msg,%ecx
movl $1,%ebx
movl $4,%eax
int $0x80
movl $0,%ebx
movl $1,%eax
int $0x80
as --gstabs -o hello.o hello.s
ld -o hello hello.o
跟c语言相比,少了一个编译过程。
直接是汇编,链接。
此时执行:./hello
可以得到:
hello,wonderful!
下面再继续学习。
2740

被折叠的 条评论
为什么被折叠?



