Есть ли разница в скорости выполнения при использовании следующего кода: cmp al, 0 je done и следующее: или al, al jz done Я знаю, что инструкции JE и JZ одинаковы, а также что используется OR ...
Есть ли способ заставить GNU as только расширять .macro directives в .S файле, создавая другой .S файл без них? Аналогично тому, что делает gcc -E с кодом на C. Обратите внимание, что речь идет об ассемблерных .macro ...
В отличие от (большинство) арка RISC, инструкции x86 имеют переменную длину. Начало / конец инструкции не обязательно выравнивать. Если компилятор этого не сделает, одна инструкция могла бы просто лежать на странице ...
Я пишу код, ориентированный на ARM Cortex-A на устройствах Android (используя ассемблер и компилятор GNU), и пытаюсь взаимодействовать между Ассемблером и C. В частности, меня интересует вызов функций ...
Я изучаю подпрограммы в сборке Arm, и меня смущает пример. Для "bne Body" не нужно ли перед ним cmp x, y? С чем сравнивать? @ Сумма первого "MAX" Фибоначчи с ...
Я прочитал руководство Intel и обнаружил, что для инструкций есть префикс блокировки, который может предотвратить одновременную запись процессоров в одну и ту же ячейку памяти. Я очень взволнован этим. Наверное, это...
Я пытаюсь использовать инструкцию WBINV в Linux для очистки кэша L1 процессора. Следующая программа компилируется, но при попытке ее запуска выдает ошибку сегментации. int main () {asm ("wbinvd"); ...
У меня необычная ситуация: у меня есть файл ассемблера с расширением .c n и я не могу изменить скрипты сборки, где этот файл определен как тип "C". Однако я могу собрать его с помощью того же GCC ...
Я написал приложение для Android. Он использует основной модуль C-кода и связанный модуль C-кода. Теперь я хочу заменить связанный модуль модулем ассемблера ARM. У кого-нибудь есть простой пример?
Я не особо разбираюсь в сборке и РУКА,но я смог написать в нем несколько подпрограмм и хотел бы увидеть, как они работают на устройстве Android с ARM (Nexus S). Какова процедура ...
По данным АРМ СК. В состоянии ARM значение ПК - это адрес текущей инструкции плюс 8 байтов. В состоянии большого пальца: для команд B, BL, CBNZ и CBZ значение ...
Я пишу код, ничего не делая в C ++ void main (void) {} и Assembly. .global _start .text _start: mov $ 60,% rax xor% rdi, системный вызов% rdi Я компилирую код C, компилирую и делаю ссылку ...
Я использовал homebrew для установки GCC 4.7.0, и мой проект не работает. во время сборки -. Я могу успешно взять код из.c ->.s, но.s ->.o не работает. Чтобы просмотреть формулу brew, используемую для установки GCC,...
Хорошо, поэтому я имею дело со следующим фрагментом кода: Push% EBP
MOV% ESP,% EBP Push% EBX
MOV 0x8 (% EBP),% EAX MOVZWL% AX,% EDX, так что это ведет себя как ожидалось, при работе с позитивными ...
Я пытаюсь скомпилировать программу, использующую инструкцию pclmulqdq, присутствующую в новых процессорах Intel. Я установил GCC 4.6 с помощью macports, но когда я компилирую свою программу (использующую встроенный ...
Язык ассемблера x86 пришлось изменить, поскольку архитектура процессора x86 изменилась с 8-разрядной на 16-разрядную, 32-разрядную, а теперь и на 64-разрядную. Я знаю, что в 32-битном ассемблере регистрируют имена (EAX, EBX и т.д.), ...
При сборке этого кода с помощью nasm :BITS 64 мов акс, 0x1 mov rax, 0x1 Я получаю этот вывод :b8 01 00 00 00 b8 01 00 00 00, который является кодом операции для mov eax, 0x1, повторяющимся дважды. Значит ли это, что...
Меня раздражает каждый раз, когда я использую -XX: + PrintAssembly с Hotspot и мне приходится читать ужасный синтаксис AT&T. Есть ли способ указать ему использовать синтаксис Intel?
Я играю с некоторым кодом asm, и что-то меня беспокоит. Я компилирую это: #include int main (int argc, char ** argv) {printf ("Hello World \ n"); возврат 0;
} с помощью gcc ...
В настоящее время я изучаю сборку x86 для развлечения, мне нравится программирование микроконтроллеров, поэтому я знаком с сборкой. В настоящее время я все время искал ответ на этот вопрос ...
Какой процесс можно использовать для преобразования кода сборки в эквивалентный код C? Какие инструменты можно использовать для повышения точности результатов?
Что делает следующая линия при сборке руки: 000031e6 2916 cmp r1, # 22
000031e8 bf1a itte ne Я получаю первую строку (сравнивая r1 с 22), но как насчет второй строки (я ...