Мне было поручено создать программу сборки 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, но не знаю, как распечатать значение 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, я получаю следующее сообщение:
Конечно, я не совсем понимаю команду printf
и буду очень признателен за помощь.