Как регистр может иметь адрес? - PullRequest
3 голосов
/ 05 сентября 2011

Согласно книге, регистр - это место в CPU с небольшим объемом памяти (например, 16 бит на 16 бит CPU). Итак, как регистр процессора имеет адрес? И как мы можем добавить смещение, если оно не в памяти, а на процессоре?

Пример для:

mov ax, [bx+1000h]

Ответы [ 2 ]

6 голосов
/ 05 сентября 2011

x86 Регистры адресуются только по имени.Выражение bx+1000h просто означает «значение в регистре bx плюс 1000h», и результат интерпретируется как адрес в памяти (через нотацию [...]), а не в некотором пространстве регистров.

ОбщееИнтерпретация выражения такова: «Загрузите в ax 16-разрядные биты, расположенные через 1000h байтов после того, как адрес bx указывает на.»

0 голосов
/ 05 сентября 2011

Это делается путем интерпретации содержимого из bx как адреса, а затем смещения его со смещением.

Так что если bx равно 1000h, то содержимое ax будет храниться в ячейке памяти 2000h

...