01. Регистры общего назначения - mRrvz/bmstu-asm GitHub Wiki
Регистры общего назначения
Регистры — специальные ячейки памяти, находящиеся физически внутри процессора, доступ к которым осуществляется не по адресам, а по именам. Поэтому, работают очень быстро.
Существуют регистры, которые могут использоваться без ограничений, для любых целей — регистры общего назначения.
В 8086 регистры 16 битные.
При использовании регистров общего назначения, можно обратится к каждым 8 битам (байту) по-отдельности, используя вместо *X - *H или *L (например, для AX: AH и AL)
AX (аккумулятор)
Регистр часто используется для хранения результата действий, выполняемых над двумя операндами. Например, используется при MUL и DIV (умножение и деление)
Верхние 8 бит (1 байт) — AH
Нижниие 8 бит (1 байт) — AL
BX (база)
Используется для адресации по базе.
Верхние 8 бит (1 байт) — BH
Нижние 8 бит (1 байт) — BL
CX (счётчик)
Используется как счётчик в циклах и строковых операциях.
Верхние 8 бит (1 байт) — CH
Нижние 8 бит (1 байт) — CL
DX (регистр данных)
Если при выполнении действий над двумя операндами, реузльтат не помещается в AX, регистр DX получает старшую часть результата.
Верхние 8 бит (1 байт) — DH
Нижние 8 бит (1 байт) — DL
Этот регистр получает старшую часть данных,
SI (индекс источника) и DI (индекс приемника)
Ещё есть два этих регистра, они называются индексными, то есть используются для индексации в массивах / матрицах и т.д. (другие регистры (кроме BX и BP) не будут там работать (на 8086)).
Могут использоваться в большинстве команд, как регистры общего назначения.
В этих регистрах нельзя обратится к каждому из байтов по-отдельности