相关指令:branch, cmp
C代码
int i = 0;
while (i < 5) {i++;
}
为了将上述代码从C转换为汇编代码,我们需要
1. 利用一个寄存器存储i
2. 构建一个判断条件,和两个分支,一个分支用于实现循环,一个分支用于处理终止情况,他们将指向两个label。
.global _start
_start:mov r0, #0 // Initialize r0 to 0loop:cmp r0, #5 // Compare r0 with 5bge end // If r0 >= 5, branch to 'end'add r0, r0, #1 // Increment r0 by 1b loop // Branch back to 'loop'end:mov r1, #2 // Set r1 to 2 (end of program or some status)
Labels name a certain location in memory.