1
ответ

Как я могу использовать gcc для компиляции x86 ассемблерного кода на x64 компьютере

Для школьного присвоения я должен записать x86 ассемблерный код, кроме я не могу использовать gcc для компиляции его, так как мой компьютер является x64 машиной, и gcc только ожидает x86-код. Есть ли команда, это будет...
вопрос задан: 14 November 2008 22:30
0
ответов

Значение long double для производительности. Почему C по умолчанию выбирает 64-битную версию вместо аппаратной 80-битной?

Для конкретики я говорю об архитектуре ПК x87 и компиляторе C. Я пишу свой собственный интерпретатор, и причина двойного типа данных меня смущает. Особенно там, где эффективность ...
вопрос задан: 28 November 2019 03:17
0
ответов

bt assembly instruction

У меня есть задание насчет bt assembly instruction. Я вычитал часть книги, чтобы указать контекст. Смотрите последний пример, bt Testme, bx. Почему это копирует TestMe+8? Разве он не должен копировать TestMe+65? ...
вопрос задан: 1 November 2019 00:55
0
ответов

Что означает «rep; нет; " имеется ввиду в сборке x86? Это то же самое, что и инструкция «пауза»?

Что означает rep; нет значит? Это то же самое, что и инструкция паузы? Это то же самое, что и rep nop (без точки с запятой)? Чем отличается простая инструкция nop? На AMD по-другому ведет себя ...
вопрос задан: 27 October 2019 05:44
0
ответов

Сколько регистров в 8086/8088?

Я прошел курс компьютерной архитектуры и понял, что процессор имеет 32 регистра по 32 бита каждый. Сейчас я изучаю курс компьютерной архитектуры, в котором я прочитал, что у 8086 всего 8 регистров. Но ...
вопрос задан: 17 October 2019 16:11
0
ответов

Бит направления / знака при кодировании кода операции x86

В наборе команд x86 бит с индексом 1 кода операции может быть либо битом направления, который указывает, что такое операнды назначения и источника, либо битом расширения знака. например for ...
вопрос задан: 3 October 2019 07:31
0
ответов

Почему GCC генерирует такие радикально отличающиеся сборки почти для одного и того же кода C?

