мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| asm:lesson3 [30/09/2010 11:46] – arabusov | asm:lesson3 [07/02/2012 10: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перанд содержит | ||