- •Лабораторная работа 5 программирование арифметических задач
- •Цель работы
- •Условные обозначения
- •Команда пересылки
- •Команды сложения и вычитания
- •Команды умножения
- •Команды деления
- •Изменение размера числа
- •Оператор указания типа ptr
- •Пример программы
- •Include io.Asm ; подключение макроса io.Asm
- •Задания для самостоятельной работы
-
Пример программы
5.9.1 Формулировка задачи
Разработать программу вычисления Z по формуле
z = 2d - gm
Исходные данные - дата рождения студента в формате ДД-ММ-ГГ - соответственно значения переменных d, m, g (тип - байт);
Для вывода полученных значений Z использовать модуль IO.ASM [7], листинг которого представлен в приложении А.
5.9.2 Постановка задачи
Для определения типа величины Z проанализируем формулу ее расчета. Произведение чисел-байтов (отдельно 2d и gm) имеет тип слово. Разность двух слов – слово, следовательно, тип результата Z – слово. С учетом величин исходных данных можно утверждать, что величина Z будет отрицательной. Этот факт следует учесть при выборе конкретного макроса модуля IO.ASM - outint z.
5.9.3 Листинг программы
model small
Include io.Asm ; подключение макроса io.Asm
.stack 100h
.data
d db 28
m db 3
g db 92
z dw ? ; для результата
.code
start: ; точка входа в программу
mov ax, @data ; загрузка адреса сегмента данных
mov ds, ax
mov al, 2 ; 2 → al
mul d ; ax := al * d (=2d)
mov z, ax ; 2d → z
mov al, g ; g → al
mul m ; gm → ax
sub z, ax ; z := z – ax, в z - результат вычисления
outint z ; вывод z
mov ah, 1 ; остановка для обозрения результата
int 21h
mov ax,4C00h ; завершение работы
int 21h
end start
-
Задания для самостоятельной работы
Исходные данные:
-
дата рождения студента в формате ДД-ММ-ГГ - числа – d, m, g (байт);
-
возраст студента ( количество полных лет ) – число v (байт).
Формулы для расчета:
-
y = 4m + 3d – gv + 5
-
y = -7 + dg + 2v + 5m
-
y = v + 2m + 8 - gd
-
y = gm - 4d – 7 + 8v
-
y = 2 - 3g + 5v + m