1
ответ

Проблема блока/Соединения с nasm и ld

У меня есть демонстрационный файл блока, который я компилирую с nasm: nasm-f эльф syscall.asm Это генерирует syscall.o файл. Я пытаюсь связать его с ld: ld-o syscall syscall.o ld управляют сбоями с...
вопрос задан: 11 February 2010 18:36
1
ответ

Предварительно скомпилированные заголовки и компиляция универсальных объектов на OSX

Мы используем предварительно скомпилированные заголовки с GCC для нашего проекта и создаем их как это: $ gcc (CFLAGS) precompiledcommonlib.h Теперь я разрабатываю проект на OSX 10.6 и пытаюсь использовать изящную функцию...
вопрос задан: 20 November 2009 11:07
1
ответ

Как я могу использовать gcc для компиляции x86 ассемблерного кода на x64 компьютере

Для школьного присвоения я должен записать x86 ассемблерный код, кроме я не могу использовать gcc для компиляции его, так как мой компьютер является x64 машиной, и gcc только ожидает x86-код. Есть ли команда, это будет...
вопрос задан: 14 November 2008 22:30
0
ответов

Как использовать gdb с LD _ПРЕДВАРИТЕЛЬНАЯ ЗАГРУЗКА

Я запускаю программу с LD _ПРЕДВАРИТЕЛЬНАЯ ЗАГРУЗКА определенной библиотеки. Нравится. LD _PRELOAD=./my.so./my _программа Как запустить эту программу с помощью gdb?
вопрос задан: 16 November 2019 09:23
0
ответов

Что означает «rep; нет; " имеется ввиду в сборке x86? Это то же самое, что и инструкция «пауза»?

Что означает rep; нет значит? Это то же самое, что и инструкция паузы? Это то же самое, что и rep nop (без точки с запятой)? Чем отличается простая инструкция nop? На AMD по-другому ведет себя ...
вопрос задан: 27 October 2019 05:44
0
ответов

Бит направления / знака при кодировании кода операции x86

В наборе команд x86 бит с индексом 1 кода операции может быть либо битом направления, который указывает, что такое операнды назначения и источника, либо битом расширения знака. например for ...
вопрос задан: 3 October 2019 07:31
0
ответов

Push and Pop на AMD64 [дубликат]

Что такое эквивалент pushl% ecx и popl% ecx в системе AMD64. Мои результаты: Ошибка: недопустимый суффикс инструкции для 'push'. Я посмотрел, и кто-то предложил изменить ecx на rcx, но это ...
вопрос задан: 1 September 2019 20:05
0
ответов

pop Инструкция не поддерживается в 64-битном режиме с использованием NASM?

Я работаю над более глубоким приветствием, используя NASM, следуя этому руководству (раздел 4). Этот учебник по сути учит вас, как обрабатывать ввод командной строки. Это фрагмент кода в ...
вопрос задан: 23 August 2019 02:11
0
ответов

Как работает 128-битное целое число Rust `i128` в 64-битной системе?

Rust имеет 128-битные целые числа, они обозначены типом данных i128 (и u128 для беззнаковых целых): let a: i128 = 170141183460469231731687303715884105727; Как Rust заставляет эти значения i128 работать на ...
вопрос задан: 13 August 2019 08:41
0
ответов

Бесплатный 64-битный дизассемблер? [закрыто]

Примечание: аналогичный вопрос также касается обмена стеками обратного проектирования. Есть ли бесплатный дизассемблер AMD64? Вроде бы дизассемблеров x86 много, но они не могут открывать 64-битные файлы ... ...
вопрос задан: 3 August 2019 21:32
0
ответов

В чем разница между x64 и IA -64?

Я был на веб-сайте Microsoft и заметил два разных установщика, один для x64 и один для IA -64. Ссылка :Установка.NET Framework 4.5, 4.5.1 Насколько я понимаю, IA -64 является подклассом...
вопрос задан: 14 July 2019 08:38
0
ответов

базовая сборка не работает на Mac (x86 _64+Lion )?

вот код (exit.s ):.section.data,.раздел.текст,.globl _начало _start :movl $1, %eax movl $32, %ebx системный вызов при выполнении " as exit.s -o exit.o && ld exit.o -o exit -e...
вопрос задан: 9 July 2019 04:28
0
ответов

В gcc есть 128-битное целое число?

Я хочу 128-битное целое число, потому что я хочу хранить результаты умножения двух 64-битных чисел. Есть ли такая вещь в gcc 4.4 и выше?
вопрос задан: 2 July 2019 00:53
0
ответов

Оптимизация инициализации массива

При компиляции следующего фрагмента кода (clang x86-64 -O3) std :: array < int, 5 > test () {std :: array < int, 5 > значения {{0, 1, 2, 3, 4}}; возвращаемые значения; } Это произвело типичный ...
вопрос задан: 20 June 2019 06:25
0
ответов

Что произойдет, если вы используете 32-битный int 0x80 Linux ABI в 64-битном коде?

