Как на самом деле работает запись в регистр процессора? - PullRequest
1 голос
/ 29 августа 2011

При записи в регистр, скажем, как mov ax, 1, он перезаписывает значение, которое могло иметь раньше.

Теперь меня интересует то, как большие цифры / строки можно вводить в регистр,и что может другое приложение перезаписать значения регистра моего приложения?Я имею в виду, являются ли регистры общими для процессов или они получают свои собственные песочницы / виртуальные регистры?

Я интересуюсь процессорами Intel x86 (-64) Core и Windows.

Ответы [ 2 ]

2 голосов
/ 29 августа 2011

1) Размер регистров зависит (в определенных формах) от того, какие имена вы используете для них.Например, eax имеет ширину 32 бита, ax составляет 16 бит, а ah / al - 8 бит.Если вы работаете в 64-битной системе, rax имеет ширину 64 бита.

Точные пределы этих размеров регистров будут в некоторой степени зависеть от того, как вы интерпретируете значения (в частности, если выотноситься к ним как к подписанному или неподписанному).Размер - это то, что принципиально важно.

2) Ядро операционной системы будет сохранять регистры вашего процесса, пока другие процессы или ядро ​​работают.Регистры принимают другие значения, пока вы не работаете, но все это прозрачно - пока ваш процесс работает, регистры не изменятся из-под вас.

2 голосов
/ 29 августа 2011

Одновременно планируется только один поток на одном ядре.Суть в том, что есть регистры.

Когда запланирован новый поток, регистры сначала сохраняются, а ранее сохраненные регистры потока восстанавливаются.Это включает регистр счетчика программ, который указывает на следующую команду для выполнения.


Регистры (из памяти):

AX, BX, CX, DX - 16 бит, разбитые набайты (AH, AL, BH, BL) SI, DI, SP и BP также 16 бит

EAX, EBX, ECX и т. д. являются 32 битами

Я не уверен, что ониВызов на 64-битной системе.Я думаю, что видел RAX, но я не уверен.

Есть также регистры специального назначения, регистры с плавающей запятой и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...