Результаты поиска по запросу "assembly"

3 ответа

Почему _exit (0) (выход из syscall) не позволяет мне получать содержимое stdout?

У меня есть программа сборки Linux x86-32 GAS, которая завершается следующим образом: movl $1, %eax movl $0, %ebx # argument for _exit int $0x80Когда я выхожу так, программа работает как обычно, но если я пытаюсь прочитать вывод stdout, я ничего ...

1 ответ

Почему векторизация дерева делает этот алгоритм сортировки в 2 раза медленнее?

Алгоритм сортировкиэтот вопрос [https://stackoverflow.com/q/21050130/341970] становится в два раза быстрее (!), если-fprofile-arcs включен в gcc (4.7.2). Сильно упрощенный C-код этого вопроса (оказалось, что я могу инициализировать массив со ...

1 ответ

Как может eax хранить возвращаемое значение, размер которого превышает 4 байта?

EAX используется для хранения возвращаемого значения функции в 32-битной платформе, мне просто интересно, если размер возвращаемого значения функции превышает 4 байта, как eax справляется с этим? В этом случае ОС может сохранить возвращаемое ...

ТОП публикаций

1 ответ

Получение исключения с плавающей точкой при попытке использовать div в сборке

Я пытаюсь запустить следующий код в сборке: mov %si, %ax mov $15, %si div %si mov %eax, %esiКогда я создаю свою программу, она компилируется, но во время выполнения она дает мне исключение с плавающей запятой. Я попытался заменить параметры ...

10 ответов

Как выглядит многоядерный язык ассемблера?

Когда-то, например, для написания ассемблера x86 вы должны были получить инструкции, в которых «загружать регистр EDX значением 5», «увеличивать регистр EDX» и т. Д. С современными процессорами, которые имеют 4 ядра (или даже больше), на ...

5 ответов

Как использовать AVX / pclmulqdq в Mac OS X

Я пытаюсь скомпилировать программу, которая использует инструкцию pclmulqdq, присутствующую в новых процессорах Intel. Я установил GCC 4.6, используя macports, но когда я компилирую свою программу (которая использует ...

0 ответов

Почему создаются инструкции AND?

Для кода, такого как этот: int res = 0; for (int i = 0; i < 32; i++) { res += 1 << i; }Этот код генерируется (режим выпуска, отладчик не подключен, 64 бита): xor edx,edx mov r8d,1 _loop: lea ecx,[r8-1] and ecx,1Fh ; why? mov eax,1 shl eax,cl ...

1 ответ

Как начать писать собственную мобильную ОС для процессоров ARM?

Я заинтересован в создании собственной мобильной ОС. Я читал, что существующие мобильные ОС работают на процессорах ARM и используют их язык ассемблера, а настольные ОС, такие как Linux и Windows, написаны на ассемблере. С, кажется, язык, общий ...

6 ответов

Современная x86 модель стоимости

Я пишу JIT-компилятор с бэкэндом x86 и изучаю ассемблер x86 и машинный код на ходу. Я использовал ARM ассемблер около 20 лет назад, и меня удивляет разница в стоимости моделей между этими архитектурами. В частности, доступ к памяти и ответвления ...

1 ответ

Правильно ли указан этот код (число плюс число, затем напечатайте результат)

Я хочу сделать что-то простое на языке ассемблера. сложите два числа и напечатайте результат на экране. Я сделал этот код: .Model SMALL .Stack 100h .Code start: MOV ax, 10 ADD ax, 5 MOV ah, 02h INT 21h MOV ah, 01h INT 21h MOV ah, 4ch INT 21h ...