ARM汇编(四)——控制程序流
这一章我们引入条件逻辑——if/then/else
语句,以及循环——for
和while
语句
无条件跳转
标签被解释为当前PC的偏移量
例子:
1 2
| _start: MOV X1, #1 B _start
|
条件分支
循环
基本循环
FOR I = 1 to 10
...some statements...
1 2 3 4 5 6
| MOV W2,#1 loop:
ADD W2,W2,#1 CMP W2,#10 B.LE loop
|
1 2 3 4 5 6
| MOV W2, #10 loop: SUBS W2, W2, #1 B.NE loop
|
While循环
1 2 3 4 5 6
| loop: CMP W4, #5 B.GE loopdone B loop loopdone:
|
If/The/Else
1 2 3 4 5 6 7
| CMP W5, #10 B.GE elseclause ... if statements ... B endif elseclause: ... else statements ... endif:
|
逻辑运算
1 2 3 4
| AND{S} Xd, Xs, Operand2 EOR{S} Xd, Xs, Operand2 ORR{S} Xd, Xs, Operand2 BIC{S} Xd, Xs, Operand2
|