0
ответов

x86 Формат инструкции: «ba 0e 00 00 00» … «mov $0xe,%edx»

Я получаю следующую строку на дизассемблере от objdump -d программы x86 linux... 4000b0: ba 0e 00 00 00 mov $0xe,%edx Я пытаюсь понять, как машинный код "ba 0e 00 00...
вопрос задан: 21 June 2012 02:31
0
ответов

MIPS против Intel x86 против LLVM в качестве первого языка ассемблера для изучения?

Какой язык ассемблера я должен изучать в качестве первого языка ассемблера? MIPS ( проще и часто используется в образовательных целях), Intel x86 (вездесущий) или переносимый язык ассемблера, лежащий в основе LLVM...
вопрос задан: 15 June 2012 17:15
0
ответов

Что не так с моим ассемблерным кодом

Итак, я пишу игру на c++ для MS-DOS и добавляю встроенный ассемблер для ускорения. Этот конкретный блок кода рисует звезду в видеопамяти (0A000h). Проблема с моим кодом в том, что...
вопрос задан: 15 June 2012 16:25
0
ответов

Перечисление всех установленных версий сборки (в GAC)

Можно ли перечислить все установленные версии сборки в GAC с помощью C#? Например, у меня есть сборка с именем "My.Assembly". Сборка может поставляться в различных версиях ("1.0.0.0", "2.3.4.5", ...
вопрос задан: 15 June 2012 12:49
0
ответов

Моделирование функциональности packusdw с помощью SSE2

Я реализую функцию быстрого преобразования x888 -> 565 пикселей в pixman по алгоритму, описанному Intel [ пдф]. Их код преобразует x888 -> 555, а я хочу преобразовать в 565. ...
вопрос задан: 14 June 2012 07:47
0
ответов

Использование регистров сегментации

Я пытаюсь понять, как происходит управление памятью на низком уровне, и у меня есть пара вопросов. 1) В книге об ассемблере Кипа Р. Ирвина говорится, что в реальном режиме первые три сегмента...
вопрос задан: 5 June 2012 19:46
0
ответов

Добавление двух строк в сборке x86

Сейчас я работаю над заданием в сборке AT&T, и теперь мне нужно добавить две строки: message: .asciz "String 1" раньше: .asciz "String 2" Я понятия не имею, как это сделать или как...
вопрос задан: 5 June 2012 10:34
0
ответов

О коде x86_64, скомпилированном gcc, и оптимизации кода C

Я скомпилировал следующий код C: typedef struct { long x, y, z; } Фу; длинный бар (Foo * f, длинный i) { вернуть f[i].x + f[i].y + f[i].z; } командой gcc -S -O3 test.c. Вот Бар...
вопрос задан: 4 June 2012 19:21
0
ответов

Как система выбирает правильную таблицу страниц?

Давайте сосредоточимся на однопроцессорных компьютерных системах. Насколько мне известно, при создании процесса создается таблица страниц, которая отображает виртуальные адреса в адресное пространство физической памяти. Каждая...
вопрос задан: 4 June 2012 11:34
0
ответов

Можно ли смешивать устаревшие инструкции в кодировке SSE и инструкции в кодировке VEX в одном и том же кодовом пути?

Наряду с введением AVX Intel представила схему кодирования VEX в архитектуре Intel 64 и IA-32. Эта схема кодирования используется в основном с инструкциями AVX. Мне было интересно, если это...
вопрос задан: 2 June 2012 21:21
0
ответов

Сегменты сборки в опкодах

Я заметил, что в сборке сегменты используются в опкодах. Пример: MOV DWORD PTR SS:[EBP-30],30 Я думаю, что "PTR SS:" используется для указания того, что EBP-30 исходит из стека? (SS: сегмент стека) Я...
вопрос задан: 31 May 2012 19:52
0
ответов

Для чего предназначен регистр «FS»/«GS»?

Итак, я знаю, какими должны быть следующие регистры и их использование: CS = Сегмент кода (используется для IP) DS = сегмент данных (используется для MOV) ES = Сегмент назначения (используется для MOVS и т. д.) SS = стек ...
вопрос задан: 30 May 2012 04:57
0
ответов

Почему ядро ​​Linux использует шлюз ловушки для обработки исключения "Divive_error"?

В ядре 2.6.11.5 обработчик исключения "деление нуля" настроен как: set_trap_gate (0, & diver_error); Согласно «Пониманию ядра Linux», к шлюзу прерывания Intel нельзя получить доступ из пользовательского режима ...
вопрос задан: 23 May 2012 16:03
0
ответов

Как сказать gcc, чтобы прекратить использование встроенных функций?

Я использую свой модифицированный glibc. Я увидел в скомпилированном коде, что компилятор не использовал многие стандартные библиотечные функции из моего glibc, когда я линковался с ним. Затем я поставил флаг -fno-builtin. Дела пошли...
вопрос задан: 21 May 2012 15:11
0
ответов

Почему .NET EXE, скомпилированный как x86, запускается как x64?

У меня есть небольшая программа командной строки, написанная на C#, работающая под .NET 4.0 и скомпилированная с помощью Visual Studio 10.0. Что он делает, так это извлекает данные из файла Access.mdb другого поставщика и вставляет...
вопрос задан: 21 May 2012 08:36
0
ответов

