Skip to content

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. 
Остальные были зарезервированы при разработке процессора, но так и не были использованы.

image

Есть три типа флагов

  • флаги состояния (черные)
  • системные флаги (синие)
  • флаг управления 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.
Clone this wiki locally