| ;************************** C8_10 ****************************** | ||
| ; Подпрограмма преобразования двоичного целого беззнакового числа ; формата 8 в двоично-десятичное (код 8421) число формата 3*4. ; Входной параметр: (С) - двоичное число. ; Выходной параметр: (Н,L) - эквивалентное двоично-десятичное число ; (3 цифры). | ||
| ;**************************************************************** | ||
| C8_10: | LXI H, 0 | ; Обнуление текущей суммы | 
| MVI B, 8 | ; Счетчик циклов | |
| ; Сдвиг двоичного числа влево | ||
| CYCLE: | MOV A, C | |
| RLC | ||
| MOV C, A | ||
| ; Двоично-десятичное удвоение суммы с учетом переноса | ||
| MOV A, L | ||
| ADC L | ||
| DAA | ||
| MOV L, A | ||
| MOV A, H | ||
| ADC H | ||
| DAA | ||
| MOV H, A | ||
| ; Проверка конца цикла | ||
| DCR B | ||
| JNZ CYCLE | ; Зацикливание | |
| RET | ||
| ;************************** C16_10 ***************************** | |||
| ; Подпрограмма преобразования двоичного целого беззнакового числа ; формата 16 в двоично-десятичное (код 8421) число формата 5*4. ; Входной параметр: (В,С) - двоичное число. ; Выходные параметры: (А,Н,L) - эквивалентное двоично-десятичное число ; (5 цифр). | |||
| ;**************************************************************** | |||
| ; Обнуление текущей суммы (С,Н,L) | |||
| C16_10: | XRA A | ||
| MOV H, A | |||
| MOV L, A | |||
| MOV D, B | |||
| MOV E, C | ; (D,E) - исходное число | ||
| MOV C, A | |||
| MVI B, 16 | ; Счетчик циклов | ||
| ; Сдвиг двоичного числа влево | |||
| CYCLE: | XCHG | ||
| DAD H | |||
| XCHG | |||
| ; Двоично-десятичное удвоение суммы с учетом переноса | |||
| MOV A, L | |||
| 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 CYCLE | ; Зацикливание | ||
| MOV A, C | |||
| RET | |||
| ;************************** C10_8****************************** | |||
| ; Подпрограмма преобразования целого двоично-десятичного числа ; без знака формата 2*4 в двоичное число формата 8. ; Входной параметр: (А) - двоично-десятичное число. ; Выходной параметр: (А) - эквивалентное двоичное число. | |||
| ;**************************************************************** | |||
| ; Выделение старшей (СТЦ) и младшей (МЛЦ) цифр числа | |||
| C10_8: | MOV В, A | ||
| ANI 0FH | |||
| MOV C, A | ; (С) - МЛЦ | ||
| MOV А, B | |||
| ANI 0F0H | |||
| RRC | |||
| MOV В, A | ; (В) = СТЦ*8 | ||
| ; Двоичное сложение: СТЦ*(8+2)+МЛЦ | |||
| RRC | |||
| RRC | ; (А) = СТЦ*2 | ||
| ADD B | ; (А) = СТЦ*(8+2) | ||
| ADD C | ; (А) = СТЦ*10+МЛЦ | ||
| RET | |||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.