0
ответов

Загрузка ПК :dl регистр и номер диска

Где-то в инете читал, что перед переходом на 0x7c00 BIOS загружает в %dl "номер диска" загружаемого устройства. Но что это за «номер диска»? Каждое устройство, подключенное к компьютеру...
вопрос задан: 24 June 2012 01:44
0
ответов

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

У меня следующие вопросы относительно относительных переходов: Я так понимаю, что JMP SHORT будет переходить на байт относительно текущего ПК. Это правильно? Это...
вопрос задан: 22 June 2012 17:14
0
ответов

Почему хуже инициализировать такой двумерный массив?

for(int i = 0; i<100; i++) for(int j = 0; j<100; j++) array[j][i] = 0; // array[i][j] = 0; Мой профессор сказал, что гораздо дороже инициализировать двумерное...
вопрос задан: 22 June 2012 00:13
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
ответов

Как отключить встроенный ассемблер LLVM?

У меня есть проект, связанный с написанным вручную -ассемблером — синтаксис AT&T, отлично работает с GCC, но я не делал этого, к тому же я очень мало знаю о ассемблере — который обнаруживает странную проблему при попытке его сборки…
вопрос задан: 20 June 2012 11:49
0
ответов

Сегментированная память против плоской памяти

Я просто не понимаю. Любое руководство слишком техническое. Что такое плоская и сегментированная память? Способы адресации памяти, способы организации байтов в памяти? Какой из них лучше всего подходит для 32-битных компьютеров? Может...
вопрос задан: 17 June 2012 19:16
0
ответов

Значение регистра выходных данных в NASM

новый парень здесь, и у меня уже есть вопрос. Я адаптирую пример кода, используемый в книгах по сборке Джеффа Дунтеманна, и я хочу распечатать целочисленное значение, хранящееся в регистре данных, на терминал? Что...
вопрос задан: 17 June 2012 10:18
0
ответов

Dillema с переполнением буфера

