Вопросы с тегом «x86»

123
Что означают «невременные» обращения к памяти в x86

Это вопрос довольно низкого уровня. В сборке x86 есть две инструкции SSE: MOVDQA xmmi, m128 и MOVNTDQA xmmi, m128 В Руководстве разработчика программного обеспечения IA-32 говорится, что NT в MOVNTDQA означает Non-Temporal , и что в остальном это то же самое, что и MOVDQA. У меня вопрос, что...

119
Почему инструкции x86-64 для 32-битных регистров обнуляют верхнюю часть полного 64-битного регистра?

В x86-64 Tour of Intel Manuals я прочитал Возможно, самым удивительным фактом является то, что такая инструкция, как MOV EAX, EBXавтоматически обнуляет старшие 32 бита RAXрегистра. В документации Intel (3.4.1.1 Регистры общего назначения в 64-битном режиме в ручной базовой архитектуре), цитируемой...

119
Назначение регистров ESI и EDI?

Каково фактическое назначение и использование регистров EDI и ESI в ассемблере? Я знаю, что они используются для строковых операций с одной стороны. Может кто-нибудь также привести...

118
`testl` eax против eax?

Пытаюсь разобраться в какой-то сборке. Сборка следующая, интересует testlлинейка: 000319df 8b4508 movl 0x08(%ebp), %eax 000319e2 8b4004 movl 0x04(%eax), %eax 000319e5 85c0 testl %eax, %eax 000319e7 7407 je 0x000319f0 Я пытаюсь понять точку testlмежду %eaxи %eax? Я думаю, что особенности этого кода...

115
Как установить ia32-libs в Ubuntu 14.04 LTS (Trusty Tahr)

Вчера я установил Ubuntu 14.04 (Trusty Tahr). Вроде все нормально. Но когда я попытался скомпилировать код C, я обнаружил следующую ошибку. Ошибка, похоже, связана с тем, что ОС не поддерживает 32-битную архитектуру. Вывод ошибки следующий: /usr/bin/ld: i386 architecture of input file...

106
Почему SSE скалярный sqrt (x) медленнее, чем rsqrt (x) * x?

Я профилировал некоторые из наших основных математических вычислений на Intel Core Duo, и, глядя на различные подходы к вычислению квадратного корня, я заметил кое-что странное: используя скалярные операции SSE, быстрее получить обратный квадратный корень и умножить его. чтобы получить sqrt, чем...

105
Почему x86 уродлив? Почему он считается неполноценным по сравнению с другими? [закрыто]

В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение. Если вы считаете, что этот вопрос можно...

104
System.BadImageFormatException: не удалось загрузить файл или сборку (из installutil.exe)

Я пытаюсь установить службу Windows с помощью InstallUtil.exe и получаю сообщение об ошибке System.BadImageFormatException: не удалось загрузить файл или сборку ' {xxx.exe}' или одну из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом. Что дает? РЕДАКТИРОВАТЬ: (Не...

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

Итак, я знаю, какими должны быть следующие регистры и их использование: CS = сегмент кода (используется для IP) DS = сегмент данных (используется для MOV) ES = целевой сегмент (используется для MOVS и т. Д.) SS = сегмент стека (используется для SP) Но для чего предназначены следующие регистры? FS...

102
Кольца привилегий ЦП: почему кольца 1 и 2 не используются?

Пара вопросов относительно колец привилегий процессора x86: Почему кольца 1 и 2 не используются в большинстве операционных систем? Это просто для поддержания совместимости кода с другими архитектурами или есть лучшая причина? Существуют ли какие-либо операционные системы, которые действительно...

101
Какова функция инструкций push / pop, используемых для регистров в сборке x86?

Читая об ассемблере, я часто сталкиваюсь с людьми, которые пишут, что они нажимают определенный регистр процессора и вставляют его позже, чтобы восстановить его предыдущее состояние. Как вы можете протолкнуть регистр? Куда это подталкивают? Зачем это нужно? Сводится ли это к инструкции одного...

100
Вычисления с плавающей запятой и целочисленные на современном оборудовании

Я выполняю некоторую критическую для производительности работу на C ++, и в настоящее время мы используем целочисленные вычисления для задач, которые по своей сути являются плавающими, потому что «они быстрее». Это вызывает множество неприятных проблем и добавляет много надоедливого кода. Теперь я...

95
Каково назначение регистра указателя кадра EBP?

Я новичок в ассемблере и заметил, что код x86, выдаваемый компиляторами, обычно сохраняет указатель кадра даже в режиме выпуска / оптимизации, когда он может использовать EBPрегистр для чего-то еще. Я понимаю, почему указатель кадра может упростить отладку кода и может быть необходим, если он...

92
Как работает подкачка x86?

Этот вопрос призван заполнить вакуум хорошей бесплатной информации по предмету. Я считаю, что хороший ответ уместится в один большой SO-ответ или, по крайней мере, в несколько ответов. Основная цель - дать новичкам достаточно информации, чтобы они могли взять руководство самостоятельно и понять...

91
Как разобрать необработанный 16-битный машинный код x86?

Я хотел бы разобрать MBR (первые 512 байт) загрузочного диска x86, который у меня есть. Я скопировал MBR в файл, используя dd if=/dev/my-device of=mbr bs=512 count=1 Есть ли предложения по утилите Linux, которая может дизассемблировать файл mbr?...

89
Почему Intel скрывает внутреннее ядро ​​RISC в своих процессорах?

Начиная с Pentium Pro (микроархитектура P6), Intel переработала свои микропроцессоры и использовала внутреннее ядро ​​RISC в соответствии со старыми инструкциями CISC. Начиная с Pentium Pro, все инструкции CISC делятся на более мелкие части (uops), а затем выполняются ядром RISC. Вначале мне было...