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

2 ответа

 инструкция в начале вашего кода.

даю, что он печатает строку, но ничего не печатается. Когда я делаю строку короче, она иногда работает, а когда я снова делаю их длиннее, иногда она работает. Я не знаю, почему это не работает. Может ли кто-нибудь помочь мне? Благодарю. Код ...

5 ответов

Больше регистров ограничено кодировкой команд. x86-64 использует биты в байте префикса REX для расширения определяющей регистр части команд с 3 до 4 бит для регистров src и dest. Если бы было место, x86-64, вероятно, пошел бы в 32 архитектурных регистра, хотя сохранение / восстановление такого количества переключателей контекста начинает складываться. 15 - огромный шаг вперед по сравнению с 7, но в большинстве случаев 31 - намного меньшее улучшение. (не считая указатель стека как общего назначения.) Быстрое нажатие / выталкивание отлично подходит не только для стековых кадров. Однако это не компромисс с количеством рег.

ичок в ассемблере и заметил, что код x86, генерируемый компиляторами, обычно сохраняет указатель фрейма даже в режиме выпуска / оптимизации, когда он может использоватьEBP зарегистрироваться на что-то еще. Я понимаю, почему указатель кадра может ...

8 ответов

Я считаю, что это концептуальный вопрос, поэтому я дам концептуальный ответ. Это обсуждение напоминает мне о дискуссиях, которые я обычно имею о том, означает ли эффективность кода уменьшение количества строк кода в сборке. Кажется, что эта концепция общепризнанна как истинная. Учитывая, что отслеживание того, насколько быстро ALU будет обрабатывать каждый оператор, нежизнеспособно, вторым вариантом будет сосредоточиться на переходах и сравнении в сборке. В этом случае различие между логическими выражениями или целыми числами в представленном вами коде становится довольно представительным. Результат выражения в C ++ вернет значение, которому затем будет дано представление. В сборке, с другой стороны, переходы и сравнения будут основываться на числовых значениях, независимо от того, какой тип выражения вычислялся в вашем операторе C ++ if. По этим вопросам важно помнить, что чисто логические утверждения, подобные этим, приводят к огромным вычислительным затратам, даже если один бит будет способен на то же самое.

значение лучше использовать? Булево значение true или целое число 1? [https://stackoverflow.com/questions/5554725/which-value-is-better-to-use-boolean-true-or-integer-1] Вышеуказанная тема заставила меня сделать несколько экспериментов сbool ...

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

3 ответа

Преобразование float в int (float2int) с использованием только побитовой манипуляции

Мне интересно, может ли кто-нибудь направить меня в правильном направлении с проблемой, над которой я работаю. Я пытаюсь сделать то, что делает следующая функция C, используя только сборку ARM и битовые манипуляции: int float2int(float x) { ...

15 ответов

 Когда я тестировал его много лет назад, он казался многообещающим способом быстрого создания компонентов более высокого уровня.

о рода C ++ (в переводе на программирование) мне нужно научиться создавать собственное ядро ​​ОС? (Я знаю, что я также должен был бы изучить ассемблер.) РЕДАКТИРОВАТЬ *** Как прерывания, драйвер клавиатуры, получение ввода. *** Хорошо, я сделал ...

15 ответов

Новые версии всегда прогрессируют в функциях и функциональности. Я слышал, что векторизатор GCC довольно хорош и лучше в версии 4.3, особенно теперь, когда он используется по умолчанию в -O3.

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

3 ответа

найти / usr / include -name * .h -exec grep _printf {} \; -Распечатать

я вижу код сборки приложения C, вот так: emacs hello.c clang -S -O hello.c -o hello.s cat hello.sИмена функций начинаются с подчеркивания (например,callq _printf). Почему это делается и какие у него преимущества? Пример: Привет #include ...

1 ответ

Бинарная бомба - Фаза 4

Мне очень трудно отследить код сборки для следующей бинарной бомбы (задание из школы, где бомба должна быть обезврежена, эта бомба содержит 6 фаз, каждая из которых имеет 1 правильный ввод для перехода к следующей фазе). Я в настоящее время на ...

2 ответа

https://courses.engr.illinois.edu/ece390/books/artofasm/CH12/CH12-3.html

разница междуenter а также push ebp mov ebp, esp sub esp, immинструкции? Есть ли разница в производительности? Если так, что быстрее и почему компиляторы всегда используют последнее? Аналогично сleave а также mov esp, ebp pop ebpинструкции.

3 ответа

IIRC 0f_2h - Прескотт P4, пусть он будет пухом. Эти задержки равны половине тактов и являются следствием внутренне двойного тактового конвейера. Это оказалось очень плохой идеей для Intel.

ый вопрос, предполагая заранее mov eax, 0что является более эффективным? inc eax inc eaxили же add eax, 2Кроме того, в случае двухincбыстрее, делают компиляторы (скажем, GCC) обычно (т.е. без агрессивных флагов оптимизации) оптимизируютvar += ...