如何为我的IA32汇编代码打印变量值?

时间:2018-11-06 15:37:22

标签: assembly x86 printf

我受命创建一个简单的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;
}    

(任务显示在下面的链接中)

screenshot of my task to complete

我已经创建了一个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中运行时,收到以下消息: Screenshot of GDB output

诚然,我不太了解printf命令,非常感谢您的帮助。

0 个答案:

没有答案