Описание тега gnu-assembler

Gnu Assembler (GAS). Используйте для макросов GAS, машинно-зависимого синтаксиса, связывания и проблем с форматом файлов. Используйте для общих вопросов ассемблера о том, как работает машина; теги CPU предназначены для этого.
5 ответов

Для чего используются директивы CFI в Gnu Assembler (GAS)?

Кажется, что после каждой строки есть директива.CFI, а также есть множество вариантов, например,.cfi_startproc, .cfi_endproc и т.д.. больше здесь. .file "temp.c" .text .globl main .type main, @function main: .LFB0: .cfi_startproc pushq %rbp .cfi_def…
3 ответа

В чем разница между меткой и функцией в сборке

Следовал инструкции по сборке на YouTube здесь через синтаксис AT&T.; Я только что узнал об объявлении (если это правильный термин здесь) функции с директивой.type, такой как: .type MyFunction, @function Теперь я могу определить свою функцию следующ…
14 июл '15 в 11:35
2 ответа

Как сгенерировать ассемблируемый код для сборки из исходного кода c на Linux?

Тестовая платформа - 32-битный Linux. В принципе, я знаю, что gcc можно использовать для генерации кода сборки в стиле Intel и At&T;, но кажется, что вы не можете напрямую использовать nasm / tasm для компиляции сгенерированного кода сборки в стиле …
23 дек '13 в 06:12
1 ответ

Перевести VS встроенный ассемблер в GCC встроенный ассемблер

Я нахожу этот код C с встроенным кодом ассемблера: ReadFromCMOS (unsigned char array []) { unsigned char tvalue, index; for(index = 0; index < 128; index++) { _asm { cli /* Disable interrupts*/ mov al, index /* Move index address*/ /* since the 0…
1 ответ

Как настроить gcc на использование -no-pie по умолчанию?

Я хочу скомпилировать следующую программу для Linux: .global _start .text _start: mov $1, %rax mov $1, %rdi mov $msg, %rsi mov $13, %rdx syscall mov $60, %rax xor %rdi, %rdi syscall msg: .ascii "Hello World!\n" Тем не менее, это дает мне следующую о…
3 ответа

MOV SRC Dest (или) MOV DST SRC?

MOV, вероятно, первая инструкция, которую все изучают, изучая ASM. Только сейчас я натолкнулся на книгу " Программирование на ассемблере в GNU/Linux для архитектур IA32" Раджата Муны, в которой говорится: http://i.imagehost.org/0897/mov.gif Но я узн…
07 мар '10 в 19:10
0 ответов

В чем разница между директивами.ascii и.string?

Я знаю что .ascii директива не ставит нулевой символ в конце строки. .asciz Директива используется для этой цели. Тем не менее, я не знаю, является ли .string директива помещает нулевой символ в конец строки. Если это так, то какая разница между .as…
26 апр '16 в 02:00
2 ответа

Отличается ли газ.орг от ОРГ по насм?

Я использую GNU как для простой загрузки. Это что-то вроде этого: .text .org 0x7c00 start: movw $0x7c0, %ax movw %ax, %ds movw %ax, %es leaw greeting_msg, %si call prtstr .... end: .fill 510-(end - start), 1, 0 .word 0xAA55 в то время как hexdump вы…
18 июн '12 в 14:30
0 ответов

Как использовать шестнадцатеричные литералы с плавающей точкой в ​​GNU GAS?

C99 ввел шестнадцатеричные литералы с плавающей точкой в ​​качестве нового метода запутывания кода, например: assert(0x1.8p0 == 1.5); Могу ли я достичь того же уровня запутывания в моем коде сборки GNU GAS, или я должен прибегнуть к .byte + ручной т…
20 окт '18 в 12:29
1 ответ

Как использовать относительную адресацию RIP в 64-битной программе сборки?

Как использовать относительную адресацию RIP в программе сборки Linux для архитектуры AMD64? Я ищу простой пример (программа Hello world), который использует режим относительной адресации AMD64 RIP. Например, следующая 64-битная программа сборки буд…
14 июл '10 в 20:36
5 ответов

НАСМ против ГАЗА (Практические отличия)

Я не пытаюсь подсказать войну Intel против AT&T; (во всяком случае, теперь, когда они оба поддерживают синтаксис Intel) или спрашивать, какой из них "лучше" сам по себе, я просто хочу знать практические различия в выборе одного или другого, По сути,…
10 дек '12 в 00:59
3 ответа

Установка GNU Assembler в OSX

Как бы я ни старался, я не могу найти (относительно) простую инструкцию по установке GNU Assembler на Mac. Любые указатели помогут. Благодарю.
11 ноя '09 в 00:59
2 ответа

Внутреннее перемещение не исправлено

Я недавно начал программировать на ассемблере для ядер. Мои первые маленькие демонстрации, только с разделом.text, прошли без проблем. В качестве логического расширения я хотел структурировать ассемблерный код в обычные разделы: .text, .data, .bss .…
10 апр '12 в 18:22
0 ответов

Неправильные соглашения о вызовах с плавающими значениями в MinGW

Я пытаюсь использовать мои функции сборки для работы с кодом C и обнаружил, что MinGw не следует соглашениям о вызовах для значений с плавающей запятой, и это отличается от версий mingw. Тестовый файл с одной функцией test.c #include <xmmintrin.h…
15 май '19 в 21:31
0 ответов

Ошибка: мусор `bswapl eax movl %eax'после регистрации

Я определяю MACRO в исходном коде ГАЗА. Но он не компилируется gcc. Следующее - мой определенный MACRO. #define MSGSCHEDULE0(index) \ movl (index*4)(%rsi) ,%eax \ bswapl eax \ movl %eax ,(index*4-272)(%rdi) Ниже приведены сообщения ассемблера: ошибк…
30 авг '19 в 04:47
0 ответов

.set label, . Против ярлык: GNU AS

В ассемблере GNU текущий адрес представлен . Это позволяет установить константу / символ и использовать ее, как если бы она была меткой, например: .set offset, . .long 0x10 .globl _start _start: # %eax should be 0x10 movl offset, %eax # %ebx should …
04 июл '19 в 03:21
1 ответ

GNU Assembler не может сравнить строку с двумя переменными

Я не могу сравнить строку с двумя переменными в ассемблере GNU mov $[name], %eax # move name into eax mov $[constname], %ebx # move constname into ebx cmp %eax, %ebx # compare two operands je if # if call else # else
31 июл '20 в 23:01
0 ответов

Добавляет ли метка .string в x86 нулевое завершение?

Добавляет ли этот код нулевое значение ascii в байт после байта, хранящего последний символ в строке? label: .string "word"
12 сен '19 в 00:42
2 ответа

"Ошибка: попытка переместить .org назад" с использованием Xtensa XCC, GCC работает нормально

Вот минимальный воспроизводимый пример: /* * Example for Xtensa xt-xcc compiler "error: attempt to move .org backwards". */ struct k_dict { char *m_name_dict; char *p_name_dict; union { float f_value; int i_value; char* s_value; }; }; stru…
23 июл '20 в 19:34
1 ответ

Изменение адреса в шеллкоде во время выполнения

Моя цель - создать шелл-код, который вызывает WinExec и запускает notepad.exe. Код голых костей (хотя на самом деле окружен некоторыми другимиgcc произведенная сборка): push 0x00646170 push 0x65746F6E push 5 lea eax, [esp + 0x4] push eax call 0x76E1…
14 июл '20 в 17:41