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)).

Могут использоваться в большинстве команд, как регистры общего назначения.

В этих регистрах нельзя обратится к каждому из байтов по-отдельности