При написании оптимизированной функции ftol я обнаружил очень странное поведение в GCC 4.6.1. Позвольте мне сначала показать вам код (для ясности я отметил различия ):fast _trunc _one, C :int fast _trunc _one (...
вопрос задан: 19 September 2019 23:07
0
ответов

Что делает инструкция по сборке LEAL?

Я немного запутался в разнице между leal -4(%ebp), %eax и movl -4(%ebp), %eax Кто-нибудь может мне это объяснить?
вопрос задан: 18 September 2019 23:25
0
ответов

Эффективная функция сравнения целых чисел

Функция сравнения — это функция, которая принимает два аргумента a и b и возвращает целое число, описывающее их порядок. Если a меньше b, результатом будет некоторое отрицательное целое число. Если a больше, чем b, ...
вопрос задан: 13 September 2019 00:51
0
ответов

Язык ассемблера - как работать по модулю?

Есть ли что-то вроде оператора или инструкции по модулю в ассемблере x86?
вопрос задан: 10 August 2019 06:59
0
ответов

ассемблер x86: плавающая точка выдерживает сравнение

Как часть проекта компилятора, я должен написать ассемблерный код GNU для x86 для сравнения значений с плавающей точкой. Я попытался найти ресурсы о том, как сделать это онлайн и от того, что я понимаю, что это работает...
вопрос задан: 24 July 2019 23:46
0
ответов

Есть ли что-то особенное в -1 (0xFFFFFFFF) в отношении АЦП?

В моем исследовательском проекте я пишу код на C ++. Тем не менее, сгенерированная сборка является одним из ключевых моментов проекта. C ++ не обеспечивает прямой доступ к инструкциям по управлению флагами, в ...
вопрос задан: 12 July 2019 14:34
0
ответов

Флаг направления в x86

Я не могу понять, как флаг направления работает в x86. Текст в моих лекциях говорит, что он увеличивает или уменьшает исходный или целевой регистр, но это не имеет смысла с его...
вопрос задан: 11 July 2019 20:43
0
ответов

Почему __sync_add_and_fetch работает для 64-битной переменной в 32-битной системе?

Рассмотрите следующий сжатый код: /* Компиляция: gcc -pthread -m32 -ansi x.c */ #include #include #include static volatile uint64_t v = 0; ...
вопрос задан: 19 June 2019 21:42
0
ответов

Сборка - JG/JNLE/JL/JNGE после CMP

Я не понимаю JG/JNLE/ Инструкции JL/JNGE, которые идут после CMP. например, если у меня есть: CMP al,dl jg label1 Когда al=101; дл =200. О чем мы спрашиваем jg? Это на al>dl? или al-dl>0?...
вопрос задан: 15 June 2019 11:11
0
ответов

Оптимизированная для SSE эмуляция 64 -битных целых чисел

Для хобби-проекта, над которым я работаю, мне нужно эмулировать определенные 64 -битные целочисленные операции на процессоре x86, и это должно быть быстро. В настоящее время я делаю это с помощью инструкций MMX, но это действительно проблема...
вопрос задан: 6 June 2019 01:44
0
ответов

Инструкция mov в сборке x86

Из того, что я читал о mov , он копирует второй аргумент в первый аргумент. Тогда что это делает? movl 8 (% ebp),% edx Он копирует все, что есть в edx, в первый параметр ...
вопрос задан: 31 May 2019 13:41
0
ответов

Написание оболочки системных вызовов Linux int 80h во встроенной сборке GNU C [дубликат]

I ' м пытаюсь использовать встроенную сборку ... Я прочитал эту страницу http://www.codeproject.com/KB/cpp/edujini_inline_asm.aspx, но я не могу понять параметры, передаваемые моей функции. Я пишу C write ...
вопрос задан: 26 May 2019 15:19
0
ответов

Циклы/стоимость попадания в L1 Cache vs. Зарегистрироваться на x86?

Я помню, что предполагал, что попадание в кэш L1 составляет 1 цикл (, т. е. идентично времени доступа к регистру )в моем архитектурном классе, но так ли это на самом деле для современных процессоров x86? Сколько циклов выполняет L1...
вопрос задан: 30 April 2019 19:48
0
ответов

Пишу свой биос

Я не сумасшедший, просто заново изобретаю велосипед :D Я написал загрузчики, мини-драйверы для мыши и клавиатуры, мини-ОС и так далее. Я всегда стараюсь избегать прерываний DOS, использую только прерывания BIOS, пытаясь...
вопрос задан: 30 April 2019 18:59
0
ответов

Как заставить код C выполнять шестнадцатеричный байт-код?

Я хочу, чтобы простой метод C позволял запускать шестнадцатеричный байт-код на 64-битной машине Linux. Вот программа на C, которая у меня есть:char code[] = "\x48\x31\xc0"; #включить int main(int argc, char **...
вопрос задан: 29 April 2019 17:16
0
ответов

Относительный и абсолютный jmp в сборке

Мне было интересно следующее. При написании ассемблера я заметил, что IA32 спроектирован таким образом, чтобы способствовать использованию относительных переходов, то есть переходить на величину смещения байтов против ...
вопрос задан: 17 April 2019 23:19
0
ответов

Переход ассемблера в защищенном режиме с GDT

Я сейчас играю с x86 Assember, чтобы отточить мои навыки программирования низкого уровня. В настоящее время у меня возникла небольшая проблема со схемой адресации в 32-битном защищенном режиме. ...
вопрос задан: 17 April 2019 23:14
0
ответов

Как закодировать относительно короткий JMP в x86

Предположим, что я хочу сделать короткий переход, используя следующие коды операций: EB CB или JMP rel8 «Короткий переход, RIP = RIP + 8-битный знак смещения расширен до 64-битных» (где CB - значение со знаком байта ...
вопрос задан: 17 April 2019 20:36
0
ответов

Почему функция cos в math.h быстрее, чем инструкция x86 fcos

Cos () в math.h работает быстрее, чем x86 asm fcos. Следующий код сравнивается между x86 fcos и cos () в math.h. В этом коде 1000000 раз asm fcos стоит 150 мс; 1000000 раз потому () ...
вопрос задан: 14 April 2019 11:17
0
ответов

Ищу 16-битный компилятор c для x86 [закрыто]

Я работаю над портированием uc / OS-II из DOS в x86 (реальный режим). Мне нужно: Ассемблер для сборки созданной сборки в объектный файл Компоновщик ...
вопрос задан: 7 April 2019 02:13
0
ответов

Почему GCC сбрасывает указатель кадра на 64-битный?

В чем причина отказа от указателя кадра на 64-битных архитектурах по умолчанию? Я хорошо знаю, что он может быть включен, но почему GCC отключает его в первую очередь, когда он включен ...
вопрос задан: 6 April 2019 10:38
0
ответов

Как напечатать число в сборке NASM?

Предположим, у меня есть целое число в регистре, как его распечатать? Вы можете показать простой пример кода? Я уже знаю, как напечатать строку типа «привет, мир». Разрабатываю под Linux.
вопрос задан: 6 April 2019 00:50
0
ответов

Нужна помощь в перемещении содержимого одного массива в другой в Irvine Assembly

Мои назначения требуют, чтобы я сгенерировал случайный массив, переместил содержимое в другой массив и затем удвоил каждое значение. Я полностью потерян, как скопировать значения массива в другое, хотя это ...
вопрос задан: 18 March 2019 01:34
0
ответов

Как AX, AH, AL отображаются на EAX?

Мое понимание регистров x86 говорит, что к каждому регистру может обращаться весь 32-битный код, и он разбит на несколько доступных регистров. В этом примере EAX является 32-битным регистром, если ...
вопрос задан: 13 March 2019 15:38