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

1 ответ

Ссылка на содержимое ячейки памяти. (режимы адресации x86)

У меня есть место в памяти, содержащее символ, который я хочу сравнить с другим символом (и он не на вершине стека, поэтому я не могу простоpop Это). Как мне сослаться на содержимое ячейки памяти, чтобы я мог ее сравнить? В основном, как мне ...

20 ответов

Как я могу собрать небольшую операционную систему на старом настольном компьютере? [закрыто

Это может быть напрасно, так как я знаю, что написание операционной системы невыносимо сложно (особенно для него самого). Я не собираюсь строить следующий Linux или Windows. Я знаю, это будет ужасно, с ошибками и не сработает, но это ...

2 ответа

llvm сообщает: неподдерживаемый встроенный asm: ввод с типом 'void *', совпадающий с выводом с типом 'int'

У меня есть следующий встроенный код сборки: int get_year(int a, int *b, char * c) { int ret, t1, t2; asm ( "addl %3, %[a] \n\t" "movl %[a], %[t1] \n\t" "movl $58, %%edx \n\t" "movb %%dl, 0x04(%1) \n\t" : [t1] "=r" (t1), "=&D" (t2) : [a] "r" ...

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

2 ответа

Почему параметры хранятся в регистрах, а не в стеке в сборке x86-64?

В сборке x86-32 параметры хранятся в стеке, но в x86-64 параметры сохраняются в регистрах. Что является причиной этого

1 ответ

Блокирует манипулирование памятью с помощью встроенной сборки

Я новичок в низкоуровневых вещах, поэтому совершенно не понимаю, с какими проблемами вы можете столкнуться там, и я даже не уверен, правильно ли я понимаю термин «атомарный». Прямо сейчас я пытаюсь сделать простые атомарные блокировки вокруг ...

4 ответа

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

У тебя есть вектор из трех (или четырех) поплавков. Какой самый быстрый способ их сложить? SSE (movaps, shuffle, add, movd) всегда быстрее, чем x87? Стоят ли инструкции горизонтального добавления в SSE4.2? Сколько стоит перейти на FPU, затем ...

1 ответ

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

Я изучаю компьютерную архитектуру из Руководства Intel. Я понимаю, что инструкции, которые мы даем, являются логическими адресами, которые состоят из селектора сегмента и смещения. Это в основномCS register<<4 + offset.Segment Selector ...

2 ответа

Корень куба на x87 FPU с использованием метода Ньютона-Рафсона

Я пытаюсь написать программу сборки с использованием процессора 8086, которая найдет корень куба числа. Очевидно, я использую плавающие точки. Алгоритм, основанный на Метод ...

1 ответ

x86_64: IMUL быстрее, чем 2x SHL + 2x ADD?

Когда вы смотрите на сборку, созданную Visual Studio (2015U2) в/O2 режиме @ (релиз) я увидел, что этот «оптимизированный вручную» фрагмент кода C переводится обратно в умножение: int64_t calc(int64_t a) { return (a << 6) + (a << 16) - a; ...

3 ответа

80x86 16-битный asm: lea cx, [cx * 8 + cx] вызывает ошибку на NASM (компиляция файла .com)

Ошибка, которую выдает NASM (несмотря на мою работающую ОС), - «неверный эффективный адрес». Теперь я видел много примеров того, как использовать LEA, и я думаю, что понял это правильно, но мой NASM не любит это. Я пыталсяlea cx, [cx+9] и ...