Ради этого я возвращаюсь к сборке через несколько месяцев, и у меня возникают проблемы с умножением двух чисел и выводом результата. Вот мой код:
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data
sum sdword 0
.code
start:
mov ecx, 6
xor eax, eax
mov edx, 7
mul edx
push eax
pop sum
lea eax, sum
call StdOut
push 0
call ExitProcess
end start
Он выводит что-то вроде P &aeffiini,
.
ВОПРОС: Почему он выводит эту случайную строку символов и как я могу это исправить?
Заранее спасибо.
StdOut
(вероятно) не является функцией, поэтому ее вызов будет принимать какое-то полуслучайное значение, обрабатывать его как адрес и вызывать этот адрес — почти наверняка не то, что вы намеревались. - person Jerry Coffin   schedule 20.08.2012