Главная » Все файлы » Просмотр файлов из архивов » Документы » Конспект лекций по курсу Ассемблер (Алещенко)

Конспект лекций по курсу Ассемблер (Алещенко) (Раздаточный материал), страница 8

2016-04-08СтудИзба

Описание файла

Файл "Конспект лекций по курсу Ассемблер (Алещенко)" внутри архива находится в папке "Ассемблер". Документ из архива "Раздаточный материал", который расположен в категории "". Всё это находится в предмете "ассемблер" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "ассемблер" в общих файлах.

Онлайн просмотр документа "Конспект лекций по курсу Ассемблер (Алещенко)"

Текст 8 страницы из документа "Конспект лекций по курсу Ассемблер (Алещенко)"

эквивалентно

TASM FIL1;

Для MASM возможны три эквивалентные записи:

MASM FIL1.asm, FIL1.obj, FIL1.lst, FIL1.crf

MASM FIL1,,,

MASM FIL1, FIL1, FIL1, FIL1

Опции управляют работой ассемблера и форматом генерируемых файлов. Опции предваряются знаком «/» или «-». Набор опций варьируется в зависимости от пакета TASM или MASM, а также от версии.

Ниже приведен список общих опций:

/А – упорядочить сегменты в алфавитном порядке

/С – формировать файл перекрестных ссылок

/L – формировать файл листинга

/ML – считать заглавные и строчные латинские буквы в именах различными

/T – отменить сообщение об успешном ассемблировании

/Zi - воспроизводить на экране ошибочные строки

Опций может быть несколько, они разделяются пробелами и размещаются:

- в MASM – в любом месте списка,

- в TASM – в начале перед списком имен.

Например,

TASM /L /Zi P,P1

Здесь обрабатывается файл P.asm, формируются файлы P.lst и P1.obj

MASM /Zi St,,Stest

Обрабатывается файл St.asm, формируется файл Stest.lst

3. Компоновка ОМ выполняется с помощью компоновщика (редактора связей), вызывается командами MS DOS

LINK name – совместимо с MASM

TLINK name – совместимо с TASM

Основное назначение – подключение к файлу с основной программой файлов с подпрограммами и настройка связей, изменение формата ОМ и преобразование его в загрузочный файл (.EXE).

Полный формат команды на примере LINK:

LINK {ОМ} [,{загр.}[,{карта}[,{библ.} ]]] [/{опции}]

где {ОМ} – имя файла или их последовательность, разделенная знаком «плюс» или пробелами;

{загр.} – имя загрузочного файла;

{карта} – имя файла, содержащего т.н. карту сборки, описывающую все общие символы, с расширением .MAP;

{библ.} - имя файла библиотеки или их последовательность, разделенная знаком «плюс» или пробелами.

Имена файлов могут указываться без расширения.

Опции в LINK и TLINK не совпадают!

Примеры:

TLINK P1;

формируются файлы P1.exe, P1.map

LINK P1;

формируется файл P1.exe

Использование опций:

LINK/MAP P1;

формируются файлы P1.exe, P1.map

LINK/C0 P1+P2,P3,P3,LIB1+LIB2

Компоновка и подключение библиотек, опция /C0 была рассмотрена ранее в разделе «расположение процедур».

В TASM можно подключить библиотеки в программе и нет необходимости указывать файлы в команде TLINK. В этом случае используется директива INCLUDE.

После компоновки загрузочный файл с расширением .EXE можно запускать.

4. Отладчики – это специальные программы, облегчающие отладку программ на ЯА. Наибольшее распространение получили три отладчика:

Debug – отладчик, входящий в MS DOS,

CV (Code View) – фирмы Microsoft, входит в пакет MASM,

TD (Turbo Debugger) – фирмы Borland, входит в пакет TASM.

Вызов на примере Debug производится командой

Debug P[.exe]

Общее требование – наличие загрузочного файла.

Рассмотрим подробнее использование отладчиков.

