Описание тега intel-syntax

Синтаксис Intel (в отличие от синтаксиса AT&T) представляет собой синтаксис сборки x86 с использованием "opcode dst, src", квадратных скобок для операндов памяти и ключевых слов для установки размера операнда: например, add dword [eax], 123. Есть два основные разновидности синтаксиса Intel: стиль NASM и стиль MASM/TASM.
1 ответ

Процедуры из C в сборке

Я должен написать короткую программу на ассемблере, но моя версия не работает. Он должен напечатать ASCII char, затем заменить его на целочисленное значение с помощью функции atoi и распечатать это значение. Для этого важно использовать процедуры из…
15 дек '14 в 14:42
0 ответов

Создать "сырой" код сборки с помощью gcc(синтаксис Intel)

Я хочу создать ассемблерный код с помощью gcc. Когда я использую gcc -masm=intel -S test.c Я получаю код сборки, полный .def а также .cfi этикетки, которые я не могу собрать. Есть ли способ создать ассемблерный код без этой метки? Например: простой …
05 сен '14 в 09:55
2 ответа

Сборка (синтаксис Intel + NASM) Ошибка: попытка определить локальную метку перед любыми нелокальными метками

Я новичок в сборке и пытаюсь работать с программой. Поэтому всякий раз, когда я пытаюсь скомпилировать его, я получаю ошибку для строки, как указано в комментариях к коду. Мне интересно, есть ли у кого-нибудь идеи, почему NASM обнаруживает эти ошибк…
06 дек '16 в 12:11
1 ответ

x86-64 Синтаксис Intel для немедленного операнда rel8?

Первая форма JMP в x86-64: Opcode Instruction Description EB cb JMP rel8 Jump short, RIP = RIP + 8-bit displacement sign Так например JMP rel8=-2 является eb fe, fe является однобайтовым 2-комплиментом со знаком -2. Как мне выразить это rel8 немедле…
03 ноя '13 в 09:56
2 ответа

GOTPCREL(%rip) в синтаксисе GAS Intel

Как я могу написать следующее: movq variable@GOTPCREL(%rip), %r8 в синтаксисе ГАЗ Intel? .intel_syntax noprefix позволяет только это: mov r8, variable@GOTPCRELне понимает ()и полученный код отличается - я получаю ошибку сегментации. Как я могу указа…
18 окт '18 в 17:11
0 ответов

Парсер: инструкция ожидала ошибки при компиляции сборки Intel с NASM

Может кто-нибудь сказать мне, почему эти ошибки происходят? Я довольно новичок в сборке, и у меня есть некоторые проблемы при компиляции файла. Я попытался скомпилировать его в NASM со следующим кодом в Debian: nasm -f elf codeasm.asm -o codeasm.o и…
08 дек '16 в 13:45
1 ответ

Mov и add ничего не делают по какой-то причине

Я получил этот код от своего университетского профессора, так что я уверен, что этот код работает, но для меня результат всегда равен 0. Я попробовал это на Windows и на виртуальной машине с Ubuntu, но все так же. Я компилирую с помощью mingw: gcc t…
26 янв '19 в 02:06
1 ответ

Как работают относительные переменные RIP, такие как "[RIP + _a]" в x86-64 GAS Intel-синтаксис?

Рассмотрим следующую ссылку на переменную в сборке Intel x64, где переменная a объявлен в .data раздел: mov eax, dword ptr [rip + _a] У меня проблемы с пониманием, как работает эта переменная ссылка. поскольку a является символом, соответствующим ад…
18 фев '19 в 11:07
1 ответ

Сборка: загрузчик для поддержки пользовательских клавиатур ОС

У меня есть работающая простая пользовательская ОС (пока что не очень много:D). Прямо сейчас я использую файл сборки (boot.s), который не поддерживает клавиатуру. Файл сборки (boot.s): # set magic number to 0x1BADB002 to identified by bootloader .se…
02 мар '19 в 16:40
1 ответ

Несколько вопросов о синтаксисе ассемблера и интерпретация кода дизассемблера

