Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2022-10-04 | 23 |
5.00
из
|
Заказать работу |
|
|
Для программы типа.exeкомпоновщик автоматически генерирует определенный формат и при сохранении ее на диск предваряет код программы специальным блоком заголовка размером ≥512Б.
Можно писать и выполнять программы типа.com. Преимущества этих программ – меньший размер по сравнению с программами типа.exeи более легкая адаптация к применению.
Существенные различия между программами.exeи.comвключает в себя:
1) Размер программы
Программа типа.comиспользует единый сегмент для инструкций и данных, ограниченный размером 64 КБ, включая префикс сегмента программы (PSP) – это 256B (100H). Это блок, который загрузчик программ вставляет непосредственно перед программами при загрузке их в память диска.
В.exeфайле есть еще заголовок, который содержит информацию о перемещаемых адресах.
2) Сегментация
Рассмотрим сегментную структуру файлов в памяти:
Exe
| ||||
PSP | ||||
| ||||
| ||||
Сегмент кода |
|
PSP | ||
Сегмент кода | ||
|
Для программы типа.exeнеобходимо явно определить сегменты данных и стека.
Для программы типа.comописание стека следует опустить.
3) Инициализация
Когда загрузчик программ загружает для выполнения программу.com, он автоматически инициализирует CS, DSи ESадресом PSP.
Поскольку PSP имеет размер 100р байтов, то адресация программы начинается со смещением 100h, для чего в текст программы следует ввести директиву
ORG 100h
сразу после описания сегмента.
Эта директива приказывает Ассемблеру установить счетчик положения в значение 100h– это адрес начала кода программы.
Примеры программ, написанных в соответствии с требованиями формата.com.
|
TITLE A05COM
Codes SEGMENT para ‘code’
ASSUME ES: codes, DS: codes, SS: codes, ES: codes
ORG 100h
Begin: JMP main
FLDDDW215;определениеданных
FLDEDW 125
FLDF DW?
Main PROC NEAR
...
Mov AX, 4C00H
Int 21H
Main endp
Codesends
Endbegin
Это программа для MASM, сделанная для.com.
Примердля.exe
TITLE A05COM2
.modelЕНТН
.сode
ORG 100h
Begin: JMP main
FLDD DW 215
FLDE DW 125
FLDF DW?
Main PROC NEAR
...
Main endp
Endbegin
Макроассемблер (4ч)
Каждая конструкция ЯА порождает одну команду в машинных кодах. Каждая инструкция языка высокого уровня (оператор) соответствует нескольким машинным командам.
Ассемблер содержит механизмы, позволяющие создавать и использовать в программах макросы, вызываемые с помощью макрокоманд.
Макрокоманды позволяют вставлять в текст программы последовательности строк (которые могут быть данными или командами) и привязывать их к контексту места вставки.
В общем случае можно говорить, что транслятор ассемблера состоит из двух частей – непосредственно транслятора, формирующего ОМ, и макроассемблера.
Обработка программы на ЯА с использованием макросредств неявно осуществляется в 2 фазы (см. рис.)
Макрокоманда – это строка, содержащая некоторое символическое имя (имя макрокоманды), предназначенная для того, чтобы быть замещенной одной или несколькими другими командами; кроме того макрокоманда может содержать аргументы.
Определение макросов
Макроопределение – это описание (шаблон) содержимого макрокоманды (описание макроса).
Общий вид:
{имя макроса} MACRO [{список форм. аргументов}]
{тело макроса}
ENDM
где {имя макроса} – должно быть уникальным как в программе, так и в используемых библиотеках.
Для включения макросов в программу сначала их нужно определить или скопировать из библиотеки.
Размещения макроопределений:
- в начале ИМ до сегментов кодов и данных, если макросы нужны только в данной программе.
- в отдельном файле (для нескольких программ); чтобы сделать доступными эти макросы в конкретной программе, нужно в начале ИМ записать директиву
INCLUDE {имяфайла}
Например,
|
. MASM
.MODEL small
INCLUDE show.inc
Datasegment
…
- в макробиблиотеке (тоже файл типа.inc).
Особенность – в исходный текст программы включаются все макросы библиотеки. Чтобы бороться с этим, нужно использовать директиву
PURGE {список имен макросов}
Например,
INCLUDE iomac.inc
PURGE outstr, exit
Простые определения макросов.
Например, инициализация сегментных регистров для программы:
Initz MACRO
Mov AX, @data
Mov DS,AX
ENDM
INITZ – имя макроса, а остальные имена должны быть определены где-то в программе.
Когда Ассемблер обнаруживает в тексте программы имя макроса, то это макровызов.
...
INITZ
После чего Ассемблер подставляет в программу тело макроса вместо имени, создавая макрорасширение.
Например,
Title A21MAC
INITZ MACRO
Mov AX, @data
Mov DS,AX
ENDM
Finish MACRO
Mov AX,4C00h
Int 21h
ENDM
.MODEL small
.Stack 64
.Data
Message DB ‘Test of macro,13,10’,’$’
.code
begin PROC far
Initz; вызовмакроса
MovAH,09h; для вывода
LeaDX, message; строки
Int 21h
Finish; вызовмакроса
BeginENDP
ENDbegin
|
|
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!