Как напечатать значение переменной для моего кода сборки IA32? - PullRequest
0 голосов
/ 06 ноября 2018

Мне было поручено создать программу сборки 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, но не знаю, как распечатать значение b, когда каждый раз увеличивается на 1. Это мое решение:

.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 и буду очень признателен за помощь.

...