Я играю с одним примером переполнения стека. Этот пример выглядит так: void return_input (void){ char array[30]; получает (массив); printf("%s\n", массив); } main() { ...
вопрос задан: 17 June 2012 07:43
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
ответов

Код Delphi/ASM несовместим с 64-битной системой?

У меня есть образец исходного кода для OpenGL, я хотел скомпилировать 64-битную версию (используя Delphi XE2), но есть код ASM, который не компилируется, а я ничего не знаю об ASM. Вот код ниже, ...
вопрос задан: 13 June 2012 06:35
0
ответов

В чем разница между безусловным переходом и безусловным переходом (инструкции в MIPS)?

Вы можете посмотреть Википедию или краткое изложение для студентов. Все говорят, что есть две инструкции для одного и того же. Но никто не говорит, почему?
вопрос задан: 11 June 2012 13:59
0
ответов

Какова задержка и пропускная способность инструкции RDRAND на Ivy Bridge?

Я не могу найти никакой информации на agner.org о задержке или пропускной способности инструкции RDRAND. Однако этот процессор существует, поэтому информация должна быть там. Изменить: На самом деле самый новый ...
вопрос задан: 10 June 2012 16:23
0
ответов

ASM-функция из встроенного C ARM

Я использую STM32F4 и пытаюсь написать ASM-функцию, вызываемую изнутри C. Функция должна вызываться внутри функции C, которая также находится в прерывании. Я толкаю и выталкиваю r4-r7. Делайте...
вопрос задан: 10 June 2012 02:35
0
ответов

Что эквивалентно регистру BP (указатель кадра) на процессорах ARM?

На платформах Intel BP используется для указания на начало кадра стека и для доступа к аргументам [bp+0x??] и локальным переменным [bp-0x??]. Какой регистр используется в ARM? Или адресация...
вопрос задан: 7 June 2012 09:15
0
ответов

На большинстве современных 64-битных процессоров скорость `mulq` зависит от операндов?

На большинстве современных 64-разрядных процессорах (таких как Intel Core 2 Duo или Intel серии i7) зависит ли скорость выполнения команды x86_64 mulq и ее вариантов от операндов? Например, умножение 11 * ...
вопрос задан: 5 June 2012 19:49
0
ответов

Быстрое пересечение двух отсортированных целочисленных массивов

Мне нужно найти пересечение двух отсортированных целочисленных массивов и сделать это очень быстро. Прямо сейчас я использую следующий код: int i = 0, j = 0; в то время как (i < arr1.Count && j < arr2.Count) ...
вопрос задан: 3 June 2012 00:16
0
ответов

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

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

Что означает EBP+8 в данном случае в OllyDbg и ассемблере?

Я только изучаю ассемблер и навыки отладки в OllyDbg, чтобы научиться использовать недокументированные функции. Теперь у меня возникла следующая проблема: у меня есть следующая часть кода (от OllyDbg): ...
вопрос задан: 2 June 2012 10:21
0
ответов

как преобразовать два байта в одно 16-битное число?

Насколько я понимаю, 1 байт будет содержать число от 0 до 255. И что 16-битное число находится в диапазоне 0-65535. Если я пытаюсь представить 16-битное число с помощью двух отдельных 8-битных регистров... как мне это сделать? ...
вопрос задан: 1 June 2012 16:58
0
ответов

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

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

Операторы int != и == при сравнении с нулем

Я обнаружил, что != и == не самые быстрые способы проверки нуля или не нуля. bool nonZero1 = целое число != 0; xor eax, eax тест еккс, еккс setne al bool nonZero2 = integer < 0 || целое число > ...
вопрос задан: 31 May 2012 19:26
0
ответов

Безопасность сборки

В настоящее время я предлагаю услугу компиляции сборки для некоторых людей. Они могут ввести свой ассемблерный код в онлайн-редактор и скомпилировать его. Когда затем компилируется, код отправляется на мой сервер с ...
вопрос задан: 30 May 2012 16:44
0
ответов

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

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

Заставить GCC использовать повторный префикс в вызове memset()

Я разрабатываю приложение, производительность которого критична. Я хочу, чтобы GCC переводил некоторые конкретные вызовы memset() как инструкцию с повторным префиксом, например "rep stos QWORD PTR es:[rdi],rax". GCC ...
вопрос задан: 29 May 2012 17:33
0
ответов

Переполнение буфера - программа завершает работу после запуска оболочки

Я экспериментировал с переполнением буфера в системе FreeBSD. В качестве первого эксперимента я попытался заставить эксплуатируемую программу запустить другой процесс (в данном случае /bin/hostname). Вот и все...
вопрос задан: 26 May 2012 14:27
0
ответов

Как скомпилировать ассемблерный код JVM в байт-код?

Если бы я запустил javap -c ASM.class > ASM.java получить ассемблерный код,как я перекомпилирую это обратно в байт-код JVM?
вопрос задан: 26 May 2012 03:05
0
ответов

Зачем gcc movl в тот же регистр?

Для этого фрагмента кода C: uint64_t roundUp(uint64_t value, uint32_t blockSize) { return (value + blockSize - 1) & ~(blockSize - 1); } gcc 4.6 -O3 сгенерировал следующую сборку: roundUp(...
вопрос задан: 25 May 2012 08:39
0
ответов

Выберите уникальную/дедупликацию в SSE/AVX

Проблема Существуют ли какие-либо вычислительно осуществимые подходы к внутрирегистративной дедупликации набора целых чисел с использованием инструкций simD x86? Пример У нас есть 4-кортежный регистр R1 = {3,9, 2, 9} и ...
вопрос задан: 25 May 2012 07:54
0
ответов

присвоение нуля по сравнению с xor, действительно ли второе быстрее?

кто-то показал мне несколько лет назад следующую команду для обнуления переменной. xor i, i Он сказал мне, что это быстрее, чем просто присвоить ему ноль. Это правда? Производят ли компиляторы оптимизацию, чтобы получить ...
вопрос задан: 23 May 2012 15:01