ASM86
ASM86 был продан Intel как ассемблер для своего семейства процессоров x86 . Сегодня он больше не продается и не разрабатывается. Однако его синтаксис широко используется ассемблерами x86, такими как Netwide Assembler , Microsoft Macro Assembler или Borlands Turbo Assembler . Синтаксис современных ассемблеров x86 в основном основан на синтаксисе ASM86 или идентичен ему, поэтому он также широко известен как «синтаксис Intel» или «синтаксис Intel Assembler».
Различия в синтаксисе
Есть два преобладающих Синтаксисы для x86 сборок: Intel синтаксис и AT & T синтаксис . Синтаксис Intel доминирует в Windows, тогда как синтаксис AT&T доминирует в экосистеме GNU / Linux .
| AT&T | Intel | |
|---|---|---|
| Порядок параметров | Сначала источник, затем пункт назначенияmov $5, %eax
|
Сначала пункт назначения, затем источникmov eax, 5
|
| Размер параметра |
Мнемоникам дается суффикс, обозначающий длину операнда: q = QWord , l = DWord, w = Word b = Byte.addl $4, %esp
|
add esp, 4
|
| Сигилы | Ближайшие значения имеют префикс «$», регистр «%». | |
| Эффективные адреса |
DISP (БАЗА, ИНДЕКС, МАСШТАБ) . Пример:movl mem_location(%ebx,%ecx,4), %eax
|
Пример: mov eax, [ebx + ecx*4 + mem_location]
|
Индивидуальные доказательства
- ↑ a b c Рам Нараям: Ассемблеры Linux: сравнение GAS и NASM . 17 октября 2007 г. Проверено 13 января 2015 г.
- ^ Создание Unix . Bell Labs. Архивировано из оригинального 20 мая 2011 года , извлекаемых 13 января 2015 года.