Вычисление выражения по формуле. - 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
. - Завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д