Написать подпрограмму деления целых однобайтных чисел - Assembler

Узнай цену своей работы

Формулировка задачи:

Уважаемые буду очень признателен за помощь с решением задачи в nasm Написать подпрограмму деления целых однобайтных чисел. Параметры передавать через регистры. Результат вывести на экран я уже всю голову сломал, я знаю что я нуб в ассемблере поэтому и прошу помощи все кто хочет постебаться на новичком и не чем не помочь будьте добры проходите мимо
SECTION .text
 
mov ax, 125
mov bl, 5
mov [summand1],ax
mov [summand2],bl
 
div bl
mov [amount],al
 
mov dl, [amount]
add dl,'0'
mov al,0x02
int 0x21
 
mov al,0x4c
int 0x21
 
SECTION .data
summand1 db 1
summand2 db 1
amount   db 1
помогите кто нибудь
неужели не кто не может помочь?

Решение задачи: «Написать подпрограмму деления целых однобайтных чисел»

textual
Листинг программы
SECTION .text
 
mov ax, 125
mov bl, 5
mov [summand1],ax
mov [summand2],bl
xor dx,dx 
div bl
mov [amount],al
; выводит результат в диапазоне 0-99
aam
add ax,3030h
xchg    ah,al
int 29h 
xchg    ah,al
int 29h 
 
mov ah,0x4c
int 0x21
 
SECTION .data
summand1 dw 1
summand2 db 1
amount   db 1

Объяснение кода листинга программы

  1. Подпрограмма начинается с установки начального значения регистра AX равным 125, а также значения регистра BL равным 5.
  2. Затем происходит перенос значения регистра AX в ячейку памяти по адресу [summand1], а значение регистра BL переносится в ячейку памяти по адресу [summand2].
  3. Далее происходит инициализация регистра DX нулевым значением.
  4. Затем выполняется операция деления значения регистра AX на значение регистра BL, при этом результат сохраняется в регистре AX, а остаток от деления сохраняется в регистре DX.
  5. Значение регистра AX, содержащее результат деления, переносится в ячейку памяти по адресу [amount].
  6. Затем выполняется команда AAM, которая преобразует десятичное значение в шестнадцатеричное, при этом результат вычисления равен 03030h.
  7. Затем выполняется операция XCHG, которая меняет местами значения регистров AX и AL.
  8. После этого выполняется команда INT 29H, которая выводит результат на экран.
  9. Затем выполняется операция XCHG, которая меняет местами значения регистров AX и AL.
  10. После этого выполняется команда INT 29H, которая выводит результат на экран.
  11. Затем происходит установка значения регистра AH равным 4C.
  12. После этого выполняется команда INT 021H, которая выводит результат на экран.
  13. Подпрограмма завершается.

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы