Я получаю другой результат с мул инструкцией по сборке - PullRequest
0 голосов
/ 18 января 2020

У меня есть этот набор инструкций в сборке.

   mov ax,0055h
   mov bx,11AAh
   mul al
   xchg ax,bx
   not ax
   neg bx

Я не понимаю инструкцию mul в третьей строке. Если я делаю 0055h * 11AAh, я получаю 5DD72, но это не правильно, потому что с программой Я получаю в AX 1C39. Как? Что за процедура?

Я знаю, что AX и BX - 16-битные регистры, и мой результат должен быть на 32-битном, а результат - на DX: AX

1 Ответ

4 голосов
/ 18 января 2020

Форма единственного аргумента mul умножит аргумент на al / ax / eax / rax в зависимости от размера операнда и сохранит результат в ax / dx:ax / edx:eax / rdx:rax соответственно.

mul al умножит al на al и сохранит результат в ax. Вы хотите mul bx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...