[TASM] Умножить три числа - Assembler

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

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

TASM умножить три числа - Assembler

Решение задачи: «[TASM] Умножить три числа»

textual
Листинг программы
model small
stack 512 
dataseg
a db 7
b db 8
c db 4
res db 0 
codeseg
start:
mov ax, @data
mov ds, ax
mov al, a
mov bl, b
mul bl
mov cl, c
mul cl
mov res, cl
mov ah, 4ch
int 21h
end start

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

  1. model small - устанавливает модель памяти, в данном случае small, что означает одностраничную сегментную таблицу;
  2. stack 512 - определяет размер стека в 512 байт;
  3. dataseg - определяет сегмент данных;
  4. a db 7 - определяет переменную a и присваивает ей значение 7;
  5. b db 8 - определяет переменную b и присваивает ей значение 8;
  6. c db 4 - определяет переменную c и присваивает ей значение 4;
  7. res db 0 - определяет переменную res и присваивает ей значение 0;
  8. codeseg - определяет сегмент кода;
  9. start: - определяет точку входа в программу;
  10. mov ax, @data - перемещает регистр AX значение сегмента данных;
  11. mov ds, ax - устанавливает сегмент данных равным значению регистра AX;
  12. mov al, a - перемещает значение переменной a в регистр AL;
  13. mov bl, b - перемещает значение переменной b в регистр BL;
  14. mul bl - выполняет умножение значения регистра AL на значение регистра BL;
  15. mov cl, c - перемещает значение переменной c в регистр CL;
  16. mul cl - выполняет умножение значения регистра AX на значение регистра CL;
  17. mov res, cl - перемещает результат последнего умножения в переменную res;
  18. mov ah, 4ch - устанавливает регистр AH на значение 4CH, что означает функцию завершения работы программы;
  19. int 21h - вызывает функцию завершения работы программы;
  20. end start - указывает на точку окончания программы.

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

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