Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Комментарии в макрокомандах




3.1. Составить в текстовом редакторе следующую программу в ЕХЕ-формате:

 

.286

TITLE MACRO3 (EXE) Директивы.LALL и.SALL

;--------------------------------------------

INIT2 MACRO CSNAME,DSNAME,SSNAME

ASSUME CS:CSNAME,DS:DSNAME

ASSUME SS:SSNAME,ES:DSNAME

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DSNAME

MOV DS,AX

MOV ES,AX

ENDM;Конец макрокоманды

;--------------------------------------------------

PROMPT MACRO MESSAGE

; Макрокоманда выводит на экран любые сообщения

;; Генерирует команды вызова DOS

MOV AH,09;Вывод на экран

LEA DX,MESSAGE

INT 21H

ENDM

;-------------------------------------------------------

STAC SEGMENT PARA 'Stac'

DW 32 DUP(?)

STAC ENDS

;---------------------------------------------------

DATA SEGMENT PARA 'Data'

MESSG1 DB 'Customer name?','$'

MESSG2 DB 'Customer address?','$'

DATA ENDS

;---------------------------------------------------

CSEG SEGMENT PARA 'Code'

BEGIN PROC FAR

.SALL

INIT2 CSEG,DATA,STAC;Макрокоманда

PROMPT MESSG1

.LALL

PROMPT MESSG2

RET

BEGIN ENDP

CSEG ENDS

END BEGIN

 

В программе определены два макроопределения INIT2 и PROMPT. Кодовый сегмент содержит директиву.SALL для подавления распечатки INIT2 и первого расширения PROMPT. Для второго расширения PROMPT директива.LALL указывает ассемблеру на вывод в листинг комментария и макрорасширения.

3.2. Выполнить ассемблирование и компоновку программы. Запустить программу из панели NORTON. Просмотреть листинг программы и записать его в отчет.

 

Использование макрокоманд внутри макроопределения.

4.1. Составить в текстовом редакторе следующую программу в ЕХЕ-формате:

 

.286

TITLE MACRO4 (EXE) Вложенные макрокоманды

;--------------------------------------------

INIT2 MACRO CSNAME,DSNAME,SSNAME

ASSUME CS:CSNAME,DS:DSNAME

ASSUME SS:SSNAME,ES:DSNAME

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DSNAME

MOV DS,AX

MOV ES,AX

ENDM;Конец макрокоманды

;--------------------------------------------------

DOS21 MACRO DOSFUNC

MOV AH,DOSFUNC

INT 21H

ENDM

;-------------------------------------------------------

DISP MACRO CHAR

MOV DL,CHAR

DOS21 02

ENDM

;--------------------------------------------------------

STAC SEGMENT PARA 'Stac'

DW 32 DUP(?)

STAC ENDS

;---------------------------------------------------

DATA SEGMENT PARA 'Data'

NAMEPAR LABEL BYTE;Список параметров

MAXLEN DB 20;Максимальная длина

ACTLEN DB?;Реальная длина

NAMEFLD DB 20 DUP (' ');Введенные символы

DATA ENDS

;---------------------------------------------------

CSEG SEGMENT PARA 'Code'

BEGIN PROC FAR

.SALL

INIT2 CSEG,DATA,STAC;Макрокоманда

LEA DX,NAMEPAR

DOS21 0AH

.LALL

DISP '*'

RET

BEGIN ENDP

CSEG ENDS

END BEGIN

 

Макроопределение DOS21 заносит в регистр АН номер функции DOS и выполняет INT 21H. Макроопределение DISP использует макроопределение DOS21 для установки в регистре АН функции 02 для вывода символа. Указывая параметр макроопределения DISP можно выводить любой символ.

4.2. Выполнить ассемблирование и компоновку программы. Запустить программу из панели NORTON. Просмотреть листинг программы и записать его в отчет.

 





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


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 370 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если президенты не могут делать этого со своими женами, они делают это со своими странами © Иосиф Бродский
==> читать все изречения...

2469 - | 2332 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.