На адресные входы Aи B может подаваться любая четырёх битная комбинация, так как все регистры в БПТ рабочие, а стек вынесен за пределы БПТ.
Таблица 5.9 – Значение полей А/В.
Значение | Регистр |
0000 | Р1з |
0001 | Р1м |
0010 | РСМз |
0011 | РСМм |
0100 | СчТ |
0101 | РПТ1 |
0110 | РПТ2 |
0111 | РПТ3 |
1000 | РПТ4 |
10001 | РПТ5 |
1010 | РПТ6 |
1011 | РПТ7 |
1100 | РПТ8 |
1101 | РПТ9 |
1110 | РПТ10 |
1111 | РПТ11 |
5.1.3 Зона БМУ.
Поле УСА ( управление следующим адресом) принимает значение E по умолчанию, что соответствует последовательному выполнению команд. Для условного перехода в него записывается значение 3.
Поле П разрешает безусловный переход по адресу, записанному в АП.
Поле УСЛ отвечает за выбор условия перехода.
ФУ - фиксация флагов.
И - инверсия условия.
RLD – разрешение записи в Cч/РгА.
ВБ - выбор секции, для которой анализируются условия. 0 – для БФТ, 1 - для БПТ.
АП – адрес перехода. Адрес перехода размещён в отдельном поле, а не с поле CONST, так как поле CONSTможет использоваться для записи какой-либо константы и одновременно нужно организовать переход по адресу. Поэтому эти поля разделены.
УСЛ | Переход | |
000 | Переход по паритету | PF0 = 1 |
001 | При равенству 0 | Z =1 |
010 | При отрицат. знак | N = 1 |
011 | При переполнении | V = 1 |
100 | При переносе | C = 1 |
101 | Если меньше | N + V = 1 |
110 | Если меньше или равно | Z v (N + V ) = 1 |
111 | Если меньше или равно без знака | C v Z = 1 |
Таблица 5.10 - Поле УСЛ.
5.1.4 Зона БИНТ.
Поле БФТ БИНТ
Источником данных для шины DA БФТ могут быть поле CONST из РгМк, операнд из РгЧтОП, передаваемый через мультиплексор MUXРежЧ, а также выход БПТ через DMXDYПТ.
Таблица 5.11 – MUXDAФТ.
MUXDAФТ | Источник |
00 | CONST из РгМК |
01 | MUXРежЧ |
10 | DMXDYПТ |
Источником данных для шины DB БФТ может быть непосредственный операнд из РгК(8:15), СчАК( для инкремента), смещение из РГК(16:23) или РгК(16:31) и порядок из БПТ через MUXSTPor.
Таблица 5.12 – MUXDBФТ.
MUXDBФТ | Источник |
000 | РгК(8:15) |
001 | СчАК |
010 | РгК(16:23) |
011 | РгК(16:31) |
100 | MUXSTPor |
Выходом БФТ могут быть шина DA БПТ через MUXDAПТ, РгАД, СчАК или РГЗпОП через MUXЗП
Таблица 5.13 – DMXDYФТ.
DMXDYФТ | Направление |
00 | MUXDAПТ |
01 | РгАД |
10 | СчАК |
11 | MUXЗП |
Выходом шины DB может быть либо РгЗпОП через MUXЗП, либо разряд порядка мантиссы для стекового регистра через DMXSTPor
Таблица 5.14 – DMXDBФТ.
DMUXDBФТ | Направление |
0 | MUXЗП |
1 | DMXSTPor |
Поле БПТ БИНТ
Источником данных для шины DA БПТ могут быть поле CONST из РгМк, и выход Y БПТ через DMXDYФТ.
Таблица 5.15 – MUXDAПТ.
MUXDAПТ | Источник |
0 | CONST из РгМК |
1 | DMXDYФТ |
Выходами шины DY БПТ могут быть входная шина DAБФТ через MUXDAФТ, разряды стека, где хранится мантисса ( через DMXSTMan) и разряды стека, где хранится знак ( через DMXSTZn)
Таблица 5.16 – DMXDYПТ.
DMXDYПТ | Направление |
00 | MUXDAФТ |
01 | DMXSTMan |
10 | DMXSTZn |
Входаvи шины DBмогут быть либо мантисса через MUXSTManили знак через MUXSTZn.
Таблица 5.17 – MUXDBПТ.
MUXDBПТ | Направление |
0 | MUXSTMan |
1 | MUXSTZn |
Поле ОП БИНТ
Входами мультиплексора записи MUXЗП могут быть выходы шины DB, DY,СчАК ( при сохранении при прерывании) и ССП( CR0) по той же причине.
Таблица 5.18 – MUXЗП.
MUXЗП | Источник |
000 | DMXDBФТ |
001 | DMXDYФТ |
010 | СчАК |
011 | ССП (CR0) |
100 | EFLAGS |
Таблица 5.18 (продолжение)
Запись в РгК может вестись либо напрямую из РгЧтОП, либо через РгБ. Для выбора необходимых байтов используется MUXЧ после которого и идёт запись в РгК. Иначе же ведётся запись из РгБ через соответствующие мультиплексоры.
Таблица 5.19 – DMXОП.
DMXОП | Направление |
0 | РгБ |
1 | MUXЧ |
Входом записи РгК могут быть РгБ через MUXБ или РгЧтОП через MUXЧ. Выбор источника осуществляется в MUXБЧ
Таблица 5.20 –MUXБЧ.
MUXБЧ | Источник |
0 | MUXБ |
1 | MUXЧ |
Мультиплексор MUXСА выбирает, откуда будет произволиться запись в РАОП – из СчАК или РгАД.
Таблица 5.21 –MUXСА.
MUXСА | Источник |
0 | СчАК |
1 | РгАД |
Также в поле БИНТ есть поле Рг. В нём определяется в какие из регистров возможна запись. Это регистры СчАК, РгК, РгАД, РгБ.
5.1.5 Зона ОП
Поле используется для управления записи или считывания данных из ОП.
Сигнал CS определяет выбрана ли ОП или нет. Сигналы R/W задают соответственно чтение из ОП в РгЧтОП или запись в РгЗпОП соответственно.
Также зона разрешает запись.
Таблица 5.22– Зона ОП
CS | R/W | Режим работы ОП |
0 | 0 | нет доступа |
0 | 1 | нет доступа |
1 | 0 | ОП := РгЗпОП |
1 | 1 | РгЧтОП := ОП |
5.1.6 Зона CONST
Зона используется для определения константы, например для операций сравнения в условиях или для выделения битов по маске.
5.2 Микропрограмма операции обработки чисел в формате с плавающей точкой
Микропрограмма команды FIADD.
Адрес | Содержание МК | Зона | Поле | Значение | Примечание |
00 | Если РСМм(63)=0, то переход | БПТБМУ | ВИСТАЛУУВПРЕЗУСЛУСААП | 40400232 | РСМмРгА, РгВS+C00Без записиN=1Усл. Пер.Адрес п-да. |
01 | РСМм=LLS(РСМм, 1)РСМр=РСМр+1 | БФТБПТБМУ | ВУВПАЛУВСДВБУАП | 16154910 | РСМрС0=1S+C0РСМмЛС влевоБезусл.п-дАдрес перехода |
02 | РСМр=403Eh-РСМр | БФТCONST | ВАЛУИСТУВП | 16241403Eh | РСМрR-S-1+C0DAC0=1 |
03 | РСМр=РСМр-Р1р | БФТ | АВАЛУУВП | 151611 | Р1рРСМрS-R-1+C0C0=1 |
04 | СчТ=РСМр | БФТБПТБИНТ | АВИСТРЕЗMUXDAПТDMXDYФТ | 1655110 | РСМрСчТDAРЗУС вых. ФТНа БПТ |
05 | Если N=1, то переход | БМУ | УСЛУСААП | 2311 | N=1Усл. пер.Адрес пер. |
06 | Если РСМр>3FFFh, то переход | БФТБМУCONST | ВАЛУИСТРЕЗУВПУСЛИУСААП | 1614615131Е3FFFh | РСМрS-R-1+C0DAБез записиС0=1Zv (N+V)ИнверсияУсл. пер.Адрес пер. |
07 | Если РСМр=0, то переход | БФТБМУCONST | ВАЛУИСТРЕЗУВПУСЛУСААП | 16146113130 | РСМрS-R-1+C0DAБез записиС0=1Z=1Усл. пер.Адрес пер. |
08 | Если РСМр>0, то переход | БФТБМУCONST | ВАЛУИСТРЕЗУВПУСЛИУСААП | 1614616130D0 | РСМрS-R-1+C0DAБез записиС0=1Zv (N+V)ИнверсияУсАдрес Адрес пер. |
09 | Если СчТ<>0, то переход | БПТБМУCONST | ВАЛУИСТРЕЗУВПУСЛИУСААП | 514611130В0 | СчТS-R-1+C0DAБез записиС0=1РавныИнверсияУсл. пер.Адрес пер. |
0A | РСМр=Р1р | БФТБМУ | АВБУАП | 1516113 | Р1рРСМрБезусл. пер.Адрес пер. |
0B | РСМм=ARS(РСМм,1) | БПТ | ВСДВ | 40 | РСМмАС вправо |
0C | СчТ=СчТ+1 | БПТБМУ | ВАЛУУВПБУАП | 541109 | СчТS+C0С0=1Безусл. пер.Адрес перехода |
0D | Если СчТ<>0, то переход | БПТБМУCONST | ВАЛУИСТРЕЗУВПУСЛИУСААП | 514611130F0 | СчТS-R-1+C0DAБез записиС0=1РавныИнверсияУсл. пер.Адрес пер. |
0E | РСМр=РСМр+Р1р | БФТБМУ | АВАЛУУВПБУАП | 151630113 | Р1рРСМрR+S+C00Безусл. пер.Адрес пер. |
0F | Р1м=ARS(Р1м, 1) | БПТ | ВСДВ | 20 | Р1рАС вправо |
10 | СчТ=СчТ-1 | БПТБМУCONST | ВАЛУИСТУВПБУАП | 514110D1 | СчТS-R-1+C0DAC0=1Безусл. пер.Адрес пер. |
11 | Если РСМр<FFFFB000h, то переход | БФТБМУCONST | ВАЛУИСТРЕЗУСЛУСААП | 161465307FFFFB000h | РСМрS-R-1+C0DAБез записиЕсл.меньшеУсл. пер.Адрес пер. |
12 | РСМм=РСМм+Р1мРСМр=РСМр+Р1р | БФТБПТБМУ | АВАЛУАВАЛУУВПБУАП | 15163243011E | Р1рРСМрR+S+C0Р1рРСМмR+S+C0С0=0безусл. перАдрес пер. |
13 | Если РСМз<>Р1з, то переход | БПТБМУ | АВАЛУУВПУСЛИУСААП | 131111315 | Р1зРСМзS-R-1+C0C0=1Z=1ИнверсияУсл. пер.Адрес пер. |
14 | РСМм=РСМм+Р1м | БПТБМУ | АВАЛУУВПБУАП | 243011С | Р1мРСМмS+R+1C0=0Безусл.пер.Адрес пер. |
15 | Если РСМз=0, то переход | БПТБМУCONST | ВАЛУИСТРЕЗУВПУСЛУСААП | 3146113190 | РСМзS-R-1+C0DAБез щаписиС0=1РавныУсл. пер.Адрес пер. |
16 | Если Р1м<>РСМм, то переход | БПТБМУ | АВАЛУУВПУСЛУСААП | 2411531С | Р1рРСМрS-R-1+C0C0=1Есл.меньшеУсл.пер.Адрес пер. |
17 | РСМз=1 | БПТCONST | ВИСТРЕЗ | 3411 | РСМзDAРЗУ |
18 | РСМм=!РСМм+1 | БПТБМУ | ВАЛУУВПБУАП | 45111С | РСМм!S+C0C0=1Безусл.пер.Адрес.пер. |
19 | Если РСМм<Р1м, то переход | БПТБМУ | АВАЛУУВПУСЛУСААП | 4211531С | Р1мРСМмS-R-1+C0С0=1Есл.меньшеУсл. пер.Адрес пер. |
1A | РСМз=1 | БПТCONST | ВИСТРЕЗ | 3411 | РСМзDAРЗУ |
1B | РСМм=!РСМм+1 | БПТБМУ | ВАЛУУВПБУАП | 45111С | РСМм!S+C0С0=1Безусл.пер.Адрес пер. |
1C | Если V=1, то переход | БМУ | УСЛУСААП | 3322 | V=1Усл.пер.Адрес пер. |
1D | Если РСМ(63)=0, то переход | БМУ | УСЛИУСААП | 2131F | N=1ИнверсияУсл.пер.Адрес пер. |
1E | END | ||||
1F | РСМм=ALS(РСМм, 1)РСМр=РСМр-1 | БФТБПТCONST | ВАЛУИСТУВПВСДВ | 16141481 | РСМрS-R-1+C0DAC0=1РСМрАС влево |
20 | Если N=0, то переход | БМУ | УСЛИУСААП | 2131D | N=1ИнверсияУсл. пер.Адрес пер. |
21 | Вызов обработчика прерываний антипереполнения | ||||
22 | РСМм=ARS(РСМм,1)РСМр=РСМр+1 | БФТБПТ | ВАЛУУВПВСДВ | 164140 | РСМрS+C0С0=1РСМмАС вправо |
23 | Если РСМр(15)=0, топереход | БМУ | УСЛИУСААП | 2131E | N=1ИнверсияУсл. пер.Адрес пер. |
24 | Обработка прерываний переполнения порядка |
Заключение