0
ответов

Почему GCC сгенерировал mov %eax,%eax и что это значит?

GCC 4.4.3 сгенерировал следующую сборку x86 _64. Меня смущает то, что mov %eax,%eax. Переместить реестр к себе? Почему? 23b6c :31 c9 xor %ecx,%ecx ;...
вопрос задан: 10 August 2012 23:26
0
ответов

скомпилированные адреса памяти программы c

Я пытаюсь понять следующее :Учитывая небольшую программу Hello World на C #include int main (){инт я; для (i=0; я < 10; i++ ){ printf ("Привет, мир!\n" );...
вопрос задан: 9 August 2012 12:03
0
ответов

Запуск бинарного файла с помощью qemu

Я изучаю язык ассемблера на одном курсе. У меня небольшие проблемы с началом работы. Я написал простой код c :int main (){инт а = 10; интервал б = 20; интервал с = а+б; }...
вопрос задан: 9 August 2012 11:34
0
ответов

Добавление чисел с плавающей запятой/двойных чисел в сборку

Я пытаюсь поэкспериментировать со встроенной сборкой и пытаюсь добавить десятичные числа (нет, НЕ целые числа )во встроенной сборке. Проблема в том, что когда я вызываю следующую функцию :inline double ADD (double...
вопрос задан: 8 August 2012 05:04
0
ответов

Отменяет ли использование указателя свойство «register» ассоциированной переменной?

В C отменяет ли использование указателя свойство «register» связанной переменной? #include #include внутренний основной (){ регистрация int clk=0; //может зарегистрироваться...
вопрос задан: 7 August 2012 05:56
0
ответов

«xor eax, ebp» используется в выводе компилятора C ++

Я просто попытался скомпилировать пару фрагментов кода C ++ на VS2010 и проанализировал исполняемые файлы на IDA Pro. Я заметил кое-что, что у большинства из них в начале есть что-то вроде следующего (вскоре ...
вопрос задан: 6 August 2012 07:43
0
ответов

Преобразование очень простых инструкций ARM в двоичные/шестнадцатеричные

Я пытался использовать эту страницу, а также различные другие руководства, чтобы выяснить, как выразить очень простые инструкции ARM в двоичном и шестнадцатеричном виде. Кажется, что это должен быть простой процесс, чтобы...
вопрос задан: 2 August 2012 21:25
0
ответов

Сборка Linux и printf

Я пытаюсь написать простую программу сборки с функцией printf. Я скомпилирую его nasm -f elf 64 и линкую с помощью gcc. После запуска я вижу ошибку сегментации. Что не так? [Биты 32] внешний printf глобальная главная...
вопрос задан: 2 August 2012 20:33
0
ответов

какая разница между iretи iretd,iretq?

Я хочу смоделировать состояние iret на сервере Linux x86 _64. Я нашел три инструкции iret :размер операнда 16 iretd :размер операнда 32 iretq :размер операнда 64 Не могу отличить от...
вопрос задан: 2 August 2012 01:48
0
ответов

Какой оператор быстрее (> или >= ), (< или <= )? [закрыто]

Является ли < дешевле (быстрее ), чем <=, и аналогично > дешевле (быстрее ), чем >=? Отказ от ответственности :Я знаю, что могу измерить, но это будет только на моей машине, и я не уверен, что ответ сможет...
вопрос задан: 1 August 2012 16:48
0
ответов

В x86, если [mem] не выровнено по 32 -битам, может ли «lock inc [mem]» нормально работать?

В x86, если mem выровнена по 32 -битам, операция mov гарантированно будет атомарной. если [mem] не выровнено по 32 -битам, может ли lock inc [mem] работать нормально? работать нормально :обеспечивать атомарность и не получать частичный...
вопрос задан: 26 July 2012 05:14
0
ответов

Получить время с шагом 1 мс

Прерывание x86 0x1A, кажется, дает время часов компьютера, но оно может дать точное время только в пределах 55 мс (AH=0 ). Есть ли способ получить меньшие приращения (и, может быть, немного более «нормальные» )...
вопрос задан: 19 July 2012 23:47
0
ответов

Быстрое слияние отсортированных подмножеств чисел с плавающей запятой 4K -в L1/L2

Как быстро объединить отсортированные подмножества массива до 4096 32 -битных чисел с плавающей запятой на современном процессоре (SSE2+ )x86? Пожалуйста, примите следующее :Размер всего набора в...
вопрос задан: 18 July 2012 22:35
0
ответов

Что-то не так с моей спин-блокировкой?

Вот моя реализация спин-блокировки, но, похоже, она не может защитить критический код. Что-то не так с моей реализацией? статический __встроенный __int xchg _asm (int *lock, int val ){...
вопрос задан: 17 July 2012 02:26
0
ответов

C, ассемблер, производительность NEON

Я работаю над приложением для iPhone, которое выполняет обработку изображений в реальном времени. Одним из первых шагов в его конвейере является преобразование изображения BGRA в оттенки серого. Я попробовал несколько разных методов и...
вопрос задан: 16 July 2012 20:45
0
ответов

Библиотека дизассемблирования, используемая objdump

Я ищу библиотеку, которая выполняет дизассемблирование двоичного кода. Я обнаружил, что этот libdisasm выполняет ту же задачу, что и я. Однако я нашел несколько ссылок, указывающих на то, что либдисам...
вопрос задан: 16 July 2012 11:45
0
ответов

Перемещение в регистры с плавающей запятой -вместо стека

У меня есть функция, которая должна быть максимально быстрой, и она использует только целочисленные операции. Он работает на архитектуре AMD64, и мне нужно сделать несколько push/pop, чтобы было достаточно регистров для...
вопрос задан: 14 July 2012 16:01
0
ответов

C (или asm ):как выполнить c код, хранящийся в памяти (скопированный с меток)

Я пытаюсь «встроить» свою виртуальную машину, копируя сегменты кода из кода C между метками в память, выделенную malloc. Итак, у меня есть Ops, определенные с начальными и конечными метками, и я хочу скопировать определенную инструкцию...
вопрос задан: 12 July 2012 08:36
0
ответов

Идентификация значений со знаком и без знака в ассемблере

Я всегда нахожу это запутанным, когда смотрю на дизассемблирование кода, написанного на C/C++. Есть регистр с некоторым значением. Я хочу знать, представляет ли он число со знаком или число без знака. ...
вопрос задан: 10 July 2012 22:12
0
ответов

Чистая сборка -без связанных функций C

Я хочу попробовать написать операционную систему на ассемблере. ПОЖАЛУЙСТА, не говорите просто: «Идиот, тебе нужно стать намного лучше в %s, %s, %s, %s и т. д., чтобы даже думать об этом». Я знаю, что обычно этому не учат -...
вопрос задан: 10 July 2012 20:04
0
ответов

Как преобразовать целое число без знака в плавающую -точку в ассемблере x86 (32 -бит )?

Мне нужно преобразовать 32-битные -и 64-битные -целые числа без знака в значения с плавающей запятой -в регистрах xmm. Существуют инструкции x86 для преобразования целых чисел со знаком в числа с плавающей запятой одинарной и двойной точности -...
вопрос задан: 10 July 2012 04:32
0
ответов

c++ использует голую функцию

Я пытаюсь изучить ASM и хочу попробовать несколько вещей в сочетании с C++. Часть ASM выполняется в голой функции. Но всякий раз, когда я вызываю функцию (пустой ), приложение вылетает в следующем...
вопрос задан: 8 July 2012 18:08
0
ответов

Что означает сообщение об ошибке GCC «Ошибка :не поддерживается для `mov»?

Я просто пытаюсь скомпилировать простой пример кода, который я набрал из книги, и GCC выдает мне вышеуказанную ошибку. Вот мой код :$ cat -n test.cpp 1 #определить ЧТЕНИЕ _КОМАНДА 3 2 3 #определить...
вопрос задан: 8 July 2012 01:33
0
ответов

Использование встроенного ассемблера GCC с инструкциями, принимающими немедленные значения

Проблема. Я работаю над пользовательской ОС для процессора ARM Cortex -M3. Для взаимодействия с моим ядром пользовательские потоки должны генерировать команду SuperVisor Call (SVC )(, ранее известную как SWI, для...
вопрос задан: 7 July 2012 18:17
0
ответов

Как установить программную точку останова на процессоре ARM?

Как сделать эквивалент программного прерывания x86 :asm ("int $3" )на процессоре ARM (, в частности Cortex A8 ), чтобы сгенерировать событие, которое прервет выполнение под gdb?
вопрос задан: 5 July 2012 13:30
0
ответов

Зачем все еще нужен язык ассемблера, если у нас есть языки высокого уровня, предлагающие сложные инструменты? [закрыто]

В университете я прошел обязательный курс компьютерной архитектуры и программирования на языке ассемблера. Я обнаружил, что язык ассемблера отнимает много времени и его трудно понять. Я до сих пор...
вопрос задан: 4 July 2012 05:43
0
ответов

в чем смысл выравнивания начала раздела?

В чем смысл выравнивания начала раздела? Например, :align 4 a :dw 0 Как это экономит доступ к памяти?
вопрос задан: 30 June 2012 21:03
0
ответов

gdb with assembler: Print status of carry flag

I've got an x86 assembler program which I'm debugging with gdb. Is there a way to print the status of the carry flag inside gdb with, like, "print $cf"?
вопрос задан: 30 June 2012 02:11
0
ответов

Значение вычитания адреса всегда равно 12? Размер переменных небольшой?

Сейчас я играю с C, C++ и ASM. Я вижу, что всегда есть разница в 12 между значениями вычитания ebp. Мой дизассемблированный код: Код: int main() {инт абс = 10; int def = 20;...
вопрос задан: 27 June 2012 14:41
0
ответов

Почему gcc делает это при создании кода на ассемблере?

Я экспериментирую с gcc -S, чтобы понять, как работает память и стек. Во время этих спектаклей я обнаружил несколько неясных для меня вещей. Не могли бы вы помочь мне понять причины? При вызове ...
вопрос задан: 24 June 2012 06:46