0
ответов

Как избежать накладных расходов на пролог функции gcc?

I ' В последнее время мы столкнулись с множеством функций, в которых gcc генерирует действительно плохой код на x86. Все они соответствуют шаблону: if (some_condition) {/ * сделать что-то действительно простое и вернуть * / } else {/ * ...
вопрос задан: 29 March 2011 19:31
0
ответов

Запись в соседние элементы массива из разных потоков?

Существуют ли какие-нибудь современные распространенные ЦП, где небезопасно записывать в соседние элементы массива одновременно из разных потоков? Особенно меня интересует x86. Вы можете предположить, что компилятор ...
вопрос задан: 21 March 2011 22:23
0
ответов

Относительная производительность блокировок подкачки и сравнения и подкачки на x86

Две распространенные идиомы блокировки: if (! Atomic_swap (lockaddr, 1)) / * получил блокировку * / и: if (! Atomic_compare_and_swap (lockaddr , 0, val)) / * получил блокировку * / где val может быть просто константой или ...
вопрос задан: 17 March 2011 13:37
0
ответов

Почему Intel не сделала доступной старшую часть регистров своих процессоров?

При программировании на ассемблере и выполнении каких-то манипуляций со строками я использую al, ah, а иногда и другие, чтобы удерживать символы, потому что это позволяет мне хранить больше данных в моих регистрах. Я думаю, что это ...
вопрос задан: 15 March 2011 21:04
0
ответов

Самый быстрый ассемблерный код x86 для синхронизации доступа к массиву? [closed]

Какой самый быстрый ассемблерный код x86 для синхронизации доступа к массиву в памяти? Чтобы быть более точным: у нас есть непрерывная одностраничная область памяти с ошибкой, и ОС не будет выгружать эту страницу ...
вопрос задан: 13 March 2011 21:16
0
ответов

двойная проверка условий в сборке

Я начинаю сборку, я использую nasm для сборки кода , Я пытаюсь обработать строку, находящуюся в памяти, и изменить ее, я хочу проверить, находится ли байт в определенном диапазоне (ascii), чтобы я мог ...
вопрос задан: 4 March 2011 16:28
0
ответов

(значимая) стоимость инструкции перехода?

Извините ... (преждевременная) оптимизация - это корень всех зол, но Я хотел бы знать: насколько дороже иметь инструкцию jmp по сравнению с ее отсутствием (безветвленный код)? Мне нужна методология для ...
вопрос задан: 26 February 2011 15:42
0
ответов

strlen in assembly

I made my own implementation of strlen in assembly, but it doesn't return the correct value. It returns the string length + 4. Consequently. I don't see why.. and I hope any of you do... Assembly ...
вопрос задан: 18 February 2011 12:51
0
ответов

Наиболее эффективный способ вычитания одного массива из другого

У меня есть следующий код: узкое место в одной части моего приложения. Все, что я делаю, это вычитаю один массив из другого. Оба этих массива содержат около 100000 элементов. Я пытаюсь найти ...
вопрос задан: 17 February 2011 17:17
0
ответов

Win32 EXCEPTION_INT_OVERFLOW против EXCEPTION_INT_DIVIDE_BY_ZERO

У меня есть вопрос об исключениях EXCEPTION_INT_OVERFLOW и EXCEPTION_INT_DIVIDE_BY_ZERO. Windows перехватит ошибки #DE, сгенерированные инструкцией IDIV, и в конечном итоге сгенерирует и SEH ...
вопрос задан: 15 February 2011 01:58
0
ответов

Какова цель команд поворота (ROL, RCL на x86)?

Мне всегда было интересно, для чего нужны инструкции поворота в некоторых процессорах (например, ROL, RCL на x86). Какое программное обеспечение использует эти инструкции? Сначала я подумал, что их можно использовать ...
вопрос задан: 12 February 2011 06:52
0
ответов

Чтение VARBINARY (MAX) из SQL Server в C #

Мне нужно прочитать строку данных из SQL Server 2008. Тип одного из столбцов - VARBINARY (MAX). В C # я хочу использовать параметр out для его чтения (и данный сценарий в основном удовлетворяет потребности). Но я ...
вопрос задан: 9 February 2011 17:26
0
ответов

Соглашение о вызовах для функции, возвращающей struct

Для следующего кода C: struct _AStruct {int a; int b; float c; float d; int e; }; typedef struct _AStruct AStruct; AStruct test_callee5 (); void test_caller5 (); void ...
вопрос задан: 8 February 2011 10:08
0
ответов

Как динамически генерировать и запускать машинный код?

Я бы хотел написать очень маленький проверочный JIT-компилятор для написанного мной игрушечного языкового процессора (чисто академический ), но у меня проблемы со средним уровнем дизайна. Концептуально ...
вопрос задан: 6 February 2011 06:32
0
ответов

Есть ли список устаревших инструкций x86?

