Сборка x86 Value не копирует правильно? - PullRequest
0 голосов
/ 01 февраля 2020
;-57,319,865
mov eax, [dNum5]
mov edx, [dNum6]
imul edx
;mov [message], eax
mov [qAns14], eax

Ответ должен быть -57 319 865, как отмечено в комментарии. Всякий раз, когда я смотрю на переменную сообщения, которую я создал, это правильно. Когда я смотрю на qAns14, это 4,237,647,431. Я понятия не имею, почему - я объявил обе переменные следующим образом:

message     dq  0
qAns14      dq  0

Я даже не представляю, почему перемещение eax в сообщение дает правильный результат, а перемещение его в qAns14 - нет. Любое понимание? Спасибо!

РЕДАКТИРОВАТЬ:

Я обнаружил, что выполнение этого дает правильный ответ:

mov eax, [dNum5]
mov edx, [dNum6]
imul edx
mov [qAns14], eax
mov [qAns14+4], edx

Мне нужно было добавить более высокую часть, как предложил Питер Графс. Это просто никогда не приходило мне в голову, так как я мог видеть правильный ответ при перемещении его в переменную сообщения - что это объясняет ?? Я думаю, что один из комментариев отвечает на это, но объяснение пришло мне в голову.

РЕДАКТИРОВАТЬ:

Теперь я вижу, что причиной этого были команды, используемые для отображения переменных:

echo qAns14: \t
x/dg &qAns14
echo MESSAGE: \t
x/dw &message
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...