Вычисление выражения по формуле. - Assembler (223058)
Формулировка задачи:
Как сделать? (A-2)(A+6)(A*4)
Решение задачи: «Вычисление выражения по формуле.»
textual
Листинг программы
LOCALS .model small .stack 100h .data A db 100 R dd 0 .code main proc mov ax, @data mov ds, ax mov al, A ;bl=A-2 sub al, 2 mov bl, al mov al, A ;al=(A+6) add al, 6 mul bl ;bx=(A-2)*(A+6) mov bx, ax mov al, A ;ax=A*4 mov ah, 0 shl ax, 1 shl ax, 1 mul bx ;(dx:ax)=(A-2)*(A+6)*(A*4) mov word ptr R, ax mov word ptr R+2, dx mov ax, 4C00h int 21h main endp end main
Объяснение кода листинга программы
- Создание локальных переменных.
- Установка размерности модели памяти.
- Определение размера стека.
- Определение блока данных: переменная
A
типа байт и переменнаяR
типа двойного слова. - Определение начала процедуры
main
. - Установка значения регистра
ax
в значение сегмента данныхds
. - Вычитание 2 из переменной
A
и сохранение результата в регистреbl
. - Добавление 6 к переменной
A
и сохранение результата в регистреal
. - Умножение регистров
al
иbl
и сохранение результата в регистреbx
. - Умножение переменной
A
на 4 и сохранение результата в регистреax
. - Умножение значений регистра
ax
и регистраbx
, результат помещается в регистрыdx
(старшая половина) иax
(младшая половина). - Сохранение результатов вычислений в переменную
R
. - Завершение процедуры
main
. - Завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д