Задание макроопределений в программе



 

Существует два способа использования макроопределений:

· задать в начале программы;.

· Создать отдельный файл с библиотекой макроопределений.

 

Если макроопределение специфично и требуется только для одной программы, то его можно задать в тексте программы, а затем вызывать по мере необходимости. В качестве примера составлен  макрос для вычисления куба переменной 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!