Skip to the content.

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

结语

虽说汇编语言作为高级语言和机器代码的桥梁,是十分重要的一环。但是由于其并不是特别复杂,重点主要在读懂代码上,难点并非是汇编语言本身,诀窍在于勤加练习。这里就不在赘述了。接下来,敬请期待进入到多线程编程的环节。