Все вопросы: [x86]

251 вопросов

похожие теги: android-x86x86-64jasmin-x86x86-16
9
голосов
5ответов
7456 просмотров

Разобрать на x86_64 на OSX10.6 (но с синтаксисом _Intel_)

Я знаю otool -tv, но я бы предпочел использовать синтаксис Intel , а не AT&T, в основном для того, чтобы легко следить по книге и не просматривать тысячи % и $. Я также был бы признателен за любые советы, где я могу найти файл конфигурации gdb. РЕДАКТИРОВАТЬ: Я забыл: у меня 64-битный п...

0
голосов
2ответов
1157 просмотров

сохранить встроенное значение регистра asm в указатель C, можно получить его на GCC, но не на VC

для простоты я просто вставлю пример вместо всего моего кода, который немного огромен.при переносе моего кода на VC ++ вместо использования GCC мне нужно переписать несколько встроенных функций сборки, которые получают указатели и сохраняют значения в этих указателях. представьте, например, c...

0
голосов
3ответов
2623 просмотров

Сборка x86: какой главный пролог и эпилог?

Я следую этому руководству по сборке x86.В каждом примере до сих пор используется то, что автор называет программой «c-драйвер», скомпилированной с помощью модуля сборки, для некоторой «инициализации».Что-то вроде: int main(void) { int ret = asm_main(); return ret; } Затем функция a...

0
голосов
2ответов
1705 просмотров

32-битное приложение, доступ к 64-битному реестру

У меня есть 32-битная оболочка ОС, которая заменяет Explorer.exe на компьютере с Vista. Я запускаю утилиту, также написанную на 32-битной версии, которая позволяет переключаться между оболочкой проводника и моей оболочкой.Поскольку некоторые машины имеют 64-битную основу, я не могу изменить ключ...

4
голосов
3ответов
2328 просмотров

Переполнение левого Shift на 68k / x86?

Я слышал, что архитектуры Motorola 68000 и Intel x86 по-разному обрабатывают переполнение при левом смещении.В частности, 68k LSL и инструкции по сборке Intel SAL / SHL. Кто-нибудь знает подробности этого?Устанавливают ли они разные флаги или устанавливают их по-разному?Я попытался найти это ...

6
голосов
2ответов
790 просмотров

Как перевести "pushl 2000" из asm AT&T в синтаксис Intel на i386

Я пытаюсь перевести следующее со сборки AT&T на сборку Intel: pushl 2000 Теперь это компилируется до: ff 35 d0 07 00 00 pushl 0x7d0 Но что бы я ни пытался, я не могу получить то же самое в Intel Synax, я пробовал: intel asm disassembly after compiling to at&t pus...

142
голосов
12ответов
172973 просмотров

В чем разница между MOV и LEA?

Я хотел бы знать, в чем разница между этими инструкциями: MOV AX, [TABLE-ADDR] и LEA AX, [TABLE-ADDR]

2
голосов
4ответов
369 просмотров

Перевести FOR на ассемблер