Я пытаюсь выполнить обратный инжиниринг исполняемого файла в рамках части упражнения / задачи. Я открыл файл в IDA64 дизассемблером. Большая часть кода скрыта, но видны три подпрограммы (включая Пуск). Мой основной опыт работы со сборкой был с MIPS …
19 авг '18 в 06:24
0 ответов

Как правильно заменить printf на sys_write?

Я делаю новый пост о той же программе - извините, но я думаю, что мой вопрос сильно отличается от предыдущего. Моя программа в начале получает 2 параметра - количество повторов и строку. Количество повторений определяет, сколько раз должно быть напе…
20 янв '17 в 01:17
1 ответ

Как изменить флаги сборки x86 для условных переходов?

_Str_compare proc ; (byte * str1, byte * str2, DWORD str1_len, DWORD str2_len) :: Returns -1, 0, or 1 for str1 is lexiographically before, equivalent to, or after str2, respectively. Also modifies the carry and zero flags so that cmp can be used dir…
1 ответ

Сделать библиотеку в ASM доступной к ней в C?

Я знаю, что вы можете напрямую поместить ASM в C, используя ASM, но мне было интересно, возможно ли создать библиотеку в Assembly, скомпилировать ее и затем получить доступ к функциям, объявленным в этой библиотеке из C? Так что я знаю, что должен и…
18 окт '14 в 20:51
1 ответ

Независимая адресация в ассемблере GNU с синтаксисом Intel

На x86-64, как мне загрузить адрес из раздела.data позиционно-независимым способом (PIC и PIE-совместимый) при использовании ассемблера GNU с синтаксисом intel. Например, используя синтаксис AT&T;, вы можете сделать это: leaq mystring(%rip), %rdi Ес…
14 ноя '13 в 17:41
0 ответов

GNU ASM (синтаксис Intel) получает адрес метки без LDA

У меня странная ситуация, и я не уверен, что это ошибка ассемблера GNU или я делаю что-то не так. Я в конечном итоге переключусь на nasm, я думаю, но я использую некоторые макросы, написанные для ассемблера GNU. Например, у меня есть метка с такой п…
31 май '17 в 14:10
0 ответов

Странная ошибка компиляции с компилятором NASM

Я официально поставлен в тупик... Я получаю странную ошибку при компиляции .ASM файл... почему-то строка mov bx, word [w1] заставляет компилятор сказать следующее: error: invalid effective address, Тем не менее, линия перед ним, mov ax, word [w0] ко…
17 авг '16 в 08:50
0 ответов

Этикетки с не встроенной сборкой

Я просто хотел написать код ASM и включить его в код C/C++, но не через встроенный режим, а создать другой модуль ASM. Я обнаружил, что проект CodeBlocks допускает использование источников ASM, поэтому я выполнил следующие шаги, на самом деле с небо…
04 сен '17 в 12:33
2 ответа

Адресация памяти с помощью GNU Assember Intel Syntax

Я прочитал эту страницу, содержащую хороший список различий между синтаксисом Intel и AT&T; для GAS, но он не охватывал случай указания адреса только смещением. Здесь я собрал четыре строки с синтаксисом AT&T;: .text 0000 48C7C008000000 mov $8, %rax…
18 апр '12 в 17:48
1 ответ

Сборочный перевод

Я пытаюсь перевести следующий код C в сборку: void write (int bitpos, unsigned short sample) { int pos = bitpos / 16; int posA = bitpos - pos * 16; unsigned short write1 = sample >> posA; } Я продолжаю получать ошибку в операции смены. Я посмо…
13 ноя '15 в 21:24
2 ответа

Как узнать, имеет ли код сборки определенный синтаксис (emu8086, NASM, TASM, ...)?

Я хочу знать, как, просматривая образец исходного кода, определить, используется ли синтаксис em8086, TASM или NASM? Я новичок в сборке.. Я хотел бы узнать больше о emu8086, пожалуйста.
30 июн '17 в 19:27