|
Главная -> Появление первого микропроцессора 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 в заключительном фрагменте программы на основании информации, записанной в области сохранения, производится восстановление точек разрыва. Это осуществляется с помощью цикла, тело которого вьшолняется дважды (для каждой точки разрыва). Нулевое значение элемента области сохранения означает, что соответствующая точка разрыва не была установлена и восстановление содержимого этой точки не производится. Одновременно выполняется обнуление соответствующего элемента области сохранения. После завершения работы программы управление передается в диспетчер монитора. 6.6.10. ДИРЕКТИВА ДОКУМЕНТИРОВАНИЯ Директива Н позволяет установить или отменить режим копирования консольного вывода на печатающее устройство: КИИ: i ПОДПРОГГЙННА ОБРАБОТКИ ДИРЕКТИБЫ Н. (H»L) - АДРЕС ФЛАГА ПЕЧАТИ
Работа программы сводится к инвертированию флага печати, расположенного в рабочей области монитора. При его установке программа ВЫВС обеспечивает дублирование каждого выводимого на консоль символа выводом его на печатающее устройство. 6.6.11. ДИСПЕТЧЕР ДИРЕКТИВ Программа диспетчера обеспечивает инициализацию рабочей области, обработку ошибок пользователя, допущенных при вводе директив, ввод символа мнемонического обозначения директивы и вызов соответствующей подпрограммы обработки директивы. Программа диспетчера имеет вид: F800 C303F8 F803 210000 F806 25 F807 46 F808 ЗЕОО Е80Й 77 F80B В6 F80C 2F F80D 77 F80E 2F FBOF Й6 F810 C206F8 F813 70 F814 220200 F817 2ЕЕ4 F819 F9 F81A СВ4ГЕ4 F81D CD7AF4 F820 AF F821 77 F822 2С F823 C221F8 F826 2EED FB28 1159F8 F82II 060С FB2D 1А F82E 77 F82F 13 F830 23 F831 05 F832 C22DF8 F835 F837 F83A F83D F840 F843 F846 ЗЕСЗ 320000 2102FA 220100 2149F8 CD9£iFA C372F8 ИНМОН: ;«)(KXKKXK»KK»KKK«KKK«KKK)(StKKXXStStXStKSt)l«StStStStXStXKXStSt«KStStKX» ; ПОДПРОГРАММА ИНИЦИАЛИЗАЦИИ МОНИТОРА. ;ХХХК*ХХХХКХКХХХХКХК»ХХ»Х*КХХХХХКХЙХХХХХХХ»Х«Х»КХХХХХХХХ JMP ИНМОН+3 ; УСТАНОВКА СЧЕТЧИКА КОМАНД ; ОПРЕДЕЛЕНИЕ ВЕРХНЕЙ ГРАНИЦЫ ОЗУ ГРОЗУ: LXI Н»ОО00Н ЦИКЛ1: DCR Н 5 (H»L)-АДРЕС ПРОВЕРЯЕМОЙ ЯЧЕЙКИ MOV В.Н ; ПРОВЕРКА ЗАПИСИ НУЛЕЙ MVI А.О MOV М.А ORA М ; ПРОВЕРКА ЗАПИСИ ЕДИНИЦ F849 ODOA F84B 6B206F20 F84F 6Е206920 MOV СМА ANA JNZ MOV ЕСЛИ ЗАПИСЬ НЕВОЗМОЖНА ВОССТАНОВЛЕНИЕ СОДЕРЖИМОГО ЦИКЛ1 М.В ; ЗАПИСЬ АДРЕСА ВЕРХНЕЙ ГРАНИЦЫ ОЗУ SHLD 3 ; УСТАНОВКА СТЕКА MVI L.0E4H BPHL ; ИНИЦИАЛИЗАЦИЯ МОДУЛЕЙ СОПРЯЖЕНИЯ CALL ИИРПР ; ДЛЯ ИРПР CALL ИИРПС i ДЛЯ ИПРС J ОБНУЛЕНИЕ РАБОЧЕЙ ОЕЛАСТИ XRA А ЦИКЛ2: MOV М.А INR L JNZ ЦИКЛ2 ; ЗАПОЛНЕНИЕ СТАРТОВОЙ ПОСЛЕДОВАТЕЛЬНОСТИ ; в РАБОЧЕЙ ОЕЛАСТИ MVI LXI MVI ЦИКЛЗ: LDAX MOV INX INX DCR JNZ L.OEDH D.nyC Б.ОСН D M.A D H В ЦИКЛЗ УСТАНОВКА ПЕРЕХОДА НА MVI А.ОСЗН STA О LXI H.HRSTO SHLD 1 LXI H.TT CALL ТЕКСТ JMP MOH TT: ; ТЕКСТ ПРЕДСТАВЛЕНИЯ: DB ODH.ОАН DB МОНИТОР.О (H.L)-НАЧАЛО ПОСЛЕДОВАТЕЛЬНОСТИ (В.Е)-АДРЕС ШАБЛОНА (В) - КОЛИЧЕСТВО БАЙТОВ ! ЕСЛИ НЕ ВСЕ БАЙТЫ ПЕРЕПИСАНЫ "ЛОВУШКУ" ТОЧЕК РАЗРЫВА 5 (А)-КОД КОМАНДЫ JMP ; БЫБОД ПРЕДСТАВЛЕННИЯ ! ПЕРЕХОД НА ДИСПЕТЧЕР МОНИТОРА F853 74206F20 F857 7200 ПУС: 5 ШАБЛОН ПУСКОВОЙ ПОСЛЕЯОБАТЕЛЬНОСТИ F859 F3 Ы F85A С1 POP В F85B В1 POP Б F85C Fi POP PSW FSGD El OP H F85E F9 F85F 210000 F862 FB F863 C30000 SFHL LXI EI JHP H>0 ВОП: i ДИСПЕТЧЕР НОНИТОРА. ;ХХХХЙХКХК«ХХХКХН*»»ХХХХХКХХКККХКХХХХХХХХКХХХКХХКХММХКХХ i УСТАНОВКА УКАЗАТЕЛЯ СТЕКА
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.0122 |
|