Я беру урок программирования на языке ассемблера x86 и знайте, что определенные инструкции больше не следует использовать - потому что они медленны на современных процессорах; например, инструкция цикла. Я ...
вопрос задан: 4 February 2011 20:10
0
ответов

Что означает movl $ _start,% eax?

Что означает «$», за которым следует идентификатор, означает? Сборка x86, синтаксис AT&T.
вопрос задан: 3 February 2011 05:15
0
ответов

sizeof («» + 0)! = sizeof (char *) Ошибка или неопределенное поведение?

Следующая программа на C: #include int main (void) {printf ("% u% u% u \ n", sizeof "", sizeof ("" + 0), sizeof (char *)); возврат 0; } выводит 1 4 4 при компиляции с GCC в Linux, но ...
вопрос задан: 3 February 2011 02:20
0
ответов

Сколько способов установить регистр в ноль?

Мне любопытно, сколько существует способов установить регистр в ноль в x86 сборка. Используя одну инструкцию. Кто-то сказал мне, что ему удалось найти как минимум 10 способов сделать это. Я могу вспомнить следующие: ...
вопрос задан: 28 January 2011 15:30
0
ответов

Intel 64 and IA-32 | Atomic operations including acquire / release semantic

According to the Intel 64 and IA-32 Architectures Software Developer's Manual the LOCK Signal Prefix "ensures that the processor has exclusive use of any shared memory while the signal is asserted". ...
вопрос задан: 27 January 2011 21:10
0
ответов

Настройка Visual Studio для создания 32-разрядных и 64-разрядных конфигураций

В настоящее время я пытаюсь настроить Visual Studio для автоматической настройки соответствующих конфигураций для 32-разрядной и 64-разрядной компиляции. В идеале я бы хотел иметь Visual Studio ...
вопрос задан: 26 January 2011 22:48
0
ответов

Как преобразовать положительное число в отрицательное в сборке

Я хочу преобразовать положительное число в отрицательное в сборке, Мне нужен образец кода. Введено шестнадцатеричное sdword. Спасибо
вопрос задан: 23 January 2011 20:32
0
ответов

Простейший способ удалить что-нибудь из стека FPU

В последнее время у меня возникли проблемы с переполнением стека FPU. Мне удалось отследить это до глючной библиотечной функции, которая помещает значение мусора в стек FPU каждый раз, когда она вызывается, и никогда ...
вопрос задан: 23 January 2011 04:59
0
ответов

Помогите понять очень простой дизассемблер main () в GDB

Эй, я написал эту очень простую основную функцию поэкспериментировать с дизассемблированием, а также увидеть и, надеюсь, понять, что происходит на нижнем уровне: int main () {return 6; } Используя gdb ...
вопрос задан: 20 January 2011 20:39
0
ответов

DI: Сколько вводить?

Я пишу свое второе реальное приложение, использующее DI. В целом я думаю, что это позволило улучшить дизайн. Но есть запахи кода, которые я не знаю, как решить. Я предпочитаю использовать ...
вопрос задан: 19 January 2011 08:45
0
ответов

Как команда паузы x86 работает в спин-блокировке * и * может ли она использоваться в других сценариях?

Команда паузы обычно используется в цикле тестирования спин-блокировки, когда какой-либо другой поток владеет spinlock, чтобы смягчить жесткую петлю. Это' s сказал, что это эквивалентно некоторым инструкциям NOP. ...
вопрос задан: 18 January 2011 15:09
0
ответов

Почему существует разница между языками ассемблера, такими как Windows, Linux?

Я относительно новичок во всем этом низкоуровневом языке ассемблера ... и хочу узнать больше. Почему существует разница между языками сборки Linux и Windows? Насколько я понимаю, когда я компилирую ...
вопрос задан: 5 January 2011 14:46
0
ответов

Как я могу писать прямо на экран?

Я подросток, который очень заинтересовался языком ассемблера. Я пытаюсь написать небольшую операционную систему на ассемблере Intel x86, и мне было интересно, как писать прямо на экран, например ...
вопрос задан: 4 January 2011 02:05
0
ответов

Пример инструкции JLE jmp сборки

Как использовать семейство инструкций jump? Вот что у них есть: метка JL "It" перескакивает, если она меньше или не больше или равна. У меня вопрос, что в этом предложении? ...
вопрос задан: 29 December 2010 09:46
0
ответов

что такое переменная devise_mapping и как ее включить?

Я пытаюсь реализовать аутентификацию с помощью Devise в моем приложении Rails (Rails 2.3. 8, Devise 1.0.7, ублюдок, работающий в Windows Vista). Но я получаю следующую ошибку: undefined local variable ...
вопрос задан: 27 December 2010 22:41
0
ответов

Объясните, как работает флаг AF в инструкциях x86?

У меня есть небольшой эмулятор 8086, и у меня есть давняя ошибка примерно 2 года, когда AF делает не вести себя должным образом внутри саб и добавить инструкции. Мой текущий способ вычисления его значения таков ...
вопрос задан: 22 December 2010 21:13