Доставка цветов в Севастополе: 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

РйС1

FAC7 FADA РАШ FADE

CDC2FA CA66F8 210000 47

CDA6FA DAEDFA

FAEl 29 FAE2 29 FAE3 29 FAE4 29

FAE5 В5 FAE6 6F

FAE7 CDBOFA FAEA C3DAFA

FAED 78 FAEE CDC5FA FAFl C266F8 FAF4 C9

FAF5 CDDIFA

FAF8 E3 FAF9 E5

FAFA OD FAFE D202FB FAFE C266F8 FBOl C9 FE02 C2F5FA

EB2EH:

; ПОДПРОГРАММА ВВОДА С КОНСОЛИ ЧЕТЫРЕХРАЗРЯДНОГО UIECT-! НАДЦАТЕРИЧНОГО ЧИСЛА.

J ВЫХОДНЫЕ ПАРАМЕТРЫ: (Н.Е>-ЕЕЕДЕННОЕ ЧИСЛ05 (СУ)=1.ЕСДИ г ПОСЛЕ ЧИСЛА ВВЕДЕН ВК.

sxxxkxmxxxkxkmxmxmmxmxxkxxmxkxmxxmmxxmmxxkxxmxxmmmkmmmmm

CALL ПРЕВ

JZ ВОП

ВБ2ЕН1: LXI Н.О ЦИКЛ17! мои EjA

CALL ПРК16

JC ПЕР16

; СДВИГ НАКОПИТЕЛЯ НА 4 РАЗРЯДА ВЛЕВО

DAD Н

DAD Н

DAD Н

DAD Н

J ДОБАВЛЕНИЕ ВВЕДЕННОЙ ЦИФРЫ К НАКОПИТЕЛЮ

ORA L

мои LtA ; ВВОД СИМВОЛА СЛЕДУЮЩЕЙ ЦИФРЫ .

CALL КВБЫ

JMP ЦИКЛ17 ! ЗАВЕРШЕНИЕ БРОДА

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

ПРЕОБРАЗОВАНИЕ ВВЕДЕННОГО ЧИСЛА ЕСЛИ НЕ ШЕСТНАДЦАТЕРИЧНАЯ ЦИФРА

ПЕР16:

CALL

А,В ПРА ВОП

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

БВ2Б!

гхххххмхммхмххмххмхххххххмхмххххмххмммхмхммхмхкмхххмхххх ? ПОДПРОГРАММА ВВОДА С КОНСОЛИ ЧЕТЫРЕХРАЗРЯДНЫХ ШГСТ-; НАДЦАТЕРИЧНЫХ ЧИСГЛ.

! ВХОДНОЙ ПАРАМЕТР: (С)-КОЛИЧЕСТВО ВВОДИМЫХ ЧИСЕЛ. } ВЫХОДНЫЕ ПАРАМЕТРЫ: (SP>г(SP+1),...,(SP+N) - ВВЕДЕННЫЕ ! ЧИСЛА (ПОСЛЕДНЕЕ ВВЕДЕННОЕ ЧИСЛО НАХОДИТСЯ В ВЕРШИНЕ ; СТЕКА).

;хкккхххххкккхкккккх«хххккхк«ккхкххккхкххкххкккхккхкхххк CALL ВВ2БН S (H»L) - РЕЕДЕННОЕ ЧИСЛО

! ЗАПИСЬ ЕЕРЛЕННОГО ЗНАЧЕНИЯ Е СТЕК XTHL

PUSH Н } ПРОВЕРКА НА ЗАВЕРШЕНИЕ БЕОДА

ПЕР17:

DCR JNC JNZ RET JNZ

ПЕР17 БОП

ЕВ2Б

ЕСЛИ НЕ БЕЕДЕН ВК

ЕСЛИ БЕЕДЕНЫ НЕ ВСЕ ЧИСЛА

FB05 C366F8

JMP ВОП ; ЕСЛИ В КОНЦЕ НЕ ВВЕДЕН ВК

БЫБА:

;к«ххм*х*ххх«хкххкхххххк«х«хк««кххххххххххх»ххххххх«*ххх ; ПОДПРОГРАММА ВЫВОДА НА КОНСОЛЬ ДВУХРАЗРЯДНОГО ШЕСТНАД-; ЦАТЕРИЧНОГО ЧИСЛА. i ПАРАМЕТР! (А) - ВЫВОДИМОЕ ЧИСЛО.

jxkxxxxxxxkxxxkxkxkkxkkxxxxxxxkxkxxxxxxxxxxxkxxxxxxxkxxk



FE08 F5 PUSH PSU

FE09 OF RRC

FEOA OF RRC

FEOE OF RRC

FBOC OF RRC

FEOD CDllFB CALL ПЕР18 S Е11Е0Д СТАРШЕГО РАЗРЯДА

