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

2 ответа

Как вызвать системный вызов через sysenter во встроенной сборке?

Как мы можем реализовать системный вызов, используя sysenter / syscall непосредственно в x86 Linux? Кто-нибудь может оказать помощь? Было бы еще лучше, если бы вы также могли показать код для платформы amd64. Я знаю, в x86, мы можем ...

3 ответа

Самый быстрый способ сделать горизонтальную векторную сумму с помощью инструкций AVX [дубликат]

На этот вопрос уже есть ответ здесь: Получить сумму значений, хранящихся в __m256d с помощью SSE / AVX [/questions/49941645/get-sum-of-values-stored-in-m256d-with-sse-avx] 2 ответаУ меня есть упакованный вектор из четырех 64-битных значений с ...

1 ответ

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

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

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

10 ответов

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

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

6 ответов

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

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

5 ответов

Как получить код для выполнения шестнадцатеричного байт-кода?

Я хочу, чтобы простой метод C мог запускать шестнадцатеричный байт-код на 64-битной машине Linux. Вот программа на C, которая у меня есть: char code[] = "\x48\x31\xc0"; #include <stdio.h> int main(int argc, char **argv) { int (*func) (); func = ...

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 ...

2 ответа

Прыжок ассемблера в защищенном режиме с помощью GDT

В настоящее время я играю с x86 Assember, чтобы улучшить свои навыки программирования на низком уровне. В настоящее время я сталкиваюсь с небольшой проблемой со схемой адресации в 32-битном защищенном режиме. Ситуация следующая: У меня есть ...

1 ответ

ассемблер x86 для умножения и деления ассемблера, 16-битный и выше

Я довольно озадачен тем, как работают операции умножения и деления в сборке x86. Например, приведенный ниже код не кажется слишком сложным, поскольку имеет дело с 8-битным. 8-битное умножение: ; User Input: ; [num1], 20 ; [num2] , 15 mov ax, ...

1 ответ

Как вывести число на экран и так и спать одну секунду со сборкой DOS x86?

Я использую NASM 16 бит. Я пытаюсь сделать простой ассемблерный код, который печатает числа от 0 до 255 с интервалом в 1 секунду между каждым числом. Это то, что я до сих пор: [bits 16] mov ax,cs mov ds,ax mov cx,255 mov ax,0 myloop: ;print in ...