-
Notifications
You must be signed in to change notification settings - Fork 0
07. Процессор 8086. Регистр флагов.
Natasha Gurova edited this page Jun 22, 2022
·
3 revisions
Процессор 8086 - разрядность 16 бит, количество регистров 14.
Шина адреса - 20 бит
Шина данных - 16 бит
Регистр FLAGS – специальный регистр, к которому напрямую обращаться нельзя. Используется ни как единое число, а как отдельные биты (то есть все его 16 битов независимы друг от друга, каждый имеет свое собственное значение)
Каждый флаг представляет собою 1 бит, выставляемый в
- 0 - флаг сброшен
- 1 - флаг установлен
Не существует специальных команд, позволяющих обратиться к этому регистру напрямую.
Хотя разрядность регистра FLAGS 16 бит, реально используют не все 16.
Остальные были зарезервированы при разработке процессора, но так и не были использованы.
Есть три типа флагов
- флаги состояния (черные)
- системные флаги (синие)
- флаг управления DF (зеленые)
Жирненьким показаны флаги, которые можно непосредственно изменять
ПОДРОБНЕЕ
Состояния:
- CF – флаг переноса. Возникает в случае перехода через разрядную сетку при работе с беззнаковыми числами.
- PF – флаг четности (0 или 1). Указывает, какое количество бит получилось в младшем байте результата. Нужен для взаимодействия с какими-то устройствами, передачи данных, контроля корректности передачи данных.
- AF – вспомогательный флаг переноса. Выставляется, если произошел перенос из младшего полубайта в старший полубайт (если биты нумеровать от 1 до 8, то из 4 в 5 бит). Нужен при работе с упакованными двоично-десятичными числами, когда у нас в байте не 256 различных значений, а всего 100.
- ZF – флаг нуля. Принимает единичное значение, когда в качестве результата арифметической операции получился 0.
- SF – флаг знака. Этот флаг всегда равен старшему биту результата.
- OF – флаг переполнения. Предназначается для работы со знаковыми числами, когда старший бит предполагается знаковым и происходит его переполнение.
Системные флаги:
- TF – флаг трассировки. Служит для отладки программы
- IF – флаг разрешения прерываний. Если этот флаг выставлен в 1, то прерывания будут срабатывать.
- IOPL (появился в 256 процессоре) – уровень приоритета ввода-вывода.
- NT (появился в 256 процессоре) – флаг вложенности задач.
Флаг управления
- DF – используется в командах поточной обработки данных, для которых нужны регистры SI и DI.