0
ответов

Проверьте, равен ли регистр нулю с CMP reg, 0 против OR reg, reg?

Есть ли разница в скорости выполнения при использовании следующего кода: cmp al, 0 je done и следующее: или al, al jz done Я знаю, что инструкции JE и JZ одинаковы, а также что используется OR ...
вопрос задан: 17 December 2016 04:50
0
ответов

GNU as .macro directive expansion

Есть ли способ заставить GNU as только расширять .macro directives в .S файле, создавая другой .S файл без них? Аналогично тому, что делает gcc -E с кодом на C. Обратите внимание, что речь идет об ассемблерных .macro ...
вопрос задан: 7 December 2016 16:44
0
ответов

Расчет объекта кода - SIC / XE

0000 СУММА СТАРТ 0 0000 ПЕРВЫЙ LDX # 0 050000 0003 LOOP LDA # 100 010064 0006 + LDB # TABLE2 ...
вопрос задан: 21 November 2016 04:31
0
ответов

MIPS (любопытство) более быстрый способ очистки регистра?

Какой самый быстрый способ очистки регистра (= 0) в сборке MIPS? Некоторые примеры: xor $ t0, $ t0, $ t0 и $ t0, $ t0, $ 0 переместить $ t0, $ 0 li $ t0, 0 добавить $ t0, $ 0, $ 0 Какой самый ...
вопрос задан: 24 October 2016 13:27
0
ответов

Как аппаратное обеспечение и компилятор обрабатывают инструкцию x86, переходящую в неисполняемую страницу?

В отличие от (большинство) арка RISC, инструкции x86 имеют переменную длину. Начало / конец инструкции не обязательно выравнивать. Если компилятор этого не сделает, одна инструкция могла бы просто лежать на странице ...
вопрос задан: 20 October 2016 16:18
0
ответов

Как вызывать функции C из ARM Assembly?

Я пишу код, ориентированный на ARM Cortex-A на устройствах Android (используя ассемблер и компилятор GNU), и пытаюсь взаимодействовать между Ассемблером и C. В частности, меня интересует вызов функций ...
вопрос задан: 14 October 2016 12:01
0
ответов

Как может ветвь bne работать без предыдущего сравнения cmp в ARM sssembly?

Я изучаю подпрограммы в сборке Arm, и меня смущает пример. Для "bne Body" не нужно ли перед ним cmp x, y? С чем сравнивать? @ Сумма первого "MAX" Фибоначчи с ...
вопрос задан: 13 October 2016 13:37
0
ответов

Префикс LOCK инструкции Intel. В чем смысл?

Я прочитал руководство Intel и обнаружил, что для инструкций есть префикс блокировки, который может предотвратить одновременную запись процессоров в одну и ту же ячейку памяти. Я очень взволнован этим. Наверное, это...
вопрос задан: 26 September 2016 22:53
0
ответов

Как: pow (real, real) в x86

Ищу реализацию pow (real, real) в x86 Assembly. Также хотелось бы понять, как работает алгоритм.
вопрос задан: 18 September 2016 04:56
0
ответов

Использование инструкции WBINVD

