我受命创建一个简单的for循环的IA32汇编程序:
int main() {
int data = 50;
int b = 20;
for (b=20; b<data; b=b+1) {
printf(“value of b: %d\n”, b);
}
return 0;
}
(任务显示在下面的链接中)
我已经创建了一个for循环,但是不知道每次递增1时如何打印出b
的值。这是我的解决方案:
.section .data
msg
.ascii "the value of b is: %d/n"
data:
.int 50
b:
.int 20
.section . text
.globl _start
_start:
movl data, %ebx
loop1:
incl b
pushl b
call printf
pop b
cmp b, %ebx
jge loop1
movl $1, %eax
int $0x80
当我将其编译并在GDB中运行时,收到以下消息:
诚然,我不太了解printf
命令,非常感谢您的帮助。