| ;************************* 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).
Ссылка на скачивание - внизу страницы.