FEIO Fl POP PSU

! ВЫВОД HA КОНСОЛЬ ШЕСТНАДЦАТЕРИЧНОЙ ЦИФРЫ ИЗ

5 МЛАДШЕГО ПОЛУБАЙТА РЕГИСТРА А FE11 CDB8FA ПЕР18! CALL ПР16К S ПРЕОБРАЗОВАНИЕ В КОД КОИ-7 FE14 C369FA JMP ВЫВС ! БЫВОД СИМВОЛА

. EHEHLi

i ПОДПРОГРАММА ВЫВОДА НА КОНСОЛЬ ЧЕТЫРЕХРАЗРЯДНОГО ШЕСТ-

i НАДЦАТЕРИЧНОГО ЧИСЕЛА.

! ПАРАМЕТР! (H,L) - ВЫВОДИМОЕ ЧИСЛО.

;ickkkxhk»«kxkkxxxkkkkk«xxxx««)(«xxxxkkxkx«x««9!xkk««xx«kx9!

FE17 7С мои А,Н

FEIO CD08FB CALL ВЫБА S ВЫВОД СТАРШЕГО БАЙТА

FB1B 7D MOV AfL

FBIC C308FB JMP ВЫВА S Е11Б0Д МЛАДШЕГО БАЙТА

При вводе с консоли последовательности шестнадцатеричных чисел в качестве разделителей используются символы и «,». Признаком конца ввода последо-

вательности является символ ВК. Указанные символы называются терминаторами. Программа ПРВВ выполняет ввод символа с консоли, и если этот символ является терминатором, во флагах процессора Z и CY устанавливаются соответствующие значения. Вторая точка входа ПРА обеспечивает только проверку на терминатор символа, код которого записан в регистре (А).

Программа ВВ2БН производит ввод 4-разрядного числа с консоли в регистровую пару (И, L). Первые две команды выполняют ввод символа, и если он оказывается терминатором, управление передается в диспетчер по входу «Ошибка» (ВОП). Если ввод и проверку выполнять не обязательно, к данной программе необходимо обращаться по точке входа ВВ2БН1. Накопление вводимого числа в регистровой паре (Н, L) осуществляется с помощью итеративного цикла. Перед началом цикла содержимое регистровой пары (Н, L) обнуляется. На каждой итерации введенный символ с помощью программы ПРК16 преобразуется в двоичное представление шестнадцатеричной цифры и добавляется к предварительно сдвинутому на четыре разряда влево содержимому регистровой пары (Н, L). Сдвиг влево производится с помощью четырех команд DAD Н. Затем посредством



подпрограммы КВВЫ вводится следующий символ, и итерация повторяется. Работа цикла продолжается до тех пор, пока программа ПРК16 не обнаружит, что преобразуемый символ не является шестнадцатеричной цифрой. Если данный символ - терминатор, осуществляется возврат из программы. В противном случае управление передается в диспетчер на вход «Ошибка». Таким образом, эта программа вводит любое количество цифр, но число формируется только по последним четырем введенным цифрам."

Подпрограмма ВВ2Б предназначена для ввода заданного количества 4-разрядных чисел, которые помещаются в стек (в вершине стека хранится последнее число). Если количество введенных чисел меньше заданного или за последним числом нет символа ВК, возврата из программы не происходит, а управление передается в диспетчер на вход «Ошибка». Вывод 2-разрядного числа выполняется подпрограммой ВЫВА: вначале старший полубайт выводимого числа преобразуется подпрограммой ПР16К в символьное представление и выводится на консоль, а затем - младший. В программе с целью экономии памяти последний фрагмент, который преобразует и выводит одну цифру числа, вьшолняется дважды, причем первый раз в качестве по,а.программы. Подпрограмма ВЫВНЬ обеспечивает вывод на консоль 4-разрядного числа: подпрограммой ВЫВА сначала выводятся старшие разряды, а затем - младшие.

6.6.3. ДИРЕКТИВА ВЫВОДА СОДЕРЖИМОГО ПАМЯТИ

Директива D осуществляет построчный вывод содержимого заданной области памяти. В каждой строке выводится 17 значений: первое является адресом, а остальные- содержимым последовательных ячеек памяти, начиная с данного адреса (значения разделяются символами «:» и « »). Программа, выполняющая директиву,

имеет вид:

КПП:

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

; ВВОД с ПУЛЬТА ПАРАМЕТРОВ ДИРЕКТИВЫ rSB4 0Е02 MVI С.2

F8B6 CBF5FA CALL ВВ2Б

rSB9 Bl POP В i (D»E) - АДРЕС ВЕРХНЕЙ ГРАНИЦЫ

FSBA El POP H ; <H.L> - АДРЕС НИЖНЕЙ ГРАНИЦЫ



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.0167
Яндекс.Метрика