Доставка цветов в Севастополе: SevCvety.ru
Главная -> Появление первого микропроцессора

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 [95] 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

F9AF CIiOBFC CALL выва

; вывод нладшего байта элемента

05 icr в t проверка признака

fB3 F8 rm ; если элемент однобайтный

F9B4 IB гсх в

F9E5 1А LDAX в

F9BU C30SFE jhp выва

Для обозначения доступа к произвольным ячейкам области сохранения существует специальная таблица ТРЕГ, с помощью которой по мнемоническому имени регистра определяется адрес ячейки области сохранения, где размещается его содержимое. Подпрограмма ВЫВР обеспечивает вывод содержимого ячейки (или ячеек) области сохранения по заданному адресу элемента таблицы. В таблице хранится только значение МЛБ адреса ячейки области сохранения. СТБ адреса потребуется из четвертой ячейки памяти (в ней хранится СТБ адреса верхней границы памяти). После формирования полного адреса на консоль с помощью программы ВЫВА выводится содержимое соответствующей ячейки. Если в третьем байте заданного элемента таблицы установлен признак двухбайтного значения (единица), дополнительно выводится содержимое предыдущей ячейки.

Программа KMX обработки директивы X начинает работу С ввода параметра. Если в качестве параметра введен символ ВК, выполняется цикл отображений. На каждой итерации этого цикла обрабатывается один элемент таблицы области сохранения ТРЕГ. Вначале первый байт элемента проверяется на код «концевика» таблицы. Если «концевик» обнаруживается, выполняется возврат. В противном случае из таблицы выбирается и выводится на консоль СИМВОЛ мнемонического обозначения регистра, а затем после вывода символа «-» с помощью подпрограммы ВЫВР выводится содержимое этого регистра. Указатель таблицы размещается в регистровой паре (Н, L). После возврата из программы ВЫВР указатель адресует начало следующего элемента, поэтому отдельная модификация указателя не производится.

Если в качестве параметра вводится символ мнемонического обозначения регистра, выполняется фрагмент программы KMX, реализующий режим модификации области сохранения. Вначале введенный код отыскивается среди первых байтов элементов таблицы. Если поиск неудачен, управление передается на вход ВОП программы



диспетчера. В противном случае выполняется цикл модификации, начиная с того регистра, символ которого введен в качестве параметра. Каждая итерация производит обработку одного элемента области сохранения. После вывода содержимого элемента и символа «-» выполняется ввод первого символа ответа пользователя. Если это символ ВК, осуществляется возврат из программы; если другой терминатор, выполняется переход на окончание цикла итерации; если символ шестнадцатеричной цифры, то подпрограммой ВВ2БН1 с консоли вводится число и в зависимости от содержимого третьего байта элемента таблицы в область сохранения записываются один или два байта введенного числа. В конце итерации первый байт следующего элемента проверяется на код «концеви-ка» таблицы. В зависимости от результата проверки выполняется либо возврат из программы, либо следующая итерация цикла.

6.6.8. ДИРЕКТИВА ЗАПУСКА ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ

Директива G позволяет вьшолнить программу пользователя, начиная с заданного адреса, который является первым параметром директивы. Второй и третий параметры определяют адреса точек останова, после достижения которых выполнение программы пользователя прекращается и управление передается программе диспетчера. Все параметры являются необязательными. Если опущен первый параметр, адресом старта является содержимое области сохранения, соответствующее программному счетчику PC. Программа, выполняющая директиву, имеет следующий вид:

KMG:

; ЛОДПРОГРАННА ОБРАБОТКИ ДИРЕКТИВЫ G.

i ЗАГРУЗКА В CTtK АДРЕСА ОБЛАСТИ СОХРАНЕНИЯ

F9B9 2А0300 LHLD 3

F9EC 2EED MUI L.OEDH

F9EE ЕЗ XTHL ? АДРЕС ЗАПУСКА Б СТЕК

