Я работаю над заданием в сборке 8086 и получаю неправильный ответ; может ли кто-нибудь угадать, в чем моя проблема? Я хочу, чтобы умножить слово байт .... вот мой код:Я получаю неправильные ответы при умножении слова на байт в сборке 8086
STSEG SEGMENT
DB 64 DUP(?)
STSEG ENDS
;--------
DTSEG SEGMENT
D1 DW 6454H
D2 DB 44H
REPLY DW 2 DUP(?)
DTSEG ENDS
;--------
CDSEG SEGMENT
MAIN PROC FAR
ASSUME DS:DTSEG, SS:STSEG, CS:CDSEG
MOV AX,DTSEG
MOV DS,AX
MOV AX,0
MOV AL,D2
MOV BX,D1
MUL BL
MOV REPLY,AX
MOV REPLY+2,DX
MAIN ENDP
CDSEG ENDS
'мул bl' -> результат в' ax'. Пожалуйста, прочитайте инструкцию по инструкции (http://x86.renejeschke.de/html/file_module_x86_id_210.html). –
Описание проблемы также указывает на проблему. Если вы «умножаете слово на байт», вам обычно нужно как минимум слово для хранения результата. Следовательно, умножение на байт приводит к слову, умножение на слово приводит к двойному слову. –