;************************* C10_16****************************** |
||
; Подпрограмма преобразования целого двоично-десятичного числа ; без знака формата 4*4 в двоичное число формата 16. ; Входные параметры: (В,С) - двоично-десятичное число ( Р3Р2Р3Р0). ; Выходные параметры: (H,L) - эквивалентное двоичное число. ; Используется подпрограмма С10_8. |
||
;**************************************************************** |
||
; Вычисление выражения Q1=(P3*10+P2) |
||
C10_16: |
MOV А, B |
; (A) - число (Р3Р2) |
PUSH В |
||
CALL С10_8 |
; (A) - двоичное число Q1 |
|
POP B |
||
; Вычисление выражения Q1*10 |
||
MVI H, 0 |
||
MOV L, A |
; (H,L) - Q1 |
|
DAD H |
; (H,L) - Q1*2 |
|
PUSH H |
||
POP D |
; (D,E) - Q1*2 |
|
DAD H |
||
DAD H |
; (H,L) - Q1*8 |
|
DAD D |
; (H,L) - Q1*(8+2) |
|
; Выделение цифры Р1 |
||
MOV A, C |
||
ANI 0F0H |
; Маска на цифру |
|
RRC |
||
RRC |
||
RRC |
||
RRC |
; (А) - цифра Р1 |
|
; Вычисление выражения Q2=(Q1*10+P1) |
||
MVI D, 0 |
||
MOV E, A |
||
DAD D |
(H,L) - Q2 |
|
; Вычисление выражения Q2*10 |
||
DAD H |
; (H,L) - Q2*2 |
|
PUSH H |
||
POP D |
; (D,E) - Q2*2 |
|
DAD H |
||
DAD H |
; (H,L) - Q2*8 |
|
DAD D |
; (H,L) - Q2*10 |
|
; Вычисление выражения (Q2*10+P1) |
||
MOV A, C |
||
ANI 0FH |
; Маска на цифру |
|
MVI D, 0 |
||
MOV E, A |
||
DAD D |
; (H,L) - (((P3*10+P2)*10+P1)*10+P0) |
|
RET |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.