Я пытаюсь использовать инструкцию WBINV в Linux для очистки кэша L1 процессора. Следующая программа компилируется, но при попытке ее запуска выдает ошибку сегментации. int main () {asm ("wbinvd"); ...
вопрос задан: 24 August 2016 14:10
0
ответов

AMD64 - инструкция по сборке nopw?

В этом выводе компилятора , Я пытаюсь понять, как работает машинное кодирование инструкции nopw: 00000000004004d0
: 4004d0: eb fe jmp 4004d0 <...
вопрос задан: 23 July 2016 02:24
0
ответов

Как сообщить GCC, что входной файл является ассемблерным, даже если он на самом деле .c?

У меня необычная ситуация: у меня есть файл ассемблера с расширением .c n и я не могу изменить скрипты сборки, где этот файл определен как тип "C". Однако я могу собрать его с помощью того же GCC ...
вопрос задан: 6 July 2016 19:09
0
ответов

Почему GCC вычитает неправильное значение из указателя стека при выделении большого массива без последующих вызовов функций?

Действительно странная причуда gcc. Проверьте это: main () {int a [100]; а [0] = 1; } производит следующую сборку: 0: 55 push% rbp 1: 48 89 e5 mov% rsp,% rbp 4: ...
вопрос задан: 26 June 2016 22:11
0
ответов

Связывание C-кода Android и ассемблера ARM

Я написал приложение для Android. Он использует основной модуль C-кода и связанный модуль C-кода. Теперь я хочу заменить связанный модуль модулем ассемблера ARM. У кого-нибудь есть простой пример?
вопрос задан: 24 June 2016 17:59
0
ответов

Как использовать код сборки ARM в проекте Android?

Я не особо разбираюсь в сборке и РУКА,но я смог написать в нем несколько подпрограмм и хотел бы увидеть, как они работают на устройстве Android с ARM (Nexus S). Какова процедура ...
вопрос задан: 24 June 2016 17:59
0
ответов

Почему регистр ARM PC указывает на инструкцию после следующей, которая должна быть выполнена?

По данным АРМ СК. В состоянии ARM значение ПК - это адрес текущей инструкции плюс 8 байтов. В состоянии большого пальца: для команд B, BL, CBNZ и CBZ значение ...
вопрос задан: 23 June 2016 22:26
0
ответов

Почему C / C ++ медленнее, чем ассемблер и другие языки низкого уровня?

Я пишу код, ничего не делая в C ++ void main (void) {} ​​и Assembly. .global _start .text _start: mov $ 60,% rax xor% rdi, системный вызов% rdi Я компилирую код C, компилирую и делаю ссылку ...
вопрос задан: 20 June 2016 22:09
0
ответов

Ошибка «нет такой инструкции» при сборке проекта в Mac OS X

Я использовал homebrew для установки GCC 4.7.0, и мой проект не работает. во время сборки -. Я могу успешно взять код из.c ->.s, но.s ->.o не работает. Чтобы просмотреть формулу brew, используемую для установки GCC,...
вопрос задан: 16 June 2016 10:21
0
ответов

Странные результаты с MOVZWL,% AX и отрицательными значениями

Хорошо, поэтому я имею дело со следующим фрагментом кода: Push% EBP MOV% ESP,% EBP Push% EBX MOV 0x8 (% EBP),% EAX MOVZWL% AX,% EDX, так что это ведет себя как ожидалось, при работе с позитивными ...
вопрос задан: 16 June 2016 08:16
0
ответов

Как использовать AVX/pclmulqdq в Mac OS X

Я пытаюсь скомпилировать программу, использующую инструкцию pclmulqdq, присутствующую в новых процессорах Intel. Я установил GCC 4.6 с помощью macports, но когда я компилирую свою программу (использующую встроенный ...
вопрос задан: 16 June 2016 07:10
0
ответов

Что означает R в RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP?[дублировать]

Язык ассемблера x86 пришлось изменить, поскольку архитектура процессора x86 изменилась с 8-разрядной на 16-разрядную, 32-разрядную, а теперь и на 64-разрядную. Я знаю, что в 32-битном ассемблере регистрируют имена (EAX, EBX и т.д.), ...
вопрос задан: 12 June 2016 12:13
0
ответов

Можно ли всегда использовать «mov eax, 0x1» вместо «mov rax, 0x1»?

При сборке этого кода с помощью nasm :BITS 64 мов акс, 0x1 mov rax, 0x1 Я получаю этот вывод :b8 01 00 00 00 b8 01 00 00 00, который является кодом операции для mov eax, 0x1, повторяющимся дважды. Значит ли это, что...
вопрос задан: 20 May 2016 06:29
0
ответов

Hotspot7 hsdis PrintAssembly Intel Syntax

Меня раздражает каждый раз, когда я использую -XX: + PrintAssembly с Hotspot и мне приходится читать ужасный синтаксис AT&T. Есть ли способ указать ему использовать синтаксис Intel?
вопрос задан: 13 April 2016 13:55
0
ответов

How can I tell whether a binary is compiled with frame pointers or not on Linux?

I have a binary/library in Linux. How can I determine whet it was compiled with frame pointers?
вопрос задан: 5 April 2016 13:31
0
ответов

Разница между LEA и MOVE.L?

Существуют ли различия между LEA $1000,A0 и MOVE #$1000,A0 для помещения адреса в реестр адресов?
вопрос задан: 19 February 2016 08:21
0
ответов

Как мне скомпилировать asm, сгенерированный GCC?

Я играю с некоторым кодом asm, и что-то меня беспокоит. Я компилирую это: #include int main (int argc, char ** argv) {printf ("Hello World \ n"); возврат 0; } с помощью gcc ...
вопрос задан: 10 February 2016 16:54
0
ответов

Сборка: Использование регистра сегмента данных (DS)

В настоящее время я изучаю сборку x86 для развлечения, мне нравится программирование микроконтроллеров, поэтому я знаком с сборкой. В настоящее время я все время искал ответ на этот вопрос ...
вопрос задан: 19 January 2016 23:13
0
ответов

Преобразование кода сборки в код C [закрыто]

Какой процесс можно использовать для преобразования кода сборки в эквивалентный код C? Какие инструменты можно использовать для повышения точности результатов?
вопрос задан: 29 December 2015 21:55
0
ответов

Как objdump может генерировать синтаксис Intel

Как я могу заставить objdump генерировать сборку в синтаксисе Intel, а не в синтаксисе AT&T по умолчанию?
вопрос задан: 29 December 2015 13:53
0
ответов

itte in arm assembly

Что делает следующая линия при сборке руки: 000031e6 ​​2916 cmp r1, # 22 000031e8 bf1a itte ne Я получаю первую строку (сравнивая r1 с 22), но как насчет второй строки (я ...
вопрос задан: 25 December 2015 19:15