Lecture 5 C to Assembly

本文详细介绍了C语言通过Clang/LLVM编译器转化为汇编语言的过程,涉及预处理、LLVMIR生成、优化及最终的汇编代码产生。重点讨论了LLVMIR在编译流程中的作用,并提供了使用clang命令查看LLVMIR和汇编代码的示例。强调了汇编语言的学习关键在于理解和实践。
摘要由CSDN通过智能技术生成

Lecture 5 C to Assembly

课程内容

本节课主要描述了C语言到汇编语言到过程,主要是用了LLVM IR相关的一些例子。

Clang/LLVM编译流程

C sourcebitarray.c
Clang preprocessor
Preprocessed Sourcebitarray.i
Clang code generator
LLVM IRbitarray.ll
LLVM optimizer
Optimized LLVM IRbitarray.ll
LLVM code generator
Assemblybitarray.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

结语

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值