Результаты поиска по запросу "assembly"

4 ответа

Каковы соглашения о вызовах для системных вызовов UNIX и Linux на i386 и x86-64

Следующие ссылки объясняют соглашения о системных вызовах x86-32 для UNIX (BSD-версия) и Linux: http: //www.int80h.org/bsdasm/#system-call [http://www.int80h.org/bsdasm/#system-calls] http: ...

1 ответ

x86-64 Сегментация ошибок сохранения стека указатель

Я сейчас следую вместе с этот учебник [http://web.cecs.pdx.edu/~kstew2/cs533/project/assign1/], но я не учусь в этой школе. GDB дает мне ошибку сегментации вthread_start на линии movq %rsp, (%rdi) # save sp in old thread's tcb Вот ...

3 ответа

Используете LEA для значений, которые не являются адресами / указателями?

Я пытался понять, как работает инструкция вычисления адреса, особенно сleaq команда. Тогда я запутываюсь, когда вижу примеры использованияleaq делать арифметические вычисления. Например, следующий код C, long m12(long x) { return x*12; } В ...

ТОП публикаций

1 ответ

Почему printf перезаписывает регистр ECX?

Я знаюprintf возвращает количество символов, напечатанных в EAX. Почемуprintf меняющийся регистр ECXт @ до 0? Мой фрагмент кода: push eax push intFormat call printf add esp,8 Я запускаю свой код в 64-битном дистрибутиве Linux.

1 ответ

ASM x64 scanf printf double, GAS

Я не могу понять, почему этот код не работает для меня. Мне нужно использовать функцию scanf для двойного и затем printf для того же двойного. При использовании этого кода результаты не являются хорошими. Я вижу довольно случайные ...

2 ответа

Где документирован ABI System V системы x86-64?

X86-64 System V ABI (используется во всем, кроме Windows), раньше жил наhttp: //x86-64.org/documentation/abi.pd [http://x86-64.org/documentation/abi.pdf], но этот сайт теперь не работает в Интернете. Есть новый авторитетный дом для документа?

2 ответа

C без знака долго, долго и imulq

Как кто-то новичок в сборке, я использую gcc для реверс-инжиниринга. Но теперь я столкнулся с какой-то забавной проблемой: я пытаюсь умножить два 64-битных целых числа на x86-64. C-код выглядит следующим образом: unsigned long long val(unsigned ...

3 ответа

Как убрать «шум» из выходных данных сборки GCC / clang?

Я хочу проверить вывод сборки при примененииboost::variant в моем коде, чтобы увидеть, какие промежуточные вызовы оптимизированы. Когда я компилирую следующий пример (с GCC 5.3, используяg++ -O3 -std=c++14 -S) кажется, что компилятор ...

2 ответа

Используя регистр указателя базы в C ++, встроенный asm

Я хочу использовать регистр указателя базы %rbp) в рамках встроенного ассм. Игрушечный пример этого выглядит так: void Foo(int &x) { asm volatile ("pushq %%rbp;" // 'prologue' "movq %%rsp, %%rbp;" // 'prologue' "subq $12, %%rsp;" // make room ...

4 ответа

Как представить шестнадцатеричное значение, например FFFFFFBB, в программировании на x86-сборке?

Я изучаю программирование встроенной сборки x86. Я хотел написатьmov ecx, FFFFFFBB, однако компилятор не распознает его. Как должны быть записаны шестнадцатеричные числа в коде встроенного ассемблера?