написать аналоги DIV и MUL
Код:
DATAX DW 0148H
DW 2316H
DATAY DW 0237H
DW 4052H
DW 2316H
DATAY DW 0237H
DW 4052H
Закодируйте команды для деления(DIV):
а) слова DATAX на 23;
б) двойного слова, начинающегося по адресу DATAX, на слово DATAY.
Умножение я сделал по примеру в книге, глянте, правильно или нет:
Закодируйте команды для умножения(MUL):
а) слова DATAX на слово DATAY;
б) двойного слова, начинающегося по адресу DATAX, на слово DATAY.
Код:
а) MOV AX, DATAX
MUL DATAY
б) RESULT DW 0
DW 0
DW 0
DW 0
MOV AX, DATAX+2 ; Слово-2 множимого
MUL DATAY+2 ; * слово-2 множителя
MOV RESULT +6, AX ; Сохранить результат
MOV RESULT +4, DX
MOV AX, DATAX+2 ; Слово-2 множимого
MUL DATAY ; * слово-1 множителя
ADD RESULT +4, AX ; Сложить с предыдущим
ADC RESULT +6, DX
ADC RESULT, 00 ; Прибавить перенос
MOV AX, DATAX ; Слово-1 множимого
MUL DATAY+2 ; * слово-2 множителя
ADD RESULT +4, AX ; Сложить с предыдущим
ADC RESULT +6, DX
ADC RESULT, 00 ; Прибавить перенос
MOV AX, DATAX ; Слово-1 множимого
MUL DATAY ; * слово-1 множителя
ADD RESULT +2, AX ; Сложить с предыдущим
ADC RESULT, DX
MUL DATAY
б) RESULT DW 0
DW 0
DW 0
DW 0
MOV AX, DATAX+2 ; Слово-2 множимого
MUL DATAY+2 ; * слово-2 множителя
MOV RESULT +6, AX ; Сохранить результат
MOV RESULT +4, DX
MOV AX, DATAX+2 ; Слово-2 множимого
MUL DATAY ; * слово-1 множителя
ADD RESULT +4, AX ; Сложить с предыдущим
ADC RESULT +6, DX
ADC RESULT, 00 ; Прибавить перенос
MOV AX, DATAX ; Слово-1 множимого
MUL DATAY+2 ; * слово-2 множителя
ADD RESULT +4, AX ; Сложить с предыдущим
ADC RESULT +6, DX
ADC RESULT, 00 ; Прибавить перенос
MOV AX, DATAX ; Слово-1 множимого
MUL DATAY ; * слово-1 множителя
ADD RESULT +2, AX ; Сложить с предыдущим
ADC RESULT, DX