Нужно ли мне использовать синтаксис AT&T (GAS) или синтаксис Intel или что-то еще для написания программы на языке ассемблера в Linux с 64-битной архитектурой AMD с использованием NASM? Какой набор инструкций используется для запуска AMD64? Поддерживает ли он инструкции push pop?
Программы на языке ассемблера в linux с использованием amd64
Ответы (1)
NASM использует синтаксис Intel. Доступные инструкции можно найти в руководстве AMD: http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2008/10/24594_APM_v3.pdf
person
Mika Lammi
schedule
14.10.2014
Можете ли вы предложить учебник для начинающих по изучению языка ассемблера и кода в NASM с использованием INTEL SYNTAX
- person user3264821; 14.10.2014
@ user3264821 Это руководство содержит несколько полезных примеров того, как писать программы в Linux и как использовать функции C, поэтому вам не нужно писать все на ассемблере: http://cs.lmu.edu/~ray/notes/nasmexamples/
- person Mika Lammi; 14.10.2014
Я узнал что-то вроде этого: section .text global _start; должен быть объявлен для компоновщика (ld) _start:; указывает точку входа компоновщика mov edx, len; длина сообщения mov ecx, msg; сообщение для записи mov ebx, 1; дескриптор файла ( stdout) mov eax, 4; номер системного вызова (sys_write) int 0x80; вызов ядра mov eax, 1; номер системного вызова (sys_exit) int 0x80; вызов раздела ядра .data msg db 'Hello, world!', 0xa; наш дорогой string len equ $ - msg; длина нашей любимой строки
- person user3264821; 14.10.2014
не могли бы вы предложить несколько книг
- person user3264821; 14.10.2014