а) Debug позволяет записать программу на ЯА или в машинных кодах, запускать ее в разных режимах (с точками останова или без них, а также в пошаговом режиме), просматривать области памяти, регистры и при необходимости вносить изменения;

б) Code View – интерактивный отладчик, вся работа с ним осуществляется в непрерывном диалоге с пользователем;

в) Turbo Debugger – также интерактивный отладчик.

CV и TD имеют общие свойства, а именно они:

- имеют систему многооконного изображения на экране, позволяющую при выполнении программы видеть изменение содержимого регистров МП, флагов, выбранных ячеек памяти;

- позволяют запускать программу в пошаговом режиме, по участкам или по циклам;

- позволяют в ходе отладки вносить изменения в содержимое регистров МП и областей памяти.

Основное общее неудобство отладчиков CV и TD состоит в том, что нельзя вносить изменения в текст программы, хотя он и отражается на экране монитора. Изменения в текст приходится вносить в редакторах, затем необходимы ассемблирование и компоновка, после чего можно проверять исправленную программу на отладчике или без него.

Модели памяти

Пакет TASM дает возможность упрощенного описания сегментной структуры программ на ЯА. Для этого введено понятие «модели памяти», которое объединяет особенности автоматического распределения памяти при ассемблировании.

Модель памяти определяет следующие параметры:

- количество сегментов, их расположение, перекрытие и т.п.;

- размерности и свойства переменных и предопределенных значений в программе (например, тип процедур NEAR или FAR).

Обычно модель памяти используется по умолчанию и определяется ассемблером в зависимости от числа сегментов, но можно задать модель памяти с помощью директивы ЯА, располагаемой в начале файла с программой, что позволяет использовать упрощенные формы описания сегментов. Общий вид директивы

.MODEL {тип}

где {тип} – может принимать следующие значения:

а) tiny – ИМ состоит из одного сегмента, т.е. регистры CS, DS и SS имеют одно и то же значение; наиболее компактная программа, занимающая 64КБ, все переходы – типа NEAR;

б) small – сегмент кода отделен от сегментов данных и стека, последние объединены в одну группу, т.е. DS и SS имеют одно и то же значение; наиболее распространенная модель памяти, все переходы – типа NEAR;

в) compact – используется один сегмент кодов и несколько сегментов данных, все переходы – типа NEAR, а обращение к данным – с указанием сегментного регистра, но сегменты данных и стека объединены в одну группу;

г) medium – несколько сегментов кодов и общий сегмент данных со стеком, доступ к процедурам – типа FAR, а обращение к данным указывает только смещение;

д) large – наиболее общий случай; несколько сегментов кодов и данных, вся адресация – с помощью сегментных регистров;

е) huge – аналогичен large, но предназначен для совмещения с программами на языках высокого уровня, разрешается работа с данными, занимающими >64КБ памяти.

Список значений параметра {тип} приведен не полностью, кроме того существуют другие параметры директивы .MODEL, но мы их здесь не рассматриваем.

При использовании данной директивы ИМ может иметь различную структуру.

Например,

. MODEL small

Stack 256

.Data

{данные}

.Code

ASSUME DS:@data, ES:@data

Main:

END Main

Создание файлов типа .EXE и .COM.

Для программы типа .EXE компоновщик автоматически генерирует определённый формат и при сохранении его на диске предворяет под программы специальным блоком размером ≥ 512 Б. Можно писать и выполнять программы типа .COM. Приимущество этих программ – меньший размер по сравнению с программами типа .EXE и более лёгкая адаптация к применению.

Существенные различия между программами типа .EXE и типа .COM включают в себя:

  1. Размер программы

Программы типа .COM используют единый сегмент для инструкций и данных, ограниченный размером 64 КБ включая префикс сегмента программы. PSP – это 256 Б(100h) блок, который загрузчик программ вставляет непосредственно перед программами при загрузке их в память диска. В .EXE есть ещё заголовок, который содержит информацию о перемещаемых адресах.

