У меня есть демонстрационный файл блока, который я компилирую с nasm: nasm-f эльф syscall.asm Это генерирует syscall.o файл. Я пытаюсь связать его с ld: ld-o syscall syscall.o ld управляют сбоями с...
Мы используем предварительно скомпилированные заголовки с GCC для нашего проекта и создаем их как это: $ gcc (CFLAGS) precompiledcommonlib.h Теперь я разрабатываю проект на OSX 10.6 и пытаюсь использовать изящную функцию...
Для школьного присвоения я должен записать x86 ассемблерный код, кроме я не могу использовать gcc для компиляции его, так как мой компьютер является x64 машиной, и gcc только ожидает x86-код. Есть ли команда, это будет...
Я запускаю программу с LD _ПРЕДВАРИТЕЛЬНАЯ ЗАГРУЗКА определенной библиотеки. Нравится. LD _PRELOAD=./my.so./my _программа Как запустить эту программу с помощью gdb?
Что означает rep; нет значит?
Это то же самое, что и инструкция паузы?
Это то же самое, что и rep nop (без точки с запятой)?
Чем отличается простая инструкция nop?
На AMD по-другому ведет себя ...
В наборе команд x86 бит с индексом 1 кода операции может быть либо битом направления, который указывает, что такое операнды назначения и источника, либо битом расширения знака. например for ...
Что такое эквивалент pushl% ecx и popl% ecx в системе AMD64. Мои результаты: Ошибка: недопустимый суффикс инструкции для 'push'. Я посмотрел, и кто-то предложил изменить ecx на rcx, но это ...
Я работаю над более глубоким приветствием, используя NASM, следуя этому руководству (раздел 4). Этот учебник по сути учит вас, как обрабатывать ввод командной строки.
Это фрагмент кода в ...
Rust имеет 128-битные целые числа, они обозначены типом данных i128 (и u128 для беззнаковых целых): let a: i128 = 170141183460469231731687303715884105727; Как Rust заставляет эти значения i128 работать на ...
Примечание: аналогичный вопрос также касается обмена стеками обратного проектирования. Есть ли бесплатный дизассемблер AMD64? Вроде бы дизассемблеров x86 много, но они не могут открывать 64-битные файлы ... ...
Я был на веб-сайте Microsoft и заметил два разных установщика, один для x64 и один для IA -64. Ссылка :Установка.NET Framework 4.5, 4.5.1 Насколько я понимаю, IA -64 является подклассом...
int 0x80 в Linux всегда вызывает 32-битный ABI, независимо от того, из какого режима он вызывается: аргументы в ebx, ecx, ... и числа системных вызовов из /usr/include/asm/unistd_32.h. (Или вылетает на 64-битных ядрах ...
И насколько это быстрее/медленнее по сравнению с неоспоримой операцией с атомарной переменной (такой как std::atomic в C++). Кроме того, насколько медленнее оспариваемые атомарные переменные по сравнению с ...
Я хочу, чтобы простой метод C позволял запускать шестнадцатеричный байт-код на 64-битной машине Linux. Вот программа на C, которая у меня есть:char code[] = "\x48\x31\xc0"; #включить int main(int argc, char **...
Я попытался выяснить подробности текущего MACRO в ядре Linux. Окончательный ассемблерный код текущего: :movq %%gs :0xb000,%0 Приведенный выше код может работать! Но когда я печатаю %%gs, его значение равно 0, поэтому...
Предположим, что я хочу сделать короткий переход, используя следующие коды операций: EB CB или JMP rel8 «Короткий переход, RIP = RIP + 8-битный знак смещения расширен до 64-битных» (где CB - значение со знаком байта ...
У меня есть следующая программа, которая (я думаю) выделяет кучу виртуальной памяти (путем изменения системного разрыва с помощью sys_brk), а затем пытается выполнить запись во вновь выделенную память. Тем не менее, я ...
Я пытаюсь изучить переполнение буфера из книги «Искусство эксплуатации - Джон Эриксон». Я приложил код, который был дан. Следующим шагом после компиляции кода была его отладка с использованием gdb. ...
Стандарт C не совсем ясно описывает семейство типов uint_fast * _t. В системе gcc-4.4.4 linux x86_64 типы uint_fast16_t и uint_fast32_t имеют размер 8 байтов. Однако умножение ...
Как мы можем реализовать системный вызов с помощью sysenter/syscall непосредственно в x86 Linux? Кто-нибудь может помочь? Было бы еще лучше, если бы вы также могли показать код для платформы amd64. Я знаю, что в x86...
Я пытаюсь создать библиотеку Shared (*.so) в ASM и не уверен, что делаю это правильно... Мой код таков: .section .data .globl var1
var1: .quad 0x012345 .section .text ....
Следующий код возможен в 32-битной Visual Studio C ++. Есть ли 64-битный эквивалент с использованием встроенных функций, поскольку встроенный ASM не работает? Поддерживается ли в 64-разрядной версии Visual Studio C ++? FORCEINLINE ...
Я хотел бы использовать Radare2, чтобы узнать, как C собирается в сборку, но у меня проблемы с компоновкой Я думаю, что V! режим был бы очень удобен, так как вы можете наблюдать за обновлением регистров как ...
Я пытаюсь оптимизировать некоторые C++ (RK4) с помощью __builtin_prefetch Я не могу понять, как сделать предварительную выборку целой структуры. Я не понимаю, сколько из const void *addr будет прочитано. Я хочу, чтобы ...
Я здесь новичок и только начинаю изучать ассемблер. Поэтому, пожалуйста, исправьте меня, если я ошибаюсь, или если этот пост не имеет никакого смысла, я буду удалять. Я говорю об инструкциях перемещения данных ...
Допустим, я хочу поместить два 32-битных регистра EAX как младшее 32-битное слово и EDX как старшее 32-битное слово в RAX.
Я нашел один способ: shl rdx, 32
or rax, rdx Этот метод работает, только если мы ...