На рисунке ниже представлены регистры процессора 8086. Такие же самые регистры имеются во всех старших моделях процессоров - 286, 386, 486 и Pentium (хотя старшие процессоры имеют дополнительные регистры и расширения). Если использовать при написании программ только эти регистры, то программы (по идее) будут исполнятся на всех компьютерах с Intel совместимыми процессорами.
- Регистры общего назначения (ax, bx, cx, dx)
- Регистровые указатели и индексные регистры (sp, bp, si, di)
- Сегментные регистры (cs, ds, ss, es)
- Регистр командного указателя (ip)
- Регистр флагов
Регистры общего назначения — это регистры данных, каждый из которых помимо хранения операндов и результатов операций имеет еще и свое специфическое назначение:
- регистр AX (accumulator) — умножение, деление, обмен с устройствами ввода/вывода (команды ввода и вывода);
- регистр BX (base) — базовый регистр в вычислениях адреса, часто указывает на начальный адрес (называемый базой) структуры в памяти;
- регистр CX (count) — счетчик циклов, определяет количество повторов некоторой оперции;
- регистр DX (data) — определение адреса ввода/вывода, так же может содержать данные, передаваемые для обработки в подпрограммы.
Регистровые указатели и индексные регистры тесно связаны с определенными операциями.
Регистровые указатели SP и BP обеспечивают доступ к данным в сегменте стека.
- регистр SP (Stack Pointer) – всегда указывает на вершину стека, позволяет временно хранить адреса и иногда данные;
- регистр BP (Base Pointer) – обычно адресует переменные, хранимые в стеке, облегчает доступ к параметрам (данным и адресам), переданным через стек.
- регистр SI (Source Index) – является индексом источника и применяется для некоторых операций над строками (обычно связан с регистром DS);
- регистр DI (Destination Index) – является индексом назначения и применяется так же для строковых операций (обычно связан с регистром ES).

Программа может распределять более четырех сегментов, но при этом для адресации дополнительных сегментов она должна перемещать, соответствующие им правильные значения адресов между одним или несколькими сегментными регистрами. Сегментные регистры строго специализированны. С помощью них нет возможности выполнять математические вычисления или хранить в них результаты других операций. Действительный порядок сегментов не обязательно совпадает с порядком, показанным на рисунке. Сегменты могут в любом порядке храниться в произвольных местах памяти.
- регистр CS (Code Segment) – содержит начальный адрес сегмента когда (начало машинного кода программы). Этот адрес плюс значение смещения в командном указателе (IP) определяет адрес команды, которая должна быть выбрана для выполнения;
- регистр DS (Data Segment) – содержит начальный адрес сегмента данных (переменных, строк и т.п. данных, которыми оперирует программа);
- регистр SS (Stack Segment) – содержит начальный адрес сегмента стека;
- регистр ES (Extra Segment) – является вспомогательным регистром, используется при некоторых операциях над строками. В большинстве программ в ES и DS содержатся одинаковые адреса, но он может упрощать некоторые операции связанные с этими регистрами.
Регистр флагов так же состоит из 16 бит, из них используются только 9.

CF (Carry Flag) — флаг переноса при арифметических операциях. Содержит перенос из старшего бита после арифметических операций, а так же последний бит при сдвигах или циклических сдвигах.
PF (Parity Flag) — флаг четности результата, показывает четность младших восьмибитовых данных (1 – четное, 0 – нечетное).
AF (Auxiliary Flag) — флаг дополнительного переноса. Содержит перенос из 3 бита для 8-битовых данных, используется для специальных арифметических операций.
ZF (Zero Flag) — флаг нулевого результата. Показывает результат арифметических операций и операций сравнения (0 – ненулевой, 1 – нулевой результат).
SF (Sign Flag) — флаг знака (совпадает со старшим битом результата, 0 – плюс, 1 - минус).
TF (Trap Flag) — флаг пошагового режима (используется при отладке).
IF (Interrupt-enable Flag) — флаг разрешения аппаратных прерываний.
DF (Direction Flag) — флаг направления при строковых операциях. Обозначает левое или правое направление пересылки или сравнения строковых данных.
OF (Overflow Flag) — флаг переполнения. Указывает на переполнение старшего бита при арифметических командах.
8 комментариев:
Спасибо! завтра зачёт! то что нужно!
У меня уже мозг кипит от такой инфы ))))
"У меня уже мозг кипит от такой инфы ))))" да потому что ты тупое быдло. иди учи мат часть вафля ты апарафиненная
Задроты :DDDDD
"У меня уже мозг кипит от такой инфы ))))" да потому что ты тупое быдло. иди учи мат часть вафля ты апарафиненная
16 января 2012 г., 21:51"
Вам бы не помешало изучить нормальный русский язык... Здесь ведете себя как быдло только вы!
http://torrentins.ru
Нормальная статья
на здоровье
Отправить комментарий