0
ответов

Что означает выравнивание стека?

Я был высокоуровневым кодировщиком, а архитектуры для меня довольно новы, поэтому я решил прочитать руководство на сборке здесь: http://en.wikibooks.org/wiki/X86_Assembly/Print_Version Внизу ...
вопрос задан: 1 February 2012 16:21
0
ответов

Нужна ли защита при использовании xchg

У меня есть набор и тестовая сборочная блокировка на основе xchg. мой вопрос: нужно ли нам использовать ограждение памяти (mfence, sfence или lfence) при использовании инструкции xchg? Изменить: 64-битная платформа: с Intel ...
вопрос задан: 27 January 2012 03:19
0
ответов

Почему компилятор генерирует этот код?

Я дизассемблировал объектный файл (скорее всего, сгенерированный с помощью компилятора Visual C ++) с помощью DumpBin и увидел следующий фрагмент кода: ... ... mov dword ptr [ebp-4], eax // Почему ...
вопрос задан: 25 January 2012 00:12
0
ответов

Смещение для селекторов объектного C в сборке ARM (IOS)

Я пытаюсь понять, как вызовы сообщений IOS objective-C реализованы на языке ассемблера ARM. Глядя на вывод дизассемблирования IDA, я вижу ссылки на классы и селекторы, помещенные в регистры ...
вопрос задан: 23 January 2012 19:23
0
ответов

Почему чтение изменчивого файла и запись в член поля не масштабируются в Java?

Обратите внимание на следующую программу, написанную на Java (далее следует полная исполняемая версия, но важная часть программы находится во фрагменте чуть дальше ниже): import java.util.ArrayList; / ** ...
вопрос задан: 20 January 2012 14:40
0
ответов

Подробнее о новых инструкциях AVR LAC, LAS, LAT и XCH

Если посмотреть на набор инструкций AVR, в 2010 г. добавлены четыре инструкции. Загрузка и очистка LAC. LAS загрузка и установка LAT загрузка и переключение Загрузка и обмен XCH. Кто-нибудь знает, какие микросхемы имеют эти ...
вопрос задан: 19 January 2012 10:04
0
ответов

Отладка программы C (сервер Redis)

Предпосылка Привет, я получил несколько отчетов от пользователя Redis, что произошел сбой сервера при использовании стабильной версии Redis (последняя версия, 2.4.6). Ошибка странная, так как пользователь не выполняет эзотерические ...
вопрос задан: 18 January 2012 14:54
0
ответов

Сохранение sreg в прерываниях AVR

Какой механизм используется для сохранения регистра состояния sreg в микроконтроллере AVR? RETI подразумевает, что этих битов нет в стеке. Является ли один из регистров общего назначения также sreg ...
вопрос задан: 17 January 2012 21:29
0
ответов

Реальный режим x86 ASM: как дела?

В настоящее время я читаю файл boot.s в исходном коде первого в истории ядра Linux (при условии, что 0.01 действительно является первым общедоступным выпуском). Я знаю C и ASM, последний значительно меньше, чем ...
вопрос задан: 17 January 2012 12:00
0
ответов

Good book to learn lower levels of computers [closed]

I'm very interested in CPU and RAM, but way beyond the normal level of interest. I'd like to learn how memory and cpu's work especial on x86 and x64 processors. I'm due to embark on an assembly ...
вопрос задан: 16 January 2012 19:36
0
ответов

