Десятичный формат с плавающей точкой. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Десятичный формат с плавающей точкой.



 

Этот формат поддерживается только ассемблером Мasm.

При записи символьных и числовых констант следует помнить, что, например, символьная константа, определенная как db '12', представляет символы ASCII и генерирует шестнадцатеричное 3132, а числовая константа, oпределенная как DB 12, представляет двоичное число и генерирует шестнадцатеричное 0c.

 

Организация ввода-вывода.

 

Работа с портами ввода/вывода в процессорах x86 возможна как с использованием специальных команд (IN, OUT), через отдельное адресное пространство ввода/вывода, так и по схеме с отображением регистров устройств на обычное адресное пространство. В последнем случае возможно использование обычных команд из системы команд процессора.

Для адресации портов устройств в пространстве ввода/вывода, используется 16-разрядный адрес, обеспечивая доступ к 64K 8-битным портам с адресами от 0h до FFFFh. Адреса 0F8h – 0FFh– зарезервированы для системных целей. Порты с адресами 0h – 0FFh используются оборудованием системной платы ПК (таймер, контроллер прерываний и т.п.), адреса 0100h–03FFh используют различные контроллеры: дисков, видеомонитора, компьютерной сети.

Команды IN и OUT работают с прямой адресацией (адрес порта находится в команде) для портов с адресами 0h - 0F7h и с косвенной адресацией (адрес порта находится в регистре DX) для любых портов: 0h - FFFFh. Обмен данными происходит только через регистр-аккумулятор (AX, AL), например, чтение из порта: in al,dx, запись в порт: out dx,ax

 

Организация прерываний.

 

Прерывания - приостановление основных вычислений в процессоре, для выполнения вспомогательных действий, технологических сервисных процедур – можно разделить на два класса: внешние и внутренние. Каждому прерыванию назначен четырехбайтный вектор с номером в диапазоне 0h - FFh. Векторы определяют адреса подпрограмм обслуживания прерывания (ISR, Interrupt Service Routine) и размещаются в младшем килобайте адресного пространства памяти в виде IP:CS (сегмент_ISR:смещение_ISR, смещение записывается по младшему адресу).

Внешние прерывания вызываются сигналами на входах (см. рис. 9) запроса немаскируемого прерывания процессора (NMI) и маскируемого прерывания (INTR). Маскируемые прерывания игнорируются, если очищен флаг I.

 

Рисунок 9. Источники прерываний.

 

После завершения выполнения текущей команды процессор вырабатывает сигналы подтверждения (INTA), получает по шине данных номер прерывания от контроллера прерываний, сохраняет в стеке текущее содержимое Flags, CS, IP и приступает к выполнению ISR, загружая содержимое вектора в CS, IP. В начале выполнения ISR процессор очищает флаг I, запрещая дальнейшие прерывания. Если необходимо, в подпрограмме ISR можно разрешить дальнейшие прерывания, установив флаг I (с помощью команды STI). Подпрограмма ISR должна заканчиваться командой IRET, которая загружает старые значения IP, CS, Flags из стека и т.о. возобновляет работу прерванной программы.

Запросы от различных устройств в ПК обрабатываются контроллером прерываний, который формирует сигнал INTR для процессора (рис. 9). Обычно это две микросхемы Intel8259, каждая из которых имеет 8 входов прерываний. Запросам прерываний IRQ0-IRQ7 ПК соответствуют векторы от 08h до 0Fh, а IRQ8-IRQ15 – векторы от 070h до 077h. Битовые маски, позволяющие запрещать (маскировать) отдельные входы запросов прерываний, находятся по адресам 021h и 0A1h для IRQ0-IRQ7 и IRQ8-IRQ15 соответственно.

К внутренним прерываниям относятся т.н. исключения – различного рода ошибки, механизм для отлаживания программ, аварийные состояния и командные прерывания INT:

  1. вектор 0 – возникает при ошибке деления;
  2. вектор 1 – отладочное, возникает при установленном TF;
  3. вектор 3 – вызывается однобайтной командой int 3;
  4. вектор 4 – вызывается однобайтной командой into, при установленном OF;
  5. вектор > 4 – вызывается командой int n, где n – номер вектора.

Вход для немаскируемых прерываний с вектором 2 используется для подачи сигналов о серьезных аварийных состояниях, требующих немедленного обслуживания, например, об отсутствии напряжения в сети.



Поделиться:


Последнее изменение этой страницы: 2021-06-14; просмотров: 43; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.12.240 (0.022 с.)