2) Сегментация

Рассмотрим сегментную структуру файлов в памяти:

заголовок

PSP

Стек

Сег. данных

Сег. кода

EXE COM

PSP

Сегмент кода

Стек

ES

DS

E S CS

S S

C S

D S SS



Для программ типа .EXE необходимо явно определить сегменты данных и стека. Для программ типа .COM описание стека следует опустить.

  1. Инициализация

Когда загрузчик программ загружает для выполнения программу типа .COM он автоматически инициализирует CS, DS и ES адресом PSP. Поскольку PSP имеет размер 100h Б, то адресация программы начинается со смещения 100h, для чего требуется в текст программы внести директиву ORG 100h сразу за описанием сегмента. Эта директива приказывает ассемблеру установить счётчик положения в значения 100h – это адрес начала кода программы. Примеры программ, описанных в соответствии с требованиями формата .СОМ:

1) Title A05 COM

Codes Segment para ‘code’

ASSUME CS : codes, DS : codec, SS : codes, ES : codes

ORG 100h

BEGIN : JMP main

FLDD DW 215 ; определение данных

FLDE DW 125

FLDF DW ?

main proc NEAR

…………………..

mov AX, 4C00h

int 21h

main endp

codes ends

end BEGIN ; программа для MASM и для .СОМ формата файла.



2) Title A05 COM2

.model TINY

.code

ORG 100h

BEGIN : JMP main

FLDD DW 215 ; определение данных

FLDE DW 125

FLDF DW ?

main proc NEAR

…………………..

main endp

end BEGIN.

Макросы

Каждая инструкция ЯА генерирует одну команду в машинных кодах. В языках высокого уровня одной инструкции (оператору) соответствует несколько машинных команд. С этой точки зрения языки высокого уровня можно рассматривать как набор макрокоманд. Ассемблер содержит механизмы, позволяющие создавать и использовать в программах макросы, вызываемые при помощи макрокоманд. Макрокоманды позволяют вставлять в текст программы последовательности строк (которые могут быть данными или командами) и привязывать их к контексту места вставки. В общем случае можно говорить, что транслятор ассемблера состоит из двух частей – непосредственно транслятора, формирующего ОМ, и макроассемблера.

Обработка программы на ЯА с использованием макросредств неявно осуществляется в 2 фазы :

Определение макросов

Макроопределение – это описание (шаблон, описание макроса) содержимого макрокоманды. Общий вид:

{имя макроса} MACRO [{список форм. аргументов}]

{тело макроса}

ENDM

где {имя макроса} – должно быть уникальным как в программе, так и в используемых библиотеках.

Для включения макросов в программу сначала их нужно определить или скопировать из библиотеки.

Возможны варианты размещения макроопределений:

- В начале ИМ до сегментов кодов и данных, если макроопределение используется только в данной программе;

- В отдельном файле (для нескольких программ); чтобы сделать доступными эти макросы в конкретной программе, нужно в начале ИМ записать директиву

INCLUDE {имя файла с макросом}

Например,

. MASM

.MODEL small

INCLUDE show.inc

Data segment

…………………….

- В макробиблиотеке (тоже файл типа .inc). Особенность – в исходный текст программы включаются все макросы из библиотеки. Чтобы бороться с этим нужно использовать директиву PURGE {список имен макросов}

Например,

INCLUDE iomac.inc

PURGE outstr, exit.

Простые определения макросов

Используются, например, для инициализации сегментных регистров в программе:

Например,

Initz MACRO

Mov AX, @data

Mov DS,AX

ENDM

причем INITZ – имя макроса, а AX, @data и DS должны быть определены где-то в вызывающей программе. Ассемблер обнаруживает в тексте программы имя макроса – это макровызов, например

Initz

Ассемблер вставляет на место макровызова тело макроса, создавая макрорасширение.

Например, для макроса

Finish MACRO

mov AX,4C00h

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее