指令 | 描述 |
LOOP | 循环直到ECX寄存器为零 |
LOOPE/LOOPZ | 循环直到 ECX 寄存器为零,或者没有设置ZF标志 |
LOOPNE/LOOPNZ | 循环知道ECX寄存器为零,或者设置了ZF标志 |
loop address
< code before the loop >
movl $100, %ecx
loop1:
< code to loop through >
loop loop1
< code after the loop >
.section .data
output:
.asciz "The value is: %d\\n"
.section .text
.globl _start
_start:
movl $100, %ecx
movl $0, %eax
loop1:
addl %ecx, %eax
loop loop1
pushl %eax
pushl $output
call printf
add $8, %esp
movl $1, %eax
movl $0, %ebx
int $0x80
$ ./loop
The value is: 5050
$ ./loop
The value is: -2147483648
.section .data
output:
.asciz "The value is: %d\\n"
.section .text
.globl _start
_start:
movl $0, %ecx
movl $8, %eax
jcxz done
loop1:
addl %ecx, %eax
loop loop1
done:
pushl %eax
pushl $output
call printf
movl $1, %eax
movl $0, %ebx
int $0x80
$ ./loop
The value is: 8
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |