TRANSCODE1: |
ANI 0FH |
|
MOV C,A |
||
MVI B,0 |
В паре ВС - 2-10 код |
|
LXI H, TADLECODE |
В паре HL – начальный адрес таблицы |
|
DAD B |
Определение адресов, соответствующих данному символу, т.е. (HL)¬ (HL)+(BC). |
|
MOV A,M |
||
RET |
4.4 Подпрограмма TRANSCODE2.
TRANSCODE2: |
ANI F0H |
|
RAR |
||
RAR |
||
RAR |
||
RAR |
||
MOV C,A |
||
MVI B,0 |
В паре ВС - 2-10 код |
|
LXI H, TADLECODE |
В паре HL – начальный адрес таблицы |
|
DAD B |
Определение адресов, соответствующих данному символу, т.е. (HL)¬ (HL)+(BC). |
|
MOV A,M |
||
RET |
4.4 Подпрограмма TABLECODE.
Подпрограмма TABLECODE предназначена для преобразования 2-10 кода в 7-сегментный код.
TABLECODE: |
DB 3FH |
BCD-код соответствующий «0» |
DF 06H |
BCD-код соответствующий «1» |
|
DF 56H |
BCD-код соответствующий «2» |
|
DF 4FH |
BCD-код соответствующий «3» |
|
DF 66H |
BCD-код соответствующий «4» |
|
DF 6DH |
BCD-код соответствующий «5» |
|
DF 7DH |
BCD-код соответствующий «6» |
|
DF 07H |
BCD-код соответствующий «7» |
|
DF 7FH |
BCD-код соответствующий «8» |
|
DF 6FH |
BCD-код соответствующий «9» |
4.5 Подпрограмма PREOBR.
Подпрограмма PREOBR предназначена для преобразования двоичных чисел в 2-10 код. Входными параметрами для данной программы являются регистры В и С – двоичное число, а выходными параметрами регистры А, Н и L – эквивалентное 2-10 число.
PREOBR: |
XRA A |
Обнуление текущей суммы (С,Н,L) |
MOV H,A |
||
MOV L,A |
||
MOV D,B |
||
MOV E,C |
Исходное число |
|
MOV C,A |
||
MVI B,16 |
Счетчик циклов |
|
M1: |
XCHG |
Сдвиг двоичного числа влево |
DAD H |
||
XCHG |
||
MOV A,L |
2-10 удвоение суммы с учетом переноса |
|
ADC L |
||
DAA |
||
MOV L,A |
||
MOV A,H |
||
ADC H |
||
DAA |
||
MOV H,A |
||
MOV A,C |
||
ADC C |
||
DAA |
||
MOV C,A |
||
DCR B |
Проверка конца цикла |
|
JNZ M1 |
Зацикливание |
|
MOV A,C |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.