Lecture 5 C to Assembly
课程内容
本节课主要描述了C语言到汇编语言到过程,主要是用了LLVM IR相关的一些例子。
Clang/LLVM编译流程
| C source | bitarray.c |
| Clang preprocessor | |
| Preprocessed Source | bitarray.i |
| Clang code generator | |
| LLVM IR | bitarray.ll |
| LLVM optimizer | |
| Optimized LLVM IR | bitarray.ll |
| LLVM code generator | |
| Assembly | bitarray.s |
LLVM IR: LLVM Intermediate Representation (中间结果表示)
查看LLVM IR 的结果
clang -O3 fib.c -S -emit-llvm
-S: 产生汇编代码 -S -emit-llvm: 产生LLVM IR
编译LLVM IR 的结果
clang fib.ll -S
结语
虽说汇编语言作为高级语言和机器代码的桥梁,是十分重要的一环。但是由于其并不是特别复杂,重点主要在读懂代码上,难点并非是汇编语言本身,诀窍在于勤加练习。这里就不在赘述了。接下来,敬请期待进入到多线程编程的环节。