int 0x80 в Linux всегда вызывает 32-битный ABI, независимо от того, из какого режима он вызывается: аргументы в ebx, ecx, ... и числа системных вызовов из /usr/include/asm/unistd_32.h. (Или вылетает на 64-битных ядрах ...
вопрос задан: 9 June 2019 15:40
0
ответов

Почему эта встроенная сборка не работает с отдельным оператором asm volatile для каждой инструкции?

Для следующего кода: long buf [64]; зарегистрировать long rrax asm ("rax"); зарегистрировать длинный rrbx asm ("rbx"); зарегистрировать long rrsi asm ("rsi"); rrax = 0x34; rrbx = 0x39; __asm__ __volatile__ ("movq $ buf, ...
вопрос задан: 26 May 2019 16:50
0
ответов

Насколько быстро атомарная/связанная переменная по сравнению с блокировкой, с или без спора? [дубликат]

И насколько это быстрее/медленнее по сравнению с неоспоримой операцией с атомарной переменной (такой как std::atomic в C++). Кроме того, насколько медленнее оспариваемые атомарные переменные по сравнению с ...
вопрос задан: 3 May 2019 01:03
0
ответов

Как заставить код C выполнять шестнадцатеричный байт-код?

Я хочу, чтобы простой метод C позволял запускать шестнадцатеричный байт-код на 64-битной машине Linux. Вот программа на C, которая у меня есть:char code[] = "\x48\x31\xc0"; #включить int main(int argc, char **...
вопрос задан: 29 April 2019 17:16
0
ответов

Подробно о MSR _GS _BASE в linux x86 64

Я попытался выяснить подробности текущего MACRO в ядре Linux. Окончательный ассемблерный код текущего: :movq %%gs :0xb000,%0 Приведенный выше код может работать! Но когда я печатаю %%gs, его значение равно 0, поэтому...
вопрос задан: 19 April 2019 02:08
0
ответов

Как закодировать относительно короткий JMP в x86

Предположим, что я хочу сделать короткий переход, используя следующие коды операций: EB CB или JMP rel8 «Короткий переход, RIP = RIP + 8-битный знак смещения расширен до 64-битных» (где CB - значение со знаком байта ...
вопрос задан: 17 April 2019 20:36
0
ответов

Почему эта программа получает SEGV?

У меня есть следующая программа, которая (я думаю) выделяет кучу виртуальной памяти (путем изменения системного разрыва с помощью sys_brk), а затем пытается выполнить запись во вновь выделенную память. Тем не менее, я ...
вопрос задан: 28 March 2019 03:46
0
ответов

Как найти адрес указателя на строку во время вызова функции в c

Я пытаюсь изучить переполнение буфера из книги «Искусство эксплуатации - Джон Эриксон». Я приложил код, который был дан. Следующим шагом после компиляции кода была его отладка с использованием gdb. ...
вопрос задан: 24 March 2019 20:16
0
ответов

Почему uint_least16_t быстрее, чем uint_fast16_t для умножения в x86_64?

Стандарт C не совсем ясно описывает семейство типов uint_fast * _t. В системе gcc-4.4.4 linux x86_64 типы uint_fast16_t и uint_fast32_t имеют размер 8 байтов. Однако умножение ...
вопрос задан: 28 February 2019 11:52
0
ответов

Как вызвать системный вызов через sysenter во встроенной сборке?

Как мы можем реализовать системный вызов с помощью sysenter/syscall непосредственно в x86 Linux? Кто-нибудь может помочь? Было бы еще лучше, если бы вы также могли показать код для платформы amd64. Я знаю, что в x86...
вопрос задан: 25 February 2019 11:45
0
ответов

ELF Shared Object на языке ассемблера x86-64

Я пытаюсь создать библиотеку Shared (*.so) в ASM и не уверен, что делаю это правильно... Мой код таков: .section .data .globl var1 var1: .quad 0x012345 .section .text ....
вопрос задан: 23 January 2019 22:31
0
ответов

Существует ли 8-битный атомарный CAS (cmpxchg), встроенный для X64 в Visual C ++?

Следующий код возможен в 32-битной Visual Studio C ++. Есть ли 64-битный эквивалент с использованием встроенных функций, поскольку встроенный ASM не работает? Поддерживается ли в 64-разрядной версии Visual Studio C ++? FORCEINLINE ...
вопрос задан: 17 January 2019 19:11
0
ответов

Radare2 Disassembler Как организовать визуальные панели (V!)?

Я хотел бы использовать Radare2, чтобы узнать, как C собирается в сборку, но у меня проблемы с компоновкой Я думаю, что V! режим был бы очень удобен, так как вы можете наблюдать за обновлением регистров как ...
вопрос задан: 15 January 2019 15:24
0
ответов

__builtin_prefetch, сколько читается?

Я пытаюсь оптимизировать некоторые C++ (RK4) с помощью __builtin_prefetch Я не могу понять, как сделать предварительную выборку целой структуры. Я не понимаю, сколько из const void *addr будет прочитано. Я хочу, чтобы ...
вопрос задан: 8 November 2018 04:04
0
ответов

Разница между movq и movabsq в x86-64

Я здесь новичок и только начинаю изучать ассемблер. Поэтому, пожалуйста, исправьте меня, если я ошибаюсь, или если этот пост не имеет никакого смысла, я буду удалять. Я говорю об инструкциях перемещения данных ...
вопрос задан: 28 October 2018 01:53
0
ответов

Как переместить два 32-битных регистра в один 64-битный?

Допустим, я хочу поместить два 32-битных регистра EAX как младшее 32-битное слово и EDX как старшее 32-битное слово в RAX. Я нашел один способ: shl rdx, 32 or rax, rdx Этот метод работает, только если мы ...
вопрос задан: 26 September 2018 15:40