Мне нужно перевести комментарии в методе на ассемблер.У меня есть примерное представление, но не могу. Кто-нибудь может мне помочь?Для архитектуры Intel x32: int secuencia ( int n, EXPRESION * * o ) { int a, i; //--- Translate from here ... for ( i = 0; i < n; i++ ){ a = evalua...

3
голосов
2ответов
1649 просмотров

Как Windows переключается в режим супервизора во время системного вызова?

Как Windows переключается в режим супервизора во время системного вызова?Я слышал что-то о «ловушке 0», но это даже не похоже на инструкцию x86.Я выполнил несколько системных вызовов, но не могу их найти.Многие системные вызовы Windows выполняются в пользовательском режиме?Какие из них работают ...

4
голосов
4ответов
1163 просмотров

Соглашения о вызовах C и переданные аргументы

Может ли вызываемый объект при вызове функции в Linux (или OS X) изменять значения аргументов в стеке?Я исходил из предположения, что, поскольку вызывающий является тем, кто их очищает, они должны содержать те же значения после вызова функции.Однако я обнаружил, что GCC с -O2 изменяет параметры,...

2
голосов
2ответов
1095 просмотров

Как x86 обрабатывает условные инструкции хранения?

Я пытаюсь выяснить, что делает процессор x86, когда встречает условную инструкцию сохранения.Например, останавливает ли он переднюю часть конвейера и ожидает, пока буфер ROB станет пустым, прежде чем он прекратит останавливать переднюю часть и выполнить SC?В основном это заставляет процессор пер...

0
голосов
2ответов
148 просмотров

Есть ли способ управлять сегодняшним компьютерным сетевым адаптером без базовой ОС?

Я хотел бы написать приложение с интенсивным вводом-выводом без базовой ОС, работающее на архитектуре x86 и управляющее любым современным контроллером сетевого интерфейса. Изучив исходный код драйверов Linux, я понял, что для управления, например, гигабитным контроллером Intel e1000e требуютс...

17
голосов
6ответов
78226 просмотров

Что означает OFFSET в 16-битном ассемблерном коде?

Я просматриваю пример кода сборки для 16-битного реального режима. Я наткнулся на строки: mov bx, cs mov ds, bx mov si, OFFSET value1 pop es mov di, OFFSET value2 что это делает?Что дает "OFFSET"?

683
голосов
16ответов
594645 просмотров

Какова цель инструкции LEA?

Для меня это просто забавный MOV.Какова его цель и когда мне ее использовать?

7
голосов
4ответов
2681 просмотров

Изучение кода, созданного компилятором Visual Studio C ++, часть 1

Возможный дубликат: Почему создается такой сложный код для деления целого числа со знаком на степень двойки? Фон Я просто изучаю x86 asm, исследуя двоичный код, созданный компилятором. Код, скомпилированный с использованием компилятора C ++ в Visual Studio 2010 beta 2 . ...

4
голосов
1ответов
1752 просмотров

Адресация памяти в asm

Я изучаю asm, и вот одна из моих (многих) проблем: Я хочу изменить значение некоторого индекса массива. Допустим, что: % eax содержит мое новое значение верх стека (т.е. (0)% esp) содержит индекс массива -4 (% ebp) содержит адрес массива. Я пробовал movl %eax, (-4(%ebp),0(%esp),4), но...

16
голосов
9ответов
4771 просмотров

Как лучше всего написать простой ассемблер x86?

Мне интересно написать ассемблер x86 для хобби-проекта. Сначала это казалось мне довольно простым, но чем больше я вчитываюсь в него, тем больше у меня вопросов без ответа. Я не совсем неопытный: я довольно часто использовал сборку MIP, и я написал игрушечный компилятор для подмножества C в ш...

30
голосов
4ответов
29857 просмотров

Есть ли способ заставить gcc выводить необработанный двоичный файл?

Есть ли набор параметров командной строки, которые убедят gcc создать плоский двоичный файл из автономного исходного файла?Например, предположим, что содержимое foo.c static int f(int x) { int y = x*x; return y+2; } Никаких внешних ссылок, ничего для экспорта в компоновщик.Я бы хотел ...

0
голосов
3ответов
261 просмотров

Проблемы сборки Linux

Неужели нет способа вывести строку ascii в сборке на стандартный вывод без использования всех четырех регистров общего назначения?

3
голосов
4ответов
680 просмотров

Конфликт нумерации IRQ

От: http://software.intel.com/en-us/ article / Introduction-to-pc-architecture / Исключение номер 10h соответствует «ошибке с плавающей запятой», но программное прерывание 10h также соответствует прерываниям BIOS «Поддержка видео» (оба в реальном режиме). Что мне не хватает?

10
голосов
1ответов
2667 просмотров

Запуск кода на другом процессоре (сборка x86)

Какие инструкции необходимо использовать в реальном режиме на x86 для запуска кода на другом процессоре в многопроцессорной системе? (Я пишу некоторый предзагрузочный код на ассемблере, который должен установить определенные регистры ЦП, и делаю это на каждом ЦП в системе до фактической загру...

27
голосов
1ответов
21220 просмотров

Значение (% eax) в синтаксисе AT&T?

Извините, я новичок в сборке x86 и сборке в целом. Мой вопрос: у меня что-то вроде: addl %edx,(%eax) % eax - это регистр, содержащий указатель на некоторое целое число.Назовем это xp Означает ли это, что там написано: *xp = *xp + %edx?(%edx - целое число) Я просто запуталась, где ...

3
голосов
2ответов
1470 просмотров

Изменить прерывание в 16-битном реальном режиме

Я пытаюсь изменить свою таблицу прерываний, чтобы взять на себя прерывание клавиатуры.Моя конечная цель - написать новую процедуру обработки прерываний, скопировать себя в ОЗУ и сделать так, чтобы таблица прерываний реального режима указывала на меня. Я нашел случайный образец кода в Интерне...

1
голосов
4ответов
7831 просмотров

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

Я изучаю ассемблер x86 и понимаю назначение и использование сегментов.Сегменты содержат важные данные, а также могут использоваться для хранения дополнительных данных (например, модели сегментации памяти).Но вот мой вопрос.Если сегменты можно использовать для хранения дополнительных данных, как ...

5
голосов
2ответов
498 просмотров

Ухудшение производительности при выполнении инструкций x86, хранящихся в сегменте данных?

У меня есть простая программа, которая сначала записывает некоторые собственные инструкции x86 в объявленный буфер, а затем устанавливает указатель функции на этот буфер и выполняет вызов. Однако я замечаю серьезное снижение производительности, когда этот буфер выделяется в стеке (а не в куче ил...

0
голосов
1ответов
113 просмотров

VS2008 pro + seven pro 64bits

I recently installed W7 pro 64bits on my laptop, and then VS2008 pro with x64 compatibility. If i build any project, will it be built with 32 or 64 bit compatibility natively? And then, is it possible to change from 32 to 64 (or from 64 to 32) ? 'Cause most of my clients only runs 32bits appli...

1
голосов
9ответов
2603 просмотров

C++ Array size x86 and for x64

Simple question, I'm writting a program that needs to open huge image files (8kx8k) but I'm a little bit confused on how to initialize the huge arrays to hold the images in c++. I been trying something like this: long long SIZE = 8092*8092; ///8096*8096 double* array; array = (double*) mall...

11
голосов
1ответов
7533 просмотров

Debugging disassembled libraries with gdb

in Linux and Mac OS X I can use stepi and nexti to debug an application without debugging information. On Mac OS X gdb shows the functions that are called inside the library, although sometimes advancing several assembler instructions in each stepi instruction. On Linux, when I step into a dyn...

19
голосов
3ответов
11493 просмотров

Advice for learning Linux x86-64 assembly & documentation

Does anyone have documentation pertaining to learning the fundamentals of Linux x86-64 assembly? I'm not sure whether or not to learn it as is, or to learn x86 first, and learn it later, but being as I have an x86-64 computer and not an x86, I was thinking of learning x86-64 instead ;) Maybe so...

2
голосов
2ответов
1059 просмотров

SQL Server CE "module could not be found" Crash

We are getting following error message in one Windows XP - X86 Exception Source: System.Data.SqlServerCe Exception Type: System.DllNotFoundException Exception Message: Unable to load DLL 'sqlceme35.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E...