| ||
Перевод:
AsmOs
group, © 2001
Оригинал: asmdev.narod.ru
Данное руководство описывает NASM, расширенный ассемблер, предназначенный для написания программ процессоров серии Intel x86, способный в то же время работать на разных платформах.
|
|
1.1. Что такое NASM? |
| 1.1.1.
Зачем еще один ассемблер? 1.1.2. Условия лицензирования |
| 1.2.
Контакты 1.3. Инсталляция |
| 1.3.1.
Инсталляция NASM под MS-DOS или Windows 1.3.2. Инсталляция NASM под Unix |
|
|
2.1. Синтаксис командной строки NASM |
| 2.2. Пользователям MASM: Отличия |
| 3.1.
Обзор ассемблерной строки NASM 3.2. Псевдо-инструкции |
| 3.3.
Эффективные адреса 3.4. Константы |
| 3.4.1.
Числовые константы 3.4.2. Символьные константы 3.4.3. Строковые константы 3.4.4. Константы с плавающей точкой |
| 3.5. Выражения |
| 3.6.
SEG и WRT 3.7. Критические выражения 3.8. Локальные метки |
| 4.1. Однострочные макросы |
| 4.1.1.
Обычный способ: %define 4.1.2. Однострочные макросы раннего связывания: %xdefine 4.1.3. Отмена определения макроса: %undef 4.1.4. Переменные препроцессора: %assign |
| 4.2. Многострочные макросы: %macro |
| 4.3. Условное ассемблирование |
| 4.4.
Циклы препроцессора: %rep 4.5. Подключение других файлов 4.6. Контекстный стек |
| 4.7. Стандартные макросы |
| 5.1.
BITS: Указание разрядности выполняемого кода 5.2. SECTION или SEGMENT: Изменение и описание секций |
| 5.2.1. Макрос __SECT__ |
| 5.3.
ABSOLUTE: Определение абсолютных меток 5.4. EXTERN: Импорт символов из других модулей 5.5. GLOBAL: Экспорт символов в другие модули 5.6. COMMON: Определение общих данных |
| 6.1. bin: Плоский бинарный формат |
| 6.1.1.
ORG: Начало бинарного файла 6.1.2. bin-расширение директивы SECTION |
| 6.2. obj: Объектные файлы OMF Microsoft |
| 6.3. win32: Объектные файлы Win32 Майкрософт |
| 6.3.1. win32-расширения директивы SECTION |
| 6.4.
coff: Общий формат объектных файлов 6.5. elf: Объектные файлы ELF Линукс |
| 6.5.1.
elf-расширения директивы SECTION 6.5.2. Позиционно-независимый код: Специальные символы формата elf и WRT 6.5.3. elf-расширения директивы GLOBAL 6.5.4. elf-расширение директивы COMMON |
| 6.6.
aout: Объектные файлы a.out Линукс 6.7. aoutb: Объектные файлы a.out NetBSD/FreeBSD/OpenBSD 6.8. as86: Объектные файлы as86 Линукс 6.9. rdf: Перемещаемые динамические объектные файлы |
| 6.9.1. Требование библиотеки: Директива LIBRARY |
| 6.10. dbg: Формат для отладки |
| 7.1. Получение .EXE файлов |
| 7.1.1.
Использование формата obj для получения .EXE файлов 7.1.2. Использование формата bin для получения .EXE файлов |
| 7.2. Получение .COM файлов |
| 7.2.1.
Использование формата bin для получения .COM файлов 7.2.2. Использование формата obj для получения .COM файлов |
| 7.3.
Получение .SYS файлов 7.4. Взаимодействие с 16-битными C-программами |
| 7.4.1.
Внешние символьные имена 7.4.2. Модели памяти 7.4.3. Определения и вызовы функций 7.4.4. Доступ к элементам данных 7.4.5. c16.mac: Макросы для 16-битного C-интерфейса |
| 7.5. Взаимодействие с программами Borland Pascal |
| 7.5.1.
Соглашение о вызовах в Pascal 7.5.2. Ограничение имен сегментов в Borland Pascal 7.5.3. Использование c16.mac с Pascal-программами |
| 8.1. Интерфейс с 32-ух битными программами на Си |
| 8.1.1.
Внешние
символьные имена 8.1.2. Определение и вызов функций 8.1.3. Доступ к переменным 8.1.4. c32.mac: Вспомогательные макросы для 32-ух битного интерфейса с Си |
| 8.2. Написание разделяемых библиотек для NetBSD/FreeBSD/OpenBSD и Linux/ELF |
| 9.1. Переходы между сегментами
смешанной разрядности 9.2. Адресация между сегментами различной разрядности 9.3. Другие инструкции смешанного размера |
| 10.1. Общие проблемы |
| 10.1.1. Генерация NASM
неэффективного кода 10.1.2. Мои "JUMPы" вне диапазона 10.1.3. ORG не работает 10.1.4. TIMES не работает |
| 10.2. Дефекты (Ошибки) |
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |