bcd2ascii.asm 429 B

123456789101112131415161718192021
  1. ; Вход R16
  2. ; Выход R16 младший полубайт - выходит на печать последним
  3. ; R17 старший полубайт - выходит на печать первым.
  4. BCD2ASCII:
  5. MOV R17,R16
  6. ANDI R16,0x0F
  7. subi R16,-0x30
  8. ANDI R17,0xF0
  9. SWAP R17
  10. subi R17,-0x30
  11. RET
  12. ;
  13. r16 = 0x23
  14. r16 & 0x0f == 0x03
  15. r16 + 0x30 == 0x33 == '3'
  16. r17 & 0xf0 == 0x20
  17. r17 swap == 0x02
  18. r17 + 0x30 == 0x32 == '2'