Я использую ассемблер NASM.
Значение, возвращаемое в регистр eax, должно быть символом, когда я пытаюсь вывести целочисленное представление, его значение выглядит как адрес памяти. Я ожидал десятичное представление буквы. Например, если символ 'a' был перемещен в eax, я должен увидеть печать 97 (десятичное представление 'a'). Но это не тот случай.
section .data
int_format db "%d", 0
;-----------------------------------------------------------
mov eax, dword[ebx + edx]
push eax
push dword int_format
call _printf ;prints a strange number
add esp, 8
xor eax, eax
mov eax, dword[ebx + edx]
push eax
call _putchar ;prints the correct character!
add esp, 4
Так что здесь дает? в конечном итоге я хочу сравнить символ, поэтому важно, чтобы eax получил правильное десятичное представление символа.