PIC Microcontroller Radix Math Method

ASCII Hex to Binary

; From Regulus Berdin; untested
; Input  - ASCII number in W
; Output - binary in W

         sublw   '9'
         movlw   'A' - .10
         skpnc
          movlw  '0'
         subwf   ASCII,w

Tracy Smith says:

If you KNOW that the ASCII is '0'-'9','A'-'F' then a simpler solution for the midrange pics is:
    addlw   -'A'
    skpc
     addlw  'A' - 10 + '0'
    addlw   10

If the ASCII value is in ram, then this solution will work for the 12 bit core too:

    movlw   -'A'
    btfsc   ASCII,6
     movlw  -'0'
    addwf   ASCII,f   ;(or w)