мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
asm:lesson3 [30/09/2010 19:46] – arabusov | asm:lesson3 [07/02/2012 18:38] (текущий) – arabusov | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ======Урок 3 ====== | + | ======Начало |
- | Первым делом проверим конфигурацию dosbox. Зайдём в домашний каталог, | + | Первым делом проверим конфигурацию dosbox. Зайдём в домашний каталог, |
* mount c ~/asm | * mount c ~/asm | ||
* path=z: | * path=z: | ||
Строка 6: | Строка 6: | ||
* keyb ru | * keyb ru | ||
Если что-то не так, то доредактируем файл. После этого dosbox будет сконфигурирован. | Если что-то не так, то доредактируем файл. После этого dosbox будет сконфигурирован. | ||
+ | |||
===== Сегментация программы ===== | ===== Сегментация программы ===== | ||
По знаменитой формуле Никлауса Вирта (создателя языка Pascal, [[http:// | По знаменитой формуле Никлауса Вирта (создателя языка Pascal, [[http:// | ||
Строка 20: | Строка 21: | ||
===== Написание программ на ассемблере ===== | ===== Написание программ на ассемблере ===== | ||
Первое, | Первое, | ||
+ | == ВНИМАНИЕ!!! == | ||
+ | Имя файла в MS-DOS и в DOSBox не может превышать восьми символов!!! | ||
+ | |||
===== Программы типа *.com ===== | ===== Программы типа *.com ===== | ||
Главная особенность com-программ: | Главная особенность com-программ: | ||
Строка 155: | Строка 159: | ||
обработке диpективы PAGE. | обработке диpективы PAGE. | ||
- | ===Директива TITLE === | + | === Директива TITLE === |
Для того, | Для того, | ||
листинга печатался заголовок (титул) программы, | листинга печатался заголовок (титул) программы, | ||
Строка 173: | Строка 177: | ||
содержащих много подпрограмм. | содержащих много подпрограмм. | ||
- | === Директива SEGMENT=== | + | === Директива SEGMENT === |
Любые ассемблерные | Любые ассемблерные | ||
Строка 194: | Строка 198: | ||
Директива | Директива | ||
определяющих выравнивание, | определяющих выравнивание, | ||
- | + | == Выравнивание | |
- | | + | Данный параметр определяет границу начала |
сегмента. | сегмента. | ||
сегмент устанавливается на границу | сегмент устанавливается на границу | ||
Строка 201: | Строка 205: | ||
имеет | имеет | ||
операнда ассемблер принимает по умолчанию PARA. | операнда ассемблер принимает по умолчанию PARA. | ||
- | | + | == Объединение |
+ | Этот элемент | ||
данный | данный | ||
компановки | компановки | ||
Строка 214: | Строка 219: | ||
PUBLIC, | PUBLIC, | ||
должна объединяться | должна объединяться | ||
- | | + | == Класс |
+ | Данный элемент, | ||
компановке: | компановке: | ||
Строка 222: | Строка 228: | ||
иллюстрирует директиву SEGMENT и ее различные опции. | иллюстрирует директиву SEGMENT и ее различные опции. | ||
- | Директива PROC | + | === Директива PROC === |
- | Сегмент | + | Сегмент |
Кроме | Кроме | ||
несколько процедур, | несколько процедур, | ||
Строка 235: | Строка 241: | ||
. | . | ||
RET | RET | ||
- | |||
- | |||
- | |||
- | Ассемблер для IBM PC. Глава 3 65 | ||
- | |||
- | |||
| | ||
| | ||
- | + | Имя | |
- | Имя | + | |
уникальным и удовлетворять соглашениям по именам | уникальным и удовлетворять соглашениям по именам | ||
ре. Операнд FAR указывает загрузчику DOS, что начало данной | ре. Операнд FAR указывает загрузчику DOS, что начало данной | ||
процедуры является точкой входа для выполнения программы. | процедуры является точкой входа для выполнения программы. | ||
- | Директива | + | Директива |
аналогичное | аналогичное | ||
выполнение программы и в данном случае возвращает управление | выполнение программы и в данном случае возвращает управление | ||
в DOS. | в DOS. | ||
- | Сегмент может содержать несколько процедур | + | Сегмент может содержать несколько процедур. |
- | Директива | + | === Директива |
- | Процессор | + | Процессор |
ркгистр | ркгистр | ||
адресации | адресации | ||
Строка 265: | Строка 264: | ||
| | ||
- | Например, | + | Например, |
ассоциировать | ассоциировать | ||
могут | могут | ||
Строка 272: | Строка 271: | ||
ES:NOTHING. | ES:NOTHING. | ||
- | Директива END | + | === Директива END === |
- | Как уже показано, | + | Как уже показано, |
директива | директива | ||
очередь полностью завершает всю программу: | очередь полностью завершает всю программу: | ||
Строка 281: | Строка 280: | ||
END [имя_процедуры] | END [имя_процедуры] | ||
- | Операнд может быть опущен, | + | Операнд может быть опущен, |
- | на для выполнения, | + | на для выполнения, |
- | деления данных, | + | |
другим | другим | ||
модулем oперанд содержит | модулем oперанд содержит |