汇编语言实现的 for 循环和 while 循环
作为练习我尝试用汇编语言实现了 C 语言中的 for 循环和 while 循环
For 循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| section .data sum dd 0
section .text global _start
_start: mov ecx, 10 ; 将计数器初始化为 10 xor eax, eax ; 将 eax 清零,作为累加器
loop_start: add eax, ecx ; 将计数器的值加到累加器中 dec ecx ; 将计数器递减 1 jnz loop_start ; 如果 ecx 不为零,跳回 loop_start
mov [sum], eax ; 将 eax 中的累加结果存储到 sum
mov eax, 1 xor ebx, ebx int 0x80
|
While 循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| section .data sum dd 0
section .text global _start
_start: mov eax, 1 ; 将 eax 初始化为 1(循环计数器) xor ebx, ebx ; 将 ebx 清零,作为累加器
loop_condition: cmp eax, 11 ; 比较 eax 是否为 11(循环结束条件) jge loop_end ; 如果 eax >= 11,跳到 loop_end
add ebx, eax ; 将 eax 加到 ebx 中 inc eax ; 将 eax 加 1 jmp loop_condition ; 跳回 loop_condition 检查条件
loop_end: mov [sum], ebx
mov eax, 1 xor ebx, ebx int 0x80
|