Меню сайта

Урок 103. Макрокоманды повторения

Для тех случаев, когда нужно несколько разповторять один и тот же
— — — фрагмент программы в макроассемблереимеется несколько специальных
— — — макрокоманд. Это операторы REPT, IRT иIRPC. Каждый из них
— — — действует как макрокоманда в макрокомандеи приводит к генерации
— — — следующего за ним участка программы, покаассемблеру не встретится
— — — операнд ENDM.

— — — — — Для простого повторения — последрвательности команд используется
— — — макрокоманда REPT. Последовательность

— — — — — REPT — выражение
— — — — — -… тело макрокоманды REPT
— — — — — ENDM

— — — — дублирует команды, составляющих телоданной макрокоманды. Значение
— — — выражения определяет число повторенийтекста.

— — — — — С помощью макрокоманды IRP можно прикаждом повторении
— — — использовать разные параметры. При использованииконструкции

— — — — — IRP — — -фиктивный параметр,&lt-список&gt-
— — — — — -… тело макрокоманды IRP
— — — — — ENDM

— — — ассемблер осуществляет столько проходовтела макрокоманды,
— — — сколько указано элементов в списке. Прикаждом проходе ассемблер
— — — подставляет вместо фиктивного параметраследующий по порядку
— — — элемент списка. Элементы списка должныбыть числовыми выражениями.
— — — — — Если вы хотите использовать в спискесимвольные значения,
— — — применяйте макрокоманду IRPC.Последователность
— — — — — IRPC — — — -фиктивный параметр, строкасимволов
— — — — — -… тело макрокоманды IRPC
— — — — — ENDM

— — — осуществляет по одному проходу теламакрокоманды для каждого
— — — символа. При этом фиктивный параметрассемблер каждый раз заменяет
— — — следующим по порядку символом из строки.На Фиг. 6.7 показаны
— — — примеры применения описанных макрокомандповтора.

— — — — — — — — — — -Microsoft (R) Macro Assembler Version 5.00 — — — — — — — — — — — — 4/2/89 16:06:54
— — — — — — — — — — -Фиг. 6.7 Макроповторения — — — — — — — — — — — — — — — — — — — — — — — -Page — — — -1-1

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — PAGE — — -,132
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — TITLE — -Фиг. 6.7 Макроповторения

— — — — — — — — — — — 0000 — — — — — — — — — — — — — — — — — — — CODE — — -SEGMENT
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — ASSUME -CS:CODE,DS:CODE

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — REPT — — -3 — — — — Повторить команду 3 раза
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — INC — — — -AX
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — ENDM
— — — — — — — — — — — 0000 — 40 — — — — — — — — — — — — 1 — — — — — — INC — — — -AX
— — — — — — — — — — — 0001 — 40 — — — — — — — — — — — — 1 — — — — — — INC — — — -AX
— — — — — — — — — — — 0002 — 40 — — — — — — — — — — — — 1 — — — — — — INC — — — -AX

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — IRP — — — -VALUE,&lt-5,10,15,20&gt-
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — ADD — — — -AX,VALUE
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — ENDM
— — — — — — — — — — — 0003 — 05 0005 — — — — — — — — — — — — — 1 — — — — — — ADD — — — -AX,5
— — — — — — — — — — — 0006 — 05 000A — — — — — — — — — — — — — 1 — — — — — — ADD — — — -AX,10
— — — — — — — — — — — 0009 — 05
000F — — — — — — — — — — — — — 1 — — — — — — ADD — — — -AX,15
— — — — — — — — — — — 000C — 05 0014 — — — — — — — — — — — — — 1 — — — — — — ADD — — — -AX,20

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — IRPC — — -CHAR, ABCD
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — ADD — — — -AX,CHAR&amp-X
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — ENDM
— — — — — — — — — — — 000F — 03 C0 — — — — — — — — — 1 — — — — — — ADD — — — -AX,AX
— — — — — — — — — — — 0011 — 03 C3 — — — — — — — — — 1 — — — — — — ADD — — — -AX,BX
— — — — — — — — — — — 0013 — 03 C1 — — — — — — — — — 1 — — — — — — ADD — — — -AX,CX
— — — — — — — — — — — 0015 — 03 C2 — — — — — — — — — 1 — — — — — — ADD — — — -AX,DX

— — — — — — — — — — — 0017 — — — — — — — — — — — — — — — — — — — CODE — — -ENDS
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — END
— — — — — — — — — — — — — — — — — Фиг. 6.7 Макрокоманды повтора

Категория: Программирование на Ассемблере | Дата: 21.03.13

Меню раздела
Блок