Внутренние регистры процессора i8086. Ax, bx, cx, dx, флаговый регистр. Флаги состояния. Управляющие флаги.
Процессоры i8086 и i8088 имели 14-цать программно-доступных 16-тиразрядных регистров. (Последние модели CPU включают в свой состав регистры с разрядностью до 128 (256) бит, и общее количество регистров достаточно велико.)
Четыре регистра из 14-ти являются регистрами общего назначения. В основном они используются для выполнения операций над данными. Т.е. их содержимое можно складывать, вычитать, сравнивать, умножать друг на друга и т.д. К ним относятся:
AX – (X – сокращение от extended, т.е. расширенный).Наиболее часто используют как аккумулятор – место, где накапливают результаты вычислений. Многие команды занимают меньше места в ОП и выполняются быстрее, если один из операндов находится в регистре AX. Операции ввода/вывода осуществляют только через этот регистр.
-
AH
AL
AX
15 High 8
7 Low 0
BX – чаще всего хранит сегментную часть адреса, т.е. базовый (base), т.к. сегментная часть адреса указывает на начало некоторой области памяти и служит отправной точкой для дальнейшей адресации внутри этой области. Этот регистр можно использовать и для хранения данных другого рода.
-
BH
BL
BX
15 High 8
7 Low 0
CX – обычно используется как регистр счетчика (counter). В нем хранят число, показывающее, сколько раз должна быть повторена некоторая операция. Когда число повторений достигает заранее определенного значения, в программе происходит передача управления в другую точку. Счетчиком может быть любой РОН, но только с регистром CX необходимые сравнения и переход осуществляются за одну инструкцию.
-
CH
CL
CX
15 High 8
7 Low 0
DX – регистр данных (data). Иногда он используется для хранения адреса порта. Иногда используется в паре с регистром AX для хранения 32-разрядного числа, получающегося, например, при умножении 2-х 16-тиразрядных чисел. (AX и DX выступают в качестве неявных операндов в операциях умножения и деления).
-
DH
DL
DX
15 High 8
7 Low 0
Итак, AX, BX, CX, DX включают в группу регистров данных. Если инструкция оперирует только с одним байтом данных, то этот байт может находиться в любой половине регистра данных, при этом содержимое второй половины после выполнения инструкции не изменяется. Когда требуется обратиться к одной из 8-миразрядных частей регистра, то младшие (правые) именуют AL, BL, CL, DL, а старшие (левые) AH, BH, CH, DH.
Регистр флагов ( flags register ).
Этот регистр эквивалентен регистру слова состояния процессора других вычислительных систем. Этот регистр содержит информацию о текущем состоянии процессора. Рассматривают его не как единое целое, а как набор 16-ти отдельных битов, каждый из которых указывает на определенный факт. Он включает 6 флагов состояний и 3 флага управления состоянием CPU.
После выполнения очередной команды процессором все биты – флаги заново устанавливаются. По этим флагам можно судить о результате выполнения операции.
|
|
|
|
OF |
DF |
IF |
TF |
SF |
ZF |
|
AF |
|
PF |
|
CF |
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0