Skip to content

Commit 7f07c6c

Browse files
committed
Refactor directory layout for sub-chapters
1 parent 57b35b4 commit 7f07c6c

File tree

8 files changed

+15
-9
lines changed

8 files changed

+15
-9
lines changed
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

src/05-控制语句.md renamed to src/05-控制流/01-控制语句.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# 控制语句
22

3-
我在之前汇编语言的教程中,是将跳转与函数放在一起讲的,因为在汇编语言中这两个概念几乎没有太大的区别。然而,到了LLVM IR中,这两者就有了比较大的区别。因此,在这篇文章中,我主要讲的是LLVM IR中控制语句的构造方法。
4-
53
## 汇编层面的控制语句
64

75
在大多数语言中,常见的控制语句主要有四种:
@@ -282,7 +280,7 @@ dot .main.dot -Tpng -o for.png
282280

283281
生成其可视化的控制流图(CFG):
284282

285-
![for](assets/05_for.png)
283+
![for](../assets/05_for.png)
286284

287285
### `switch`
288286

File renamed without changes.

src/05-控制流/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# 控制流
2+
3+
我在之前汇编语言的教程中,是将跳转与函数放在同一篇文章里的,因为在汇编语言中这两个概念几乎没有太大的区别。然而,到了LLVM IR中,这两者就有了比较大的区别。因此,我将其分成了多篇文章单独介绍。
4+
5+
在程序分析领域,往往会强调一对概念:数据流与控制流。所谓数据流,就是指一个程序中的数据,从硬盘到内存,从内存到寄存器,等等一系列的数据搬运、处理的过程。这一过程,在之前的文章中已经详细地介绍了。
6+
7+
而控制流,则是指程序执行指令的顺序。最简单地,我们的程序在除了顺序执行指令,还可以通过`if`语句进行条件跳转,通过`for``while`语句进行循环,还可以通过函数调用进入到别的函数。凡此种种,都是程序控制流的变化。

src/SUMMARY.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44

55
- [LLVM架构简介](01-LLVM架构简介.md)
66
- [Hello world](02-Hello%20world.md)
7-
- [数据表示](03-数据表示.md)
8-
- [数据区与符号表](03-01-数据区与符号表.md)
9-
- [寄存器和栈](03-02-寄存器和栈.md)
10-
- [数据的使用](03-03-数据的使用.md)
7+
- [数据表示](03-数据表示/README.md)
8+
- [数据区与符号表](03-数据表示/01-数据区与符号表.md)
9+
- [寄存器和栈](03-数据表示/02-寄存器和栈.md)
10+
- [数据的使用](03-数据表示/03-数据的使用.md)
1111
- [类型系统](04-类型系统.md)
12-
- [控制语句](05-控制语句.md)
13-
- [函数](06-函数.md)
12+
- [控制流](05-控制流/README.md)
13+
- [控制语句](05-控制流/01-控制语句.md)
14+
- [函数](05-控制流/02-函数.md)
1415
- [异常处理](07-异常处理.md)

0 commit comments

Comments
 (0)