Компилация и асемблер
Изходната програма, написана на асемблер, трябва да бъде преведена в целева програма, за да бъде изпълнена от машината. Този процес на превод се нарича компилация, а програмата за изпълнение на задачата за асемблиране се нарича асемблер, вижте Фигура 1.
Асемблерът е най-ранният и е и най-зрелият системен софтуер. В допълнение към възможността да се преведе изходната програма на асемблерния език в програма на машинен език, също така е възможно автоматично да се разпределят области за съхранение (включително програмна област, област за данни, временна област и т.н.) според изискванията на потребителя; автоматично поставяне на различни видове система за пренасяне Преобразуването на числата се преобразува в двоично, преобразува знака в ASCII кода, изчислява стойността на израза; програмата за автоматичен източник проверява, дава съобщение за грешка (като например незаконен формат, недефиниран музей, лазери, липсващи операнди и т.н.) Изчакайте. Асемблерът с тези функции се нарича също основен асемблиране (или малък асемблиращ ASM).
последователност от програмиране на макроси
Въз основа на основната компилация е позволено допълнително да се дефинира последователност от команди като макросглобка (MASM) в изходната програма. програма. Той съдържа всички функции на ASM, но също така и характеристики на асемблерния език на високо ниво като макроси, структура, записи.
Основната характеристика на асемблирането на макроси е да увеличи обработката на макроси в асемблера. Той позволява на потребителите лесно да дефинират и използват макроси, които могат да се използват в множество изяви в програмата, с определен формат и могат да бъдат модулирани чрез малка корекция на програмни параграфи. Този метод не само намалява дължината на програмата, увеличава четливостта и форматът на програмния абзац трябва да се промени, но трябва само да промени дефиницията, без да се налага да променя всяка употреба.
Асемблирането на макроси включва не само функционалността на общия асемблер, но и структурата на данните, използвана от програмата за напреднали, е асемблер, близък до програмата за напреднали. Например, той осигурява операция със запис, структура и низ; има много функции като обработка на макроси, условно сглобяване и извиквания на DOS функции на дисковата операционна система; разработката на програмата и средствата за отстраняване на грешки също са относително завършени.
Причини за използването на макро асемблиране
По време на езиковата програма за компилиране, някои функционални сегменти трябва да се повторят многократно, само броят на операндите е такъв. За да се намали натоварването на програмирането, обикновено се използват два метода:
(1) да напишете програмния сегмент като отделна подпрограма;
(2) дефинира блока в макрос.
Макрос (инструкция)
(1) съкращаване на изходния код;
(2) разширяване на набора от инструкции;
(3 Променете значението на определени помощни инструкции (приоритетът на макроса е по-висок от инструкциите и директивите).
макрос
макросът е широко разпространено понятие в компютърните софтуерни системи. От офис софтуер до език за разработка на програми C и т.н., можете да дефинирате процес, който да се управлява като макрос. По-конкретно, в асемблерния език макросът също е една от основните характеристики на компилацията, която е друг опростен източник на опростени процедури за изходен код, подобни на подпрограмата.
Езикът за програмиране, макросът е програмен код с независими функции в изходната програма и макросът може също да се нарече макрос, макрооперация. Използването на макроси изисква три стъпки: дефиниране на макроси, корекция на макроси и макроси. Първа макро дефиниция; след това макро повикване; накрая, Macro разширението се прави от MASM по време на асемблирането.
дефиниция на макрос
оператор за дефиниране на макрос Процедурата за дефиниране на макрос и подпрограма proc е псевдоинструкция. Дефинирането на макроси изисква двойка псевдоинструкции Macro и ENDM завършване. Макро дефинираният формат е както следва:
име на макрос Макрос [фиктивно 1, фиктивно 2, ...]
...
Squiry Stroke
...
endm
Описание: Дефиницията на макрос не генерира целеви код, а просто използва връзката между „име на макрос“ и изходен код. Сред тях dumms 1, dummy 2, ... са виртуални параметри или параметри на формата, разделени със запетаи. Вентилите или формата не са зададени.
Например: Дефиниране на макрос за въвеждане от клавиатурата Вход:
макрос за въвеждане
MOV AH, 01H
int 21 ч
endm
трябва да се отбележи, че когато именувате, не трябва да е същото като името на инструкцията на асемблерния език, думата е същата.
извикване на макрос
Когато използвате макрос в програмата, просто напишете името на макроса [inform]. Форматът на макроса е: име на макроса [Реален параметричен 1, Реален параметричен 2, ..., Реални части n].
Например, въведете знак от клавиатурата, определете дали е число "едно", не, продължете да въвеждате, е край. (Използвайки предварително дефинирания макрос).
модел малък
стек 100h
код
начало:
вход
CMP Al, '-' <
RetSys
край начало
макро дисплей отворен
макро дисплей Заменете целевия код на програмния сегмент на макроса за тела на макроси в дефинициите на макроси. Когато се сглобяват източници, оценката на макроса ще макрос макроса на всеки макрос, ще замени съответната форма и ще промени телата на макроса. Фигура 2 е пример за внедряване на макрос.
Псевдо директива за обща обработка на макроси
Псевдо директива за дефиниране на макроси (Макро / Endm)
Формат:
Макрос Макрос < / p>
(макро)
endm
MacRo е дефиниция на макрос, която дефинира име на макрос като блок, включен в тялото на дефиницията на макрос. ENDM представлява края на макроса и няма име на макрос отпред. Веднъж дадена дефиниция на макрос, можете да използвате името на макроса многократно. Но първо трябва да дефинирате, а след това да се обадите. Макро дефиницията позволява вложени, т.е. макро дефинициите могат да съдържат друга макро дефиниция и макро модулът също може да се използва, но първо трябва да се дефинира, след това да се извика.
Декларация на директивата (локална)
LOCAL в тялото на макроса е да се декларира частично референтно число в тялото на макроса, за да се избегне същото число в изходната програма, когато разширение на макрос Има много некорекции които се появяват няколко пъти, за да генерират множество дефиниции на етикетиране. Директивата LOCAL трябва да се намира преди всички други изрази (включително коментари) в макроблока, нейният формат е:
локален локален идентификатор [, ...]
, например следното довършване на макрос за завършване на регистъра Едно шестнадесетично число се преобразува в съответния ASCII код. Тъй като локалният етикет се появява в тялото на макроса, локалният етикет в тялото на макроса трябва да бъде деклариран с помощта на директивата LOCAL.
HEXTOASC Макро РЕГ
Локален номер
Cmp REG, 0AH
JC номер
Добавяне на рег., 07ч
Брой: добавете reg, 30h
endm
Изчистване на макрос, дефиниран за инструкции (PURGE)
името на макроса може да бъде Други имена на променливи, етикети, инструкции, псевдо-оперирани имена в програмата, най-високият приоритет на макроса, което е най-високото ниво на макроса, така че директивата или псевдооперацията със същото име е невалидна. За да възстановите функцията на тези инструкции или псевдо инструкции, спазвайте дефиницията на машинните инструкции, асемблерът на макроси осигурява псевдооперация Purge за отмяна на макро дефиниции, когато е подходящо.
Общият формат на директивата Purge е:
Изчистване на дефинирано име на макрос [, ...]
квадратна скоба показва, че Purge може да отмени множество макро дефиниции. Името на макроса е разделено със запетая. Като макро дефиниция:
Подмакро VARX, VARY, резултат
...
endm
извикване на макрос: SUB X, Y, Z
Изчистване на под
"purge sub" Функция за изваждане за възстановяване на под.