0
ответов

Использование языка ассемблера в C / C ++

Я помню, как где-то читал, чтобы действительно оптимизировать и ускорить определенный участок кода, программисты пишут этот участок на языке ассемблера. Мои вопросы: эта практика все еще выполняется? .. .
вопрос задан: 1 May 2012 04:17
0
ответов

Производительность циклов кода C

В моем приложении есть ядро ​​с множественным добавлением, и я хочу повысить его производительность. Я использую Intel Core i7-960 (тактовая частота 3,2 ГГц) и уже вручную внедрил ядро ​​с помощью SSE...
вопрос задан: 1 May 2012 04:17
0
ответов

Почему панель GCC работает с NOP?

Я работал с C некоторое время и совсем недавно начал разбираться в ASM. Когда я компилирую программу: int main (void) {int a = 0; а + = 1; возврат 0; } При дизассемблировании objdump ...
вопрос задан: 1 May 2012 04:12
0
ответов

Нужна помощь в понимании инструкции вызова E8 asm x86

Мне нужна рука помощи, чтобы понять следующую инструкцию по сборке. Мне кажется, что я звоню по адресу someUnknownValue += 20994A? E8 32F6FFFF -call std ::_Init _locks ::...
вопрос задан: 30 April 2012 20:32
0
ответов

Основное использование немедленных (квадратные скобки) в сборке x86 и yasm

Предположим, у меня есть следующее объявленное: section .bss buffer resb 1 И следующие инструкции: mov al, 5 mov [buffer], al mov bl, [buffer] mov cl, buffer Am I исправить в ...
вопрос задан: 30 April 2012 18:42
0
ответов

Эффективная комплексная арифметика в ассемблере x86

Рассмотрим следующую программу :для i=1 до 10000000 do z < -z *z + c, где z и c — комплексные числа. Каковы эффективные реализации этой программы на ассемблере x86 с использованием x87 и SSE и...
вопрос задан: 30 April 2012 18:41
0
ответов

Портирование компилятора с ассемблера x86 на LLVM

Итак, недавно, пытаясь отточить свои навыки ассемблера, я написал ОЧЕНЬ простой компилятор для игрушечного языка на C++. Он выполняет однократный проход и напрямую выдает код на этапе синтаксического анализа в несколько строк...
вопрос задан: 30 April 2012 17:10
0
ответов

Защита исполняемого файла от обратного проектирования?

I ' Я размышлял, как защитить свой код C / C ++ от дизассемблирования и обратного проектирования. Обычно я бы никогда не потворствовал такому поведению в своем коде; однако текущий протокол я был ...
вопрос задан: 30 April 2012 17:04
0
ответов

Сборка X86 -Обработка инструкции IDIV

В настоящее время я пишу простой компилятор C, который принимает файл.c в качестве входных данных и генерирует ассемблерный код (X86, AT&T синтаксис ). Все хорошо, но когда я пытаюсь выполнить инструкцию IDIVQ, я получаю...
вопрос задан: 27 April 2012 00:20
0
ответов

Как мне прочитать значение всех регистров с помощью gdb?

Я отлаживаю программу на языке C на ассемблере, чтобы понять, как работает компилятор gcc. Я хочу прочитать свой сегментный регистр $fs, поэтому я использую x/x $fs, однако он говорит мне, что не может получить доступ к памяти. Как я могу получить...
вопрос задан: 26 April 2012 00:02
0
ответов

Как выглядит настоящий машинный код в различных точках? [закрыто]

Кажется, существует много мнений о том, что такое машинный код. Я слышал, что некоторые говорят, что это сборка, двоичный код или шестнадцатеричный код. Правильно ли будет сказать, что машинный код по сути является набором инструкций...
вопрос задан: 25 April 2012 22:39
0
ответов

Чем хороша функция «Сравнить и поменять местами»?

Недавно я читал об атомарном действии Compare And Swap (CMPXCHG,.NET Interlocked.CompareExchange и т. д. ). Я понимаю, как это работает внутри, и как это используется клиентом. Что...
вопрос задан: 24 April 2012 20:04
0
ответов

x86 jmp для регистрации

Итак, у меня есть адрес в %eax, на который я хотел бы перейти, но код не компилируется, есть ли способ обойти это? movl 0xdeadbeef, %eax jmp %eax ; < ---ошибка компиляции :несоответствие типа для 'jmp'
вопрос задан: 22 April 2012 20:58
0
ответов

Недопустимая константа после исправления?

По какой-то причине, когда я пытаюсь скомпилировать этот фрагмент кода, компилятор говорит: syscall.s:72:invalid Constant (0x172)после fixup:.globl _mach _msg_ловушка$MACH _mach_msg_trap$MACH:stmfd sp!, {r4,r7}...
вопрос задан: 21 April 2012 17:40
0
ответов

Что происходит, когда префикс rep присоединяется к нестроковой инструкции?

Я попытался выяснить разницу в скорости между простыми петлями, петлями-петлями и встроенными повторными петлями. Я написал три программы для сравнения поведения: Программа 1 _start: xor %ecx,%ecx 0: не %ecx ...
вопрос задан: 21 April 2012 12:58
0
ответов

