Вопросы по теме 'cpu-registers'

Windows: избегайте загрузки полного контекста x86 в стек
Я реализовал PARLANSE , язык под MS Windows, который использует стеки кактусов для реализации параллельные программы. Фрагменты стека выделяются для каждой функции и имеют просто размер, подходящий для обработки локальных переменных, временных...
1633 просмотров

Есть ли способ сохранить часть 16-битного значения в 8-битной переменной в сборке?
Я создал одну переменную, в которой хранится 16-битная переменная, и я пытаюсь сохранить верхнюю половину в 8-битной переменной. Как мне это сделать? РЕДАКТИРОВАТЬ: это для IA-32, и я не думаю, что смогу использовать регистры EDIT2: мне...
411 просмотров
schedule 03.02.2023

Использование регистра ЦП C++
В C++ локальные переменные всегда размещаются в стеке. Стек — это часть разрешенной памяти, которую может занимать ваше приложение. Эта память хранится в вашей оперативной памяти (если не выгружается на диск). Всегда ли компилятор C++ создает...
4572 просмотров

Что такое HI и LO в MIPS
Я читаю о делении в MIPS и нашел этот div Делит $s на $t и сохраняет частное в $LO, а остаток в $HI. https://web.archive.org/web/20201111203150/http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html А Википедия говорит HI и LO...
80563 просмотров
schedule 29.05.2023

Сборка: Почему мы заморачиваемся с регистрами?
У меня принципиальный вопрос по сборке. Почему мы стараемся выполнять арифметические операции только с регистрами, если они могут работать и с памятью? Например, обе из следующих причин (по сути) вызывают в качестве ответа одно и то же значение:...
1539 просмотров

регистры сборки новичок
Так что в последнее время я немного занимаюсь сборкой, и я новичок, поэтому мне было интересно, может ли кто-нибудь что-то прояснить. Я так понимаю, у каждого процесса есть собственный набор регистров, и каждый поток может изменять эти регистры,...
1244 просмотров
schedule 08.07.2023

Как мы можем получить имя функции из Spack Pointer (reg/SP) в Linux?
Я использую ptrace для получения информации о стеке вызовов в Linux. я могу получить указатель Spack на свой стек, используя регистр, возвращаемый ptarces. но, используя этот указатель стека, как я могу получить информацию, связанную с именем...
1224 просмотров
schedule 01.03.2023

Как компьютер использует всего несколько регистров?
Я немного разбираюсь в ассемблере и знаю, что существует 4 или 8 или около того регистров общего назначения. Как все программы на компьютере работают с таким количеством регистров, особенно с многопоточностью и всем остальным?
1364 просмотров
schedule 05.11.2022

Почему нельзя сделать регистровые переменные глобальными?
При чтении с сайта прочитал, что нельзя сделать глобальную переменную типа register. Почему это так? источник: http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=/com.ibm.xlcpp8l.doc/language/ref/regdef.htm
10376 просмотров

Почему регистры ЦП быстро доступны?
Регистровые переменные — известный способ получить быстрый доступ ( register int i ). Но почему регистры находятся на вершине иерархии (регистры, кэш, основная память, вторичная память)? Что же делает доступ к регистрам таким быстрым?
14947 просмотров
schedule 29.10.2022

ARM NEON: В чем разница между vld4_f32 и vld4q_f32?
Я не могу понять разницу между vld4_f32 и vld4q_f32 в инструкциях ARM NEON. Путаница началась, когда я поднял свой уровень кодирования и начал смотреть на инструкции по сборке, а не на менее информативные встроенные функции. Причина, по...
3626 просмотров
schedule 29.11.2022

Регистры общего назначения
Я новичок в компьютерной архитектуре. Может ли кто-нибудь помочь мне понять использование ограниченных регистров при обработке нескольких сложных приложений. Мой вопрос в том, что существует фиксированное количество регистров (например: 80386...
845 просмотров
schedule 09.03.2023

Оптимизация компилятором параметров функций
Параметры функции помещаются в стек, но компиляторы могут оптимизировать эту задачу, используя необязательные регистры. Имеет смысл, что эта оптимизация сработает, если есть только 1-2 параметра, а не когда их 256 (не то, чтобы хотелось иметь...
1270 просмотров
schedule 08.11.2022

Если регистры работают так молниеносно, почему бы нам не увеличить их количество?
В 32-битной версии у нас было 8 регистров «общего назначения». В 64-битной системе количество удваивается, но кажется, что оно не зависит от самого 64-битного изменения. Теперь, если регистры такие быстрые (нет доступа к памяти), почему их...
8209 просмотров

Как регистры быстро хранят и извлекают данные при переключении контекста?
Регистры - это самый быстрый тип памяти. При переключении контекста регистры должны где-то сохранять свои данные, а затем загружать нужные данные в регистры для этого конкретного контекста. Это может быть медленным процессом, если регистры не хранят...
1837 просмотров
schedule 27.05.2022

Процессор и память (значение, регистр)
Когда значение копируется из одного регистра в другой, что происходит со значением в исходном регистре? Что происходит со значением в регистре назначения.
858 просмотров

запись с плавающей запятой в 4-байтовый регистр
У меня есть число с плавающей запятой, и мне нужно сохранить его в 4-байтовом регистре. Однако, когда я выполняю операцию, как показано ниже, я не получаю правильное значение, поскольку оно повреждено как 0x0000C000. typedef float FLT; FLT val ,...
202 просмотров
schedule 13.02.2024

NASM — размещение 8 бит данных в определенном месте 32-битного регистра.
Предположим, у меня есть 8-битные данные в регистре bl, и я хочу поместить их в крайние правые 8 битов eax. Есть ли способ сделать это напрямую? Я предполагаю, что ответ очень прост, я просто не нашел его. Очевидно, я мог бы просто умножить ebx...
303 просмотров
schedule 01.08.2022

значения инструкции mov с скобками [] вокруг исходного регистра или без них в nasm
Я немного подзабыл на сборке. Я хочу задать вам, ребята, несколько вопросов. Действительны ли эти инструкции по сборке в NASM? Каковы различия и когда мы должны их использовать? mov EAX, EBX vs mov EAX, [EBX]
4810 просмотров
schedule 09.04.2022

Должен ли я помещать данные в стек, использовать регистр или переменную?
Мне нужно сохранить значение регистра (а именно [ar]ax). Оно модифицируется после вызова функции, но значение необходимо использовать позже. Я подумал о трех способах сделать это (примеры на 64-битной версии): 1. Вставьте его в стек: __asm__...
227 просмотров