g++ 4.6.1 ошибка компилятора: Error: unknown pseudo-op: `.cfi_personality'

У меня есть файл, который компилируется без ошибок и предупреждений на моем macbook pro под управлением osx (snow leopard) с использованием g++ (4.6.1). Я только что загрузил его на наш кластер linux (не управляемый мной) и попытался скомпилировать ...
вопрос задан: 15 January 2012 19:12
0
ответов

Почему компилятор генерирует пару инструкций push / pop?

Я скомпилировал приведенный ниже код с компилятором VC ++ 2010: __declspec (dllexport) беззнаковый int __cdecl __mm_getcsr (void) {return _mm_getcsr (); } и сгенерированный код был: push ECX stmxcsr [ESP] ...
вопрос задан: 14 January 2012 15:41
0
ответов

Почему сложные memcpy / memset superior?

При отладке я часто переходил к написанной вручную ассемблерной реализации memcpy и memset. Обычно они реализуются с использованием потоковых инструкций, если они доступны, цикл развернут, ...
вопрос задан: 13 January 2012 23:53
0
ответов

запретить встроенную сборку в g ++ (gcc) или clang (llvm) [дубликат]

Существуют сайты для решения проблем, такие как topcoder.com, SPOJ. Я бы хотел, чтобы для аналогичного варианта использования (люди присылают мне программные файлы C ++) некоторые ограничения. Один из них: «запрещено использовать встроенный ассемблер ..
вопрос задан: 13 January 2012 10:21
0
ответов

Ошибка программы формата файла Tiny Pe при работе в 64-разрядной версии Windows 7

Я пытаюсь запустить следующий код сборки (собранный с помощью Nasm) в 64-разрядной версии Windows 7 Ultimate. ; tiny.asm BITS 32; ; Заголовок MZ ; ; Единственные два поля, которые имеют значение, - это e_magic и e_lfanew ...
вопрос задан: 12 January 2012 21:29
0
ответов

Отображение каждой инструкции сборки, выполняемой в gdb

В настоящее время у меня есть сложная ошибка, которая возникает в месте, где у меня нет доступа к источнику или символам, т.е. я могу видеть инструкцию и ее адрес, где происходит сбой, но это все. Что я '...
вопрос задан: 12 January 2012 20:40
0
ответов

Заглушки символов Mach-O (IOS)

Я пытаюсь понять, как работают файлы Mach-o, и добился значительного прогресса с доступными онлайн-ресурсами (в частности, страница Apple здесь : http: //developer.apple.com/library/mac / # ...
вопрос задан: 11 January 2012 19:37
0
ответов

Как использовать глобальную переменную во встроенной сборке gcc

Я пытаюсь использовать встроенную сборку, подобную этой, для глобальной переменной, но компилятор выдает ошибку, говоря undefined ссылку на saved_sp. __asm__ __volatile__ ("movq saved_sp,% rsp \ n \ t" ...
вопрос задан: 10 January 2012 21:07
0
ответов

Почему встраивание компилятора производит более медленный код, чем встраивание вручную?

Общие сведения В следующем критическом цикле части числового программного обеспечения, написанного на C ++, в основном сравниваются два объекта по одному из их членов: for (int j = n; --j> 0;) asd [j% 16] = ae
вопрос задан: 8 January 2012 23:07
0
ответов

x86 IMUL результат правильный, почему?

MOV EAX, 0XB504F333 MOV ECX, 0XB504F333; EAX = B504F333; ECX = B504F333 IMUL ECX; РЕЗУЛЬТАТ = ----------------------------- -; EDX = 15F61998; неверно правильное значение ...
вопрос задан: 8 January 2012 10:23
0
ответов

Delphi assembler constant 'eof'

Похоже, что в контексте блока asm существует недокументированная константа eof. Это было проверено с помощью Delphi 7. программа TestEof; {$APPTYPE CONSOLE} var example : Integer; begin asm mov example, eof ...
вопрос задан: 2 January 2012 16:24
0
ответов

Как связать объектный файл C с языком ассемблера объектный файл?

У меня возникли проблемы с связыванием 2 объектных файлов, один из которых был сгенерирован из исходного файла языка ассемблера, а другой - из исходного файла C. Исходный код на C: //main2.c extern int ...
вопрос задан: 31 December 2011 23:57
0
ответов

Как перемещать 128-битные значения между регистрами XMM?

На первый взгляд тривиальная проблема при сборке: я хочу скопировать весь регистр XMM0 в XMM3. Я пробовал movdq xmm3, xmm0, но MOVDQ нельзя использовать для перемещения значений между двумя регистрами XMM. Что мне делать ...
вопрос задан: 29 December 2011 17:58
0
ответов

Деление в ассемблере и плавающая точка

mov eax, 0x01 mov ecx, 0x02 div ecx ; Делим AX/CX, сохраняем остаток в DX cmp dx, 0 je OddNumber int 80h Когда я пытаюсь разделить 1/2, вместо того, чтобы перейти к метке OddNumber, она ... ..
вопрос задан: 27 December 2011 20:53
0
ответов

Хорошие онлайн-ресурсы для изучения сборки x86 [закрыто]

Я наткнулся на множество онлайн-ресурсов о сборке x86. Однако перед тем как начать, я хочу получить отзывы от других. Есть ли какие-либо видеоресурсы, специально предназначенные для программирования на ассемблере x86? ...
вопрос задан: 25 December 2011 19:20
0
ответов

Что означает упорядоченное / неупорядоченное сравнение?

Рассмотрение операторов SSE CMPORDPS - упорядоченное сравнение упакованных одиночных игр CMPUNORDPS - неупорядоченный сравнить упакованные одиночные игры Что значит «упорядоченный» и «неупорядоченный»? Я искал эквивалентные инструкции в ...
вопрос задан: 25 December 2011 18:49
0
ответов

Написание сборки x86 на 64-разрядном процессоре

Например, я использую 64-разрядную версию Windows 7, но, похоже, все лучшие ресурсы для изучения сборки языки говорят о x86. Если написание x86 на x64 возможно, то как лучше всего ...
вопрос задан: 23 December 2011 23:11
0
ответов

Справка по преобразованию: __asm__ __volatile __

Я хотел бы перенести функцию outb из C на D. static __inline void outb (значение unsigned char, unsigned short int port) {__asm__ __volatile__ ("outb% b0,% w1": ...
вопрос задан: 23 December 2011 10:08
0
ответов

Где можно проверить прототипы syscalls на машинах x86-64?

То есть, как узнать, сколько параметров ожидает конкретный syscall, в каком регистре должен находиться каждый параметр, и, наконец, что означает каждый параметр? Есть ли команда man alike, чтобы сказать ...
вопрос задан: 22 December 2011 11:37
0
ответов

Получение циклов ЦП с помощью RDTSC - почему значение RDTSC всегда увеличивается?

Я хочу получить циклы ЦП в определенной точке. Я использую эту функцию в этот момент: static __inline__ unsigned long long rdtsc (void) {unsigned long long int x; __asm__ volatile (".byte 0x0f, ...
вопрос задан: 22 December 2011 10:45