сборка x86 - простая арифметическая программа не работает, MASM32 на xp

У меня есть простая программа, которая добавляет 1 + 1, пока не достигнет миллиона, а затем выдает «Готово!» на консоль. Но когда он работает, он ничего не делает. Вот код: .386 .model flat, опция stdcall ...
вопрос задан: 19 April 2012 02:35
0
ответов

Ассемблер 68k на OS X Lion

Мне нужно сделать кое-что по программированию на ассемблере для 68k для моего класса в колледже. Я ищу программу, чтобы сделать это на os x lion. Я нашел easy68k, который работает в Wine, но у меня такое чувство...
вопрос задан: 18 April 2012 21:39
0
ответов

Адресация памяти с помощью GNU Assember Intel Syntax

Я читал эту страницу, содержащую хороший список различий между синтаксисом Intel и AT&T для GAS, но она не охватывает случай указания адреса с помощью только смещение. Здесь я собрал...
вопрос задан: 18 April 2012 17:48
0
ответов

АСМ:МАСМ, НАСМ, ФАСМ?

Я занимался программированием на ассемблере для ARM и хотел бы изучить Intel Assembler. Я продолжаю слышать все эти различные упоминания Ж/М/С/МЗ-, но я не уверен, как они соотносятся с тем, чего я хочу достичь?...
вопрос задан: 16 April 2012 18:55
0
ответов

Справочник по инструкциям x86 по функциональности

Я ищу ссылку на "эволюцию" набора инструкций x86. В основном, какие новые команды делают старые команды избыточными и непригодными для использования, а также разбивка инструкций в соответствии с их...
вопрос задан: 15 April 2012 06:40
0
ответов

Что делает asm("pause") и зачем его использовать

Я видел asm("pause") в чужом коде и мне интересно, что он делает. Код компилируется g++ в Linux. Эта строка находится в цикле, который находится в другом потоке, который постоянно опрашивает, есть ли обновление...
вопрос задан: 15 April 2012 05:53
0
ответов

Необходимость операндов push и pop в ЦП

Почему у нас есть такие команды, как push и pop? Насколько я понимаю, pop и push в основном аналогичны выполнению (mov, затем add)и (sub, затем mov)на esp соответственно. Например, не:pushl %...
вопрос задан: 14 April 2012 17:23
0
ответов

Операнды команд умножения и деления на ассемблере x86, 16-разрядные и выше

Я немного запутался в том, как операции умножения и деления работают в ассемблере x86. Например, приведенный ниже код не кажется слишком сложным, так как имеет дело с 8-битным. 8-битное умножение: ; Пользователь ...
вопрос задан: 14 April 2012 01:09
0
ответов

Где я могу найти исходный код системных вызовов?

В Linux, где я могу найти исходный код для всех системных вызовов, учитывая, что у меня есть исходное дерево Кроме того, если бы я хотел найти исходный код и сборку для определенного системного вызова, есть ли там...
вопрос задан: 13 April 2012 23:34
0
ответов

Перейти, если ноль относительно 1

У меня есть следующий ассемблерный код (x86). .Вход: мов ах, 00ч ; получить ключ из буфера клавиатуры интервал 16ч ; прерывание 16h mov dl, al ; переместить код ASCII в dl мов ах, 02ч ; функция ...
вопрос задан: 12 April 2012 16:42
0
ответов

x86 addl vs subl

Я только заметил, что Clang компилирует этот оператор (без какой-либо оптимизации, конечно):--x; /*интервал х; */into:addl $4294967295, %ecx ##imm = 0xFFFFFFFF Почему? Есть ли какое-либо преимущество в...
вопрос задан: 12 April 2012 15:41
0
ответов

Являются ли регистры I и J специальными в DCPU-16?

DCPU-16 включает 8 регистров общего назначения с именами A, B, C, X, Y, Z, I и J. Использование I и J для счетчиков циклов — своего рода «троп» программиста. В DCPU-16 есть специализированные регистры I и J, которые должны ...
вопрос задан: 12 April 2012 06:19
0
ответов

Самомодифицирующийся код, копирование/переход в кучу не удалось

Во-первых, я прошу прощения за длину этого поста, но я хотел ясно объяснить проблему. Я пытаюсь написать небольшую самомодифицирующуюся программу на C, но у меня есть некоторые проблемы, и я не знаю...
вопрос задан: 11 April 2012 17:16
0
ответов

Почему инструкция INC x86 не является атомарной? [дубликат]

Я читал, что инструкция INC для x86 не является атомарной. Мой вопрос, как так получилось? Предположим, мы увеличиваем 64-битное целое число на x86-64, мы можем сделать это с помощью одной инструкции, так как инструкция INC работает...
вопрос задан: 11 April 2012 16:03
0
ответов

внутреннее перемещение не исправлено

Недавно я начал программировать на ассемблере ядра рук. Мои первые небольшие демонстрации, только с разделом.text, запускались без проблем. В качестве логического расширения я хотел структурировать код на ассемблере...
вопрос задан: 11 April 2012 14:31