Почему регистры x86 названы так, как они есть? - PullRequest
22 голосов
/ 21 мая 2009

Например, аккумулятор называется EAX и, в то время как указатель инструкции называется IP. Я также знаю, что есть байты с именами CL и DH. Я знаю, что должно быть соглашение для всех имен, но что это?

Ответы [ 5 ]

23 голосов
/ 21 мая 2009

C и D являются числами / типами и H для старшего и L для младшего разряда старшего регистра. http://en.wikipedia.org/wiki/X86

Википедия объясняет это очень хорошо.

Больше из Википедии:

  1. AX / EAX / RAX: аккумулятор
  2. BX / EBX / RBX: база
  3. CX / ECX / RCX: счетчик
  4. DX / EDX / RDX: данные / общее
19 голосов
/ 21 мая 2009

Что-то, что я нашел

* EAX - Accumulator Register
* EBX - Base Register
* ECX - Counter Register
* EDX - Data Register
* ESI - Source Index
* EDI - Destination Index
* EBP - Base Pointer
* ESP - Stack Pointer
17 голосов
/ 21 мая 2009

Это история. X86 пришел от 8086, который пришел от 8080, который пришел от 8008, который пришел от 4004. Были 16-битные регистры AX, BX и т. Д., А для 80386 они были «расширены» до 32 бит.

Добавлено: Кстати, Motorola 68K с самого начала имел 32-битные регистры, поэтому программирование в первые пару десятилетий было намного проще. Я работал над проектами, в которых Intel была выбрана не по техническим причинам, а по техническим причинам.

5 голосов
/ 21 мая 2009
3 голосов
/ 21 мая 2009

старых процессоров имеют аккумуляторы с именами A, B и т. Д. (В алфавитном порядке). Когда были разработаны 16- и 32-разрядные аккумуляторы, инженеры добавили X (расширенный). Так что все дело в истории, так как язык C назван так, потому что он был разработан на языке B (Bell labs).

Соглашение только внутреннее, чтобы не отставать от имен, с которыми они уже знакомы.

...