Вопросы с тегом «assembly»

Вопросы программирования на ассемблере (asm). ОБЯЗАТЕЛЬНО ТАКЖЕ пометьте процессором и / или набором команд, который вы используете, а также ассемблером. ПРЕДУПРЕЖДЕНИЕ. Вместо сборок .NET используйте тег [.net-assembly]. Для Java ASM используйте тег [java-bytecode-asm].

5
Почему GCC использует умножение на странное число при реализации целочисленного деления?
Я читал о div и mulсборочных операциях, и я решил , чтобы увидеть их в действии, написав простую программу в C: Файл деление.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } И затем генерирование кода на ассемблере …


8
Что такое базовый указатель и указатель стека? На что они указывают?
Используя этот пример из Википедии, в которой DrawSquare () вызывает DrawLine (), (Обратите внимание, что эта диаграмма имеет высокие адреса внизу и низкие адреса вверху.) Может ли кто-нибудь объяснить мне, что ebpи espв этом контексте? Из того, что я вижу, я бы сказал, что указатель стека всегда указывает на вершину …
225 c++  c  assembly  x86 

4
Почему введение бесполезных инструкций MOV ускоряет сжатый цикл в сборке x86_64?
Задний план: При оптимизации кода на Pascal со встроенным языком ассемблера я заметил ненужную MOVинструкцию и удалил ее. К моему удивлению, удаление ненужных инструкций привело к замедлению работы моей программы . Я обнаружил, что добавление произвольных, бесполезных MOVинструкций еще больше повышает производительность . Эффект нестабилен и изменяется в зависимости от …

30
Почему программы не пишутся на ассемблере чаще? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

24
Защита исполняемого файла от обратного инжиниринга?
Я обдумывал, как защитить мой код C / C ++ от дизассемблирования и обратного инжиниринга. Обычно я никогда не потворствую этому поведению в своем коде; однако текущий протокол, над которым я работаю, никогда не должен быть проверен или понятен для безопасности различных людей. Теперь это новая тема для меня, и …
210 c++  c  obfuscation  assembly 

3
Почему GCC генерирует такую ​​радикально отличную сборку для почти одного и того же C-кода?
При написании оптимизированной ftolфункции я обнаружил очень странное поведение в GCC 4.6.1. Позвольте мне сначала показать вам код (для ясности я отметил различия): fast_trunc_one, C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) & 0xff); …

22
Является ли встроенный язык ассемблера медленнее, чем собственный код C ++?
Я попытался сравнить производительность встроенного языка ассемблера и кода C ++, поэтому я написал функцию, которая добавляет два массива размером 2000 для 100000 раз. Вот код: #define TIMES 100000 void calcuC(int *x,int *y,int length) { for(int i = 0; i < TIMES; i++) { for(int j = 0; j < …
183 c++  c  performance  assembly 

7
Показать текущую инструкцию по сборке в GDB
Я делаю некоторую отладку на уровне сборки в GDB. Есть ли способ заставить GDB показывать мне текущую инструкцию по сборке так же, как она показывает текущую исходную строку? Вывод по умолчанию после каждой команды выглядит следующим образом: 0x0001433f 990 Foo::bar(p); Это дает мне адрес текущей инструкции, но я должен постоянно …
179 assembly  gdb 

13
Может ли num ++ быть атомарным для int num?
В общем случае for int num, num++(или ++num) как операция чтения-изменения-записи не является атомарной . Но я часто вижу, как компиляторы, например GCC , генерируют для него следующий код ( попробуйте здесь ): Так как строка 5, которая соответствует num++одной инструкции, можем ли мы сделать вывод, что num++ это атомарный …


13
Как программируются бытовые машины?
Как программируются бытовые машины (не столько компьютеры и мобильные устройства, сколько бытовые приборы, цифровые часы и т. Д.)? Какой код входит в программирование торгового автомата Coca-Cola? Как моя кофеварка принимает запрограммированное время и начинает варить чашку кофе через несколько часов, когда наступает это время? Есть ли в машинах такого типа …

4
Каковы соглашения о вызовах для системных вызовов UNIX и Linux на i386 и x86-64
Следующие ссылки объясняют соглашения о системных вызовах x86-32 для UNIX (BSD-версия) и Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Но каковы соглашения о системных вызовах x86-64 в UNIX и Linux?
147 linux  unix  assembly  x86-64  abi 

7
Как работает этот эксплойт с кучи milw0rm?
Я обычно не испытываю затруднений при чтении кода JavaScript, но для этого я не могу понять логику. Код взят из эксплойта, который был опубликован 4 дня назад. Вы можете найти его в milw0rm . Вот код: <html> <div id="replace">x</div> <script> // windows/exec - 148 bytes // http://www.metasploit.com // Encoder: x86/shikata_ga_nai …


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.