А86 (программное обеспечение)
Разработчик(и) | Эрик Айзексон |
---|---|
Стабильная версия | 4.05
/ 14 января 2000 г. |
Операционная система | MS-DOS |
Платформа | х86 |
Тип | Ассемблер |
Лицензия | Собственный |
Веб-сайт | использовал |
A86 — ассемблер MS -DOS , который генерирует код для Intel x86 семейства микропроцессоров . Написанная Эриком Айзексоном, она впервые стала доступна как условно-бесплатная программа в июне 1986 года. Ассемблер содержится в одном исполняемом файле размером 32 КБ и может напрямую создавать COM-файл или объектный файл для использования со стандартным компоновщиком . Он поставляется отладчиком D86 с . [ 1 ] [ 2 ]
Поддерживая ожидаемый синтаксис x86, A86 в некоторых случаях допускает более простые сокращения и не требует директив , таких как ASSUME
, SEGMENT
, и PROC
, на который полагаются Microsoft Macro Assembler и другие современники. Скорость сборки является основным преимуществом. Айзексон утверждал, что A86 может собирать 100 000 строк исходного кода в секунду на процессоре Pentium II или выше. [ 3 ]
A86 и D86 предназначены для 16-битных платформ x86. Исааксон добавил поддержку 32-битных систем в середине 1990-х годов в виде A386 и D386 . [ 1 ] [ 2 ] Они не распространялись как условно-бесплатные, а предоставлялись пользователям, зарегистрировавшим A86. Семейство продуктов A86 никогда не портировалось на Microsoft Windows , но можно использовать объектные файлы, созданные A386, с компоновщиком Windows. [ 4 ] Ассемблер не поддерживает 64-битный код.
Особенности A86
[ редактировать ]Любая метка, состоящая из одной буквы, за которой следуют одна или несколько цифр, является локальной и может быть переопределена по мере необходимости, при этом каждое определение заменяет предыдущее. В инструкции рекомендуется использовать L1
через L9
для обычного кода и M1
через M9
в макросах . Предполагается, что ответвления к локальным меткам являются обратными, но прямая ветвь может быть указана путем добавления к ссылке на метку префикса с символом «больше» (например, >L2
).
Числа, начинающиеся с нуля, являются шестнадцатеричными , например 00FF
, вместо использования префикса, такого как «0x» или «$». Завершающая буква «K» указывает на кибибайты . [ 5 ] 16K
то же самое, что 16*1024 или 16384.
Несколько регистров могут быть помещены или извлечены в одну и ту же исходную строку. push eax, edx, ebp
генерирует одну инструкцию для каждого из трех операндов .
Существует сокращение для условного выполнения одной инструкции. if z mov ax,bx
выводит две инструкции: условный переход, за которым следует перемещение.
Если ret
указан как метка условного перехода, он автоматически нацеливается на инструкцию возврата в пределах 8-битного диапазона перехода (например, jz ret
).
Макросы используют другой синтаксис, чем современные ассемблеры.
Отпечаток кода
[ редактировать ]Ассемблер был разработан для использования определенных кодировок инструкций, которые функционально эквивалентны, но вместе создают отпечаток пальца, встроенный в исполняемый файл . Об этом говорится в разделе «Юридические термины» руководства. Отпечаток пальца позволяет определить, был ли код собран с помощью A86, а также отличить зарегистрированные и незарегистрированные версии ассемблера. Этот анализ требует доступа к исходному коду . [ 6 ]
Ссылки
[ редактировать ]- ^ Jump up to: а б Исааксон, Эрик (2008). «Ассемблер A86/A386 и отладчик D86/D386» . Архивировано из оригинала 2 июля 2008 года . Проверено 2 июля 2008 г.
- ^ Jump up to: а б Рэндалл Хайд. «Какой ассемблер лучший?» . Архивировано из оригинала 15 мая 2008 года . Проверено 18 мая 2008 г.
- ^ Исааксон, Эрик (2006). «Функции A86/A386 и D86/D386» .
- ^ Исааксон, Эрик (2006). «Программирование A386 и Win32» .
- ^ Хейг, Джеймс (20 июля 2008 г.). «Килобайтовые константы: простая и красивая идея, которая так и не прижилась» . Программирование в XXI веке .
- ^ Эль-Халил, Ракан; Керомити, Ангелос Д. (2004). «Хидан: сокрытие информации в двоичных файлах программы» (PDF) . В Лопесе, Хавьер; Цин, Сихан; Окамото, Эйдзи (ред.). Информационная и коммуникационная безопасность: 6-я Международная конференция ICICS 2004, Малага, Испания, 27–29 октября 2004 г.: Материалы . Конспекты лекций по информатике. Том. 3269. Спрингер . п. 190. ИСБН 3-540-23563-9 .