byte2asc.asm

来自「8051 进行加解密的源代码」· 汇编 代码 · 共 59 行

ASM
59
字号
===============================================================================;*******************************************************************************;           Returns the ASCII codes from the nibbles of a byte stored in the Acc.;           After being called the high nibble is in the Acc and the low nibble ;           is in the B register.;;;          ;usage:;;          mov a, #byte;          CALL nibble;;          ;returns;          ;A= high nibble;          ;B= low nibble;*******************************************************************************nibble:            mov   b,a          ; b=a        ; stores Acc in B            anl   a,#0f0h      ; a=xxxx0000    ; A && #f0h (get the high nibble)            swap  a            ; a=0000xxxx    ; swap nibbles            orl   a,#30h       ; a=0011xxxx    ; add #30h, if nibble is            push acc           ; 0-9 we have the ASCII value            push b             ; stores A and B            mov b, #3ah        ; stores #3ah in B            div ab             ; divide A/#3ah            jz, recupera1      ; if zero, nibble < #0Ahnibble1_ok:            pop b              ; recover B            pop acc            ; recover A            add a, #07h        ; adds #07h to get ASCII of A-F            xch a,b            jmp nibble2recupera1:            pop b            ; stores B            pop acc            ; stores A            xch a,bnibble2:            anl   a,#0fh        ; a=0000xxxx    ; A && #0fh (get low nibble)            orl   a,#30h        ; a=0011xxxx    ; add #30h, if nibble is            push acc            ; 0-9 we have the ASCII value            push b            ; stores A and B            mov b, #3ah            ; stores #3ah in B            div ab            ; divide A/#3ah            jz, recupera2        ; if zero, nibble < #0Ah            pop b            ; recover B            pop acc            ; recover A            add a, #07h        ; adds #07h to get ASCII of A-F            xch a,b            ret                ; return to main routinerecupera2:            pop b            ; recover B            pop acc            ; recover A            xch a,b            ret                ; return to main routine;*******************************************************************************

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?