Как работают таблицы страниц x86?

Я знаком с архитектурой MIPS, которая имеет программно управляемый TLB. Таким образом, как и где вы (операционная система) хотите хранить таблицы страниц и записи таблицы страниц, полностью зависит от...
вопрос задан: 20 May 2012 05:55
0
ответов

Буквенно-цифровой шеллкод, обеспечивающий переходы

Я пытаюсь написать шелл-код, который в конечном итоге будет иметь форму абзаца на английском языке. Это означает, что я в основном ограничен инструкциями, коды операций которых оцениваются как буквенно-цифровые...
вопрос задан: 18 May 2012 21:19
0
ответов

Перевести ASM в стиле Delphi на английский?

В недавно доставшемся мне проекте Delphi есть процедура в ASM. Я полный новичок в ASM, поэтому не понимаю ее. Я прочитал различные инструкции по ASM, чтобы попытаться расшифровать процедуры ...
вопрос задан: 17 May 2012 12:14
0
ответов

Можно ли вызвать не -экспортированную функцию, которая находится в exe-файле?

Я хочу вызвать функцию, находящуюся в стороннем -.exe-файле, и получить ее результат. Кажется, должен быть какой-то способ, если я знаю адрес функции, соглашение о вызове -и т. д.... но я не знаю...
вопрос задан: 16 May 2012 11:37
0
ответов

«Давайте создадим компилятор» Креншоу: Транскрипция на C и x86 Assembler? [закрыто]

Я пытаюсь работать с превосходным учебником по программированию компилятора Джека Креншоу "Давайте создадим компилятор" и столкнулся с двумя препятствиями. Сначала код написан на Паскале, прекрасном языке для...
вопрос задан: 16 May 2012 01:05
0
ответов

Зачем вызывать, когда достаточно jmp?

У меня есть два файла: #include static inline void print0() { printf("Zero"); } статический встроенный void print1() { printf("One"); } статический встроенный void print2() { printf("Два"); } static inline ...
вопрос задан: 15 May 2012 14:22
0
ответов

Пример исполняемого стека в Linux (архитектура i386)

Я обнаружил, что когда мы используем вложенные функции, GCC требует исполняемый стек для кода трамплинов. Однако следующий код при компиляции с использованием gcc не отображает исполняемый стек. (Я использовал execstack для...
вопрос задан: 12 May 2012 13:55
0
ответов

Как проверить состояние ключей в сборке x86?

В январе прошлого года я занялся сборкой x86 в качестве хобби, поэтому я мог делать игры, которые будут работать на старых компьютерах с процессором 8086, таких как PCj и Tandy 1000, но книги, которые я нашел, мало что говорят об этом...
вопрос задан: 10 May 2012 19:07
0
ответов

Какова цель установки целевой платформы для приложения Visual Studio?

Для любого проекта VS можно установить целевую платформу в свойствах сборки этого проекта. Вы можете установить любой процессор, x86, x64 или Itanium. Мой вопрос в том, что если я установлю это значение на x86, то...
вопрос задан: 10 May 2012 13:56
0
ответов

Почему инструкции по ассемблеру могут содержать умножения в инструкции «lea»?

Я работаю над очень низкоуровневой частью приложения, где производительность имеет решающее значение. Изучая сгенерированную сборку, я заметил следующую инструкцию: lea eax,[edx*8+8] Я ...
вопрос задан: 9 May 2012 08:23
0
ответов

Проверка целочисленного переполнения SSE2

При использовании инструкций SSE2, таких как PADDD (т. е. встроенная функция _mm_add_epi32), есть ли способ проверить была ли какая-либо из операций переполнена? Я подумал, что это может быть флаг в элементе управления MXCSR...
вопрос задан: 9 May 2012 06:46
0
ответов

Измерение частоты ЦП (x86 / x64)

Я ищу какую-нибудь библиотеку, которая периодически дает мне точные значения частоты ЦП как на процессорах Intel, так и на AMD, на 32 -бит и 64 -] бит Windows. Цель этого состоит в том, чтобы точно...
вопрос задан: 8 May 2012 19:00
0
ответов

Является ли приращение целочисленным атомом в x86? [дубликат]

На многоядерной машине x86, скажем, поток, выполняющийся на ядре 1, увеличивает целочисленную переменную a в то же время поток на ядре 2 также увеличивает ее. Учитывая, что начальное значение a равно 0, будет ли это...
вопрос задан: 8 May 2012 17:54
0
ответов

SSE-умножение 4 32 -битных целых чисел

Как умножить четыре 32 -битных целых числа на другие 4 целых числа? Я не нашел ни одной инструкции, которая может это сделать.
вопрос задан: 8 May 2012 15:00
0
ответов

Является ли сдвиг более 32 битов целого числа uint64 _t на машине x86 неопределенным поведением?

Изучив трудный путь, я попытался сдвинуть влево длинное длинное и uint64 _t до более чем 32 бит на машине x86, в результате 0. Я смутно помню, что где-то читал, чем на 32-битной машине сдвиг..
вопрос задан: 8 May 2012 13:18