Другие языки программирования и технологии

Чем различаются регистры и откуда эти их названия??

Почему они называются al, dx и т. д. ? От чего образованы эти сокращения? И можно ли брать сразу самые длинные регистры (чтобы число стопудово влезло в ячейку) или же это будет неоптимально?
eax/ax/ah/al (Accumulator register) — аккумулятор.
Применяется для хранения промежуточных данных. В некоторых командах использование этого регистра обязательно;
ebx/bx/bh/bl (Base register) — базовый регистр.
Применяется для хранения базового адреса некоторого объекта в памяти;
ecx/cx/ch/cl (Count register) — регистр-счетчик.
Применяется в командах, производящих некоторые повторяющиеся действия. Его использование зачастую неявно и скрыто в алгоритме работы соответствующей команды.
К примеру, команда организации цикла loop кроме передачи управления команде, находящейся по некоторому адресу, анализирует и уменьшает на единицу значение регистра ecx/cx;
edx/dx/dh/dl (Data register) — регистр данных.
Так же, как и регистр eax/ax/ah/al, он хранит промежуточные данные. В некоторых командах его использование обязательно; для некоторых команд это происходит неявно.
Сакен Митис
Сакен Митис
3 571
Лучший ответ
1) какая разница? о_О Никогда не задавался таким вопросом.. .
2) Можно. Это будет не оптимально.
Евгений Югай
Евгений Югай
15 097
Сейчас в архитектуре интеловских микропроцессоров используются
16 целочисленных 64-битных регистров (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8...R15),
8 80-битных регистров с плавающей точкой (ST0...ST7),
8 64-битных регистров Multimedia Extensions (MM0...MM7, совмещены с регистрами ST0...ST7),
16 128-битных регистров SSE (XMM0...XMM15),
1 64-битный счетчик команд RIP,
1 64-битный регистр флагов RFLAGS.
На самом деле регистров в микропроцессоре несколько сотен, но программисту видны только эти.
Ну, а у 64 битного RAX нижняя 32 битная часть называется и может использоваться отдельно как EAX, его 16-битная нижняя часть называется AX, его 8-битная нижняя часть называется AL (Akkumulator Low); а 8-битная часть выше ее - AH (Akkumulator High) и т. п.
тут на картинке есть и ответ) a: accumulate, b: base, c: count, d: data, а h и l это старшая и младшая части соответственно