Cтраница 2
Структура регистра флагов. [16] |
Кроме перечисленных регистров имеются два 16-разрядных регистра: IP - указатель команд; F - регистр флагов. В регистре IP формируется относительный ( относительно CS) адрес команды, подлежащей исполнению. В регистре F ( рис. 1.2) используются следующие девять разрядов: CF - перенос, PF - четность, AF - вспомогательный перенос, ZF - нулевой результат, SF - знак, TF - пошаговый режим, IF - разрешение прерывания, DF - направление, OF-переполнение. Неиспользованные разряды на рисунке заштрихованы. [17]
В состав внутренней памяти МП входят доступные программисту функциональные регистры: регистры общего назначения, указатель команд, регистр флагов и регистры сегментов. [18]
Команда INTn вызывает требуемую подпрограмму, как и команда CALL, однако при переходе на подпрограмму команда INTn осуществляет запоминание не только адреса возврата ( CS и IP), но и регистра флагов F. При этом выполняется межсегментный переход, причем адрес подпрограммы располагается не в формате команды или в произвольной ячейке памяти, а в специально сформированной таблице. [19]
Объект, содержимым которого манипулирует команда, указывается с помощью первого байта команды вместе с кодом операции бс; выделения специального поля для этой цели. Чаще всего этот специфический способ адресации встречается в однобайтовых командах, где адресуемым объектом являются аккумулятор, регистр флагов или отдельные флаги. В частности, в командах обработки цепочек неявно используются индексные регистры, причем регистр SI адресует первый элемент щмючки-ипочникя, а регистр DI - первый элемент цепочки-получателя. [20]
Эти команды пересылают содержимое регистра флагов в стек и обратно. Они в сущности идентичны командам PUSH и POP, но в них не требуется указывать операнд, так как под ним подразумевается регистр флагов. [21]
Команда LAHF ( Load АН from Flags - загрузить регистр АН флагами) копирует флаги, совместимые с флагами микропроцессоров 8080 / 8085, в регистр АН. Команда SAHF ( Store АН into Flags - загрузить флаги из регистра АН) выполняет обратную операцию: она загружает пять упомянутых выше битов регистра АН в регистр флагов. [22]
Микропроцессорная система. [23] |
Структурная схема микропроцессора КР580ИК80 приведена на рис. 11.2. К микропроцессору подходит 8-разрядная шина данных и 16-разрядная шина адреса. Шина данных связана с шестью 8-разрядными регистрами В, С, D, E, H, L и 16-разрядными указателями стека, аккумулятором ( специализированным восьмиразрядным регистром А), временным 8-разрядным регистром и регистром флагов. Из этой шины данные могут передаваться в 8-разрядный регистр кода операции и 16-разрядный программный счетчик. [24]
Общеупотребительные команды отладчика DEBUG. [25] |
Команда отладчика R ( register - регистр) показывает содержимое каждого регистра в виде четырех шестнадцатеричных цифр. Она также расшифровывает значения битов регистра флагов в виде ряда двухбуквенных мнемокодов. [26]
Программно-доступные регистры МП ВМ66. [27] |
Микропроцессор К1810ВМ86 относится к классу однокристальных с фиксированной системой команд. Общие регистры разбиты на две группы: 1) группа HL, состоящая из регистров АХ, ВХ, СХ, DX, которые предназначены прежде всего для хранения данных и допускают раздельную адресацию их старших ( Н) и младших ( L) половин; 2) группа PI, содержащая указательные регистры ВР, SP и индексные регистры SI, DI, в которых обычно хранится адресная информация. Для общих и сегментных регистров указаны коды, используемые в форматах команд для их адресации. Регистр флагов F и указатель команд IP адресуются в командах неявно. [28]
Уровень 0 соответствует неограниченным правам доступа и отводится ядру операционной системы. Уровень 3 дает минимальные права и отводится прикладным задачам. Уровни привилегий относятся к дескрипторам, селекторам и задачам. Кроме того, в регистре флагов имеется двухбитовое поле привилегий ввода / вывода ( см. рис. 7.4 и 7.6), управляющее доступом к командам ввода / вывода и флагом прерываний. [29]
Этот фрагмент показывает, как реализуется условный переход по результатам сравнения чисел с плавающей запятой. Поскольку в системе команд сопроцессора ВМ87 отсутствуют команды условных переходов, то используется следующий прием. После выполнения команды сравнения ( FCOMP) результаты сравнения ( старший байт регистра состояния) запоминаются в памяти по адресу FLAGS. Затем они пересылаются в старший байт аккумулятора АН центрального процессора и запоминаются в регистре флагов F по команде SAHF. Разряды СО, СЗ регистра состояния сопроцессора ВМ87 соответствуют разрядам регистра F, в которых размещены значения флагов CF и ZF ( табл. 4.3), поэтому можно зоспользоваться любой из команд условных переходов. [30]