; ВВОД 1-Г0 ПАРАМЕТРА

F9EF CBC2FA CALL ПРВВ t КОНТРОЛЬ ТЕРМИНАТОРА

F9C2 CABiF9 JZ ПЕР9 i ЕСЛИ ВВЕДЕН ТЕРМИНАТОР

F9C5 CED7FA CALL ВВ2БН1

i ЗАПИСЬ точки СТАРТА В ОБЛАСТЬ СОХРАНЕНИЯ

F9C8 ЕВ XCHG i (DjE) - АДРЕС СТАРТА

F9C9 2А030О LHLD 3

F9CC 2EF9 MUI L.0F9H

F9CE 72 мои М.В



F9CF 2В ГСХ Н

F9ri0 73 mV М,Е

J ВВОД 2-го И 3-ГО ПАРАМЕТРОВ F9Bi BAFEF9 ПЕР9г JC ПЕРИ ; ЕСЛИ ПОСЛЕ ДИРЕКТИВЫ ВВЕДЕН ВК

; УСТАНОВКА СЧЕТЧИКОВ:(Б)-ВВЕДЕННЫХ ПАРАМЕТРОВ,

J (Е)-ДОПУСТИМОЕ ЧИСЛО ПАРАМЕТРОВ

F9B4 110200

D,0002

; ЦИКЛ ВВОДА ПАРАМЕТРОВ

F9B7 CB79FA

ЦИКЛ13: CALL

ВЫВС1 ;

ВЫВОД "-"

F9BA 2В

F9BB aiBlFA

CALL

ВЕ2БН J

ВВОД HAPAhETPA В (H,L>

F9BE ES

PUSH

F9BF 14

F9E0 BAEAF9

ПЕР10 ;

ЕСЛИ ПОСЛЕ ПАРАМЕТРА ВВЕДЕН ВК

; ПРОВЕРКА HA ОКОНЧАНИЕ ВВОДА ПАРАМЕТРОВ

F9E3 IB

F9E4 C2B7F9

ЦИКЛ13

F9E7 C366F8

. ВОП ?

ВОЗВРАТ В НОНИТОР

! ЗАПИСЬ ВВЕДЕННЫХ ПАРАМЕТРОВ В ОСР

F9EA 2А0300

ПЕРЮ: LHLD

F7EB 2EFA

L,OFAH

F9EF CI

ИИКЛ14г POP

В ;

<В,С)-ЗНАЧЕНИЕ ПАРАНЕТРА

F9F0 71

F9F1 23

F9F2 70

F9F3 23

! УСТАНОВКА ТОЧКИ РАЗРЫВА

F9F4 OA

LBAX

F9F5 77

H,A ;

СОХРАНЕНИЕ СОДЕРХИНОГО

F9Fi 23

F9F7 3EC7

A,0C7H

F9F9 02

STAX

В ?

ЗАПИСЬ RST 0 Б ТОЧКУ РАЗРЫВА

F9FA 15

F9FB C2EFF9

ЦИКЛ14

f ПЕРЕХОД HA

ТОЧКУ СТАРТА

F9FE CD8BFA

ПЕРИ: CALL

KOHC ;

ВЫВОД ВК.ПС

FAOl C9

В начале программы в вершину стека загружается адрес пусковой последовательности, размещаемой в рабочей области монитора. Это делается для того, чтобы по команде возврата RET управление было передано не программе диспетчера, а на начало пусковой последовательности (см. рис. 6.11), команды которой обеспечивают запись содержимого области сохранения в соответствующие регистры и передачу управления по адресу старта программы пользователя. После этого с помощью подпрограммы ПРВВ вводится первый символ первого параметра. Если символ является шестнадцатеричной цифрой, подпрограммой ВВ2БН1 вводится значение параметра и записывается в область сохранения. Если вводится терминатор, он игнорируется; если же в качестве терминатора вводится символ ВК, выполняется команда RET,



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 [95] 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116



0.0173
Яндекс.Метрика