|
Главная -> Появление первого микропроцессора 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 (Е)-ДОПУСТИМОЕ ЧИСЛО ПАРАМЕТРОВ
В начале программы в вершину стека загружается адрес пусковой последовательности, размещаемой в рабочей области монитора. Это делается для того, чтобы по команде возврата 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 |
|