[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
Объяснение кода листинга программы
- model small - устанавливает модель памяти, в данном случае
small
, что означает одностраничную сегментную таблицу; - stack 512 - определяет размер стека в 512 байт;
- dataseg - определяет сегмент данных;
- a db 7 - определяет переменную
a
и присваивает ей значение 7; - b db 8 - определяет переменную
b
и присваивает ей значение 8; - c db 4 - определяет переменную
c
и присваивает ей значение 4; - res db 0 - определяет переменную
res
и присваивает ей значение 0; - codeseg - определяет сегмент кода;
- start: - определяет точку входа в программу;
- mov ax, @data - перемещает регистр AX значение сегмента данных;
- mov ds, ax - устанавливает сегмент данных равным значению регистра AX;
- mov al, a - перемещает значение переменной
a
в регистр AL; - mov bl, b - перемещает значение переменной
b
в регистр BL; - mul bl - выполняет умножение значения регистра AL на значение регистра BL;
- mov cl, c - перемещает значение переменной
c
в регистр CL; - mul cl - выполняет умножение значения регистра AX на значение регистра CL;
- mov res, cl - перемещает результат последнего умножения в переменную
res
; - mov ah, 4ch - устанавливает регистр AH на значение 4CH, что означает функцию завершения работы программы;
- int 21h - вызывает функцию завершения работы программы;
- end start - указывает на точку окончания программы.