Я пытаюсь напечатать целое число, используя printf в сборке x86.Для строки формата printf(fmtstring, vals)
я сохранил %d
как fmtd.Затем я помещаю 1 в топор, 2 в bx, добавляю их и хочу напечатать результат с помощью вызова printf.Вот код.
global _main
extern _printf
section .data
fmtd db "%d"
section .text
_main:
push ebp
mov ebp, esp
_begin:
mov ax, 1
mov bx, 2
add ax, bx
push ax
push fmtd
call _printf
add esp, 8
_end:
mov esp, ebp
pop ebp
ret
но я получаю
-10485757
вместо ожидаемого
3
Можете ли вы помочь мне, что с ним не так?
Когда я просто пишу
push 3
push fmtd
call _printf
, он работает как обычно и печатает 3.
Спасибо