Задание макроопределений в программе
Существует два способа использования макроопределений:
· задать в начале программы;.
· Создать отдельный файл с библиотекой макроопределений.
Если макроопределение специфично и требуется только для одной программы, то его можно задать в тексте программы, а затем вызывать по мере необходимости. В качестве примера составлен макрос для вычисления куба переменной name3=name3
Mul3 macro name, name3
Mov ax, name
Imul AX
Imul name
Mov name3,AX
Mul3 endm
Макрокоманда
MUL3 X, Y
Позволит вычислить y=x*x*x
В текст программы вместо макрокоманды MUL3 X, Y вставится ее макрорасширение с заменой формальных параметров name и name3 на X и Y:
Mov ax, X
IMUL AX
IMUL X
MOV Y, AX
Наиболее часто используемые макросы для операций ввода-вывода на экран собраны в библиотеке MAC.LIB. Как работать с макросами из библиотеки мы уже знаем после выполнения предыдущих работ.
Приложение 1. Список наиболее часто используемых макросов
Макросы для работы с экраном.
CLS
ДЕЙСТВИЕ Очищает экран.
ВХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют.
CRLF
ДЕЙСТВИЕ Возврат каретки и переход к следующей строке; перемещает курсор к началу следующей строки.
HOME
ДЕЙСТВИЕ Перемещает курсор в левый верхний угол экрана.
МАКРООПРЕДЕЛЕНИЯ ДЛЯ ВЫВОДА ИЗОБРАЖЕНИЯ НА ЭКРАН
MESSAGE ИМЯ-СТРОКИ
ДЕЙСТВИЕ Изображает на экране строку символов, находящуюся в сегменте данных.
|
|
ВХОДНЫЕ ЗНАЧЕНИЯ ИМЯ-СТРОКИ.
ФОРМАТ СТРОКИ Строка должна заканчиваться символом $.
Например ILLEGAL DB Ошибочное значение.
PRINT_AL
ДЕЙСТВИЕ Изображает символ, код которого содержится в регистре AL, затем перемещает курсор в следующую позицию.
ВХОДНЫЕ ЗНАЧЕНИЯ (AL)=код символа.
ВЫХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют. Содержимое регистра AL не изменяется.
PRINT_NUMBER
ДЕЙСТВИЕ Изображает число со знаком, содержащимся в регистре AX.
ВХОДНЫЕ ДАННЫЕ (AX)=изображаемое число.
ВЫХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют ; содержимое регистра AX не изменяется.
МАКРООПРЕДЕЛЕНИЯ ДЛЯ ВВОДА ДАННЫХ С КЛАВИАТУРЫ
INKEY
ДЕЙСТВИЕ Ожидает нажатия на клавишу, затем считывает ее ASCII-код в регистр AL и изображает соответствующий ему символ на экране.
ВХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют.
ВЫХОДНЫЕ ЗНАЧЕНИЯ (AL)=ASCII-код клавиши.
2.Таблицу ASCII-кодов см. в приложении Б.
IN$ ИМЯ-СТРОКИ
ДЕЙСТВИЕ Считывает последовательность набираемых на клавиатуре символов в буфер, находящийся в сегменте данных.
ВХОДНЫЕ ЗНАЧЕНИЯ ИМЯ-СТРОКИ=имя буфера.
ФОРМАТ БУФЕРА Буфер должен быть на три байта длиннее, чем помещаемая в него строка; первый байт определяет максимально возможную длину строки плюс один.
|
|
KEY_$2BIN
ДЕЙСТВИЕ Преобразует последовательность набранных на клавиатуре символов в число со знаком, помещаемое в регистр AX. Если последовательность символов допустима, то CF=0 и (AX)=полученное число. Если недопустима, то СF=1.
ПРИМЕР KEY_$2BIN ; Ввести число с клавиатуры
JC PRINT ERROR
Приложение 2 Титульный лист отчета по лабораторной работе.
Министерство науки и образования Российской федерации
Федеральное агентство по образованию
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Факультет Заочно-вечерний
кафедра Вычислительной техники
Тема
Отчет по лабораторной работе №
Вариант №
По дисциплине: Машинно-ориентированные языки |
Выполнил студент группы: | ЭВМзс-2011 | С.В.Евграфов | |||
шифр группы | подпись | Фамилия И.О. | |||
Проверил: | Н.Н.Егорова | ||||
должность | подпись | Фамилия И.О. |
Дата добавления: 2019-02-12; просмотров: 209; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!