BITMAPS_ADDRESSES:
   DW   0x0000     ; char with code 0x00 is not printable
   DW   0x0000     ; char with code 0x01 is not printable
; ....
   DW   BMP_SPACE  ; address of bitmap of char 'space' (0x20)
   DW   BMP_EXCLA  ; exclamation sign
; etc for all 256 possible signs

; Bitmaps
; - space
BMP_SPACE:
   DB   0x00,0x00,0x00,0x00,0x00
BMP_EXCLA:
   DB   0x00,0x00,0x7D,0x00,0x00
; etc for all printable signs

; Now you may easy print all your chars:
PRN_CHAR:
; A - code of the char

; check is char printable
; by loading its bitmap address
   MOV   DPTR,#BITMAPS_ADDRESSES
   ADD   A,ACC          ; due address contain two bytes
   JNC   PRN_CHAR_0
   INC   DPH            ; due table has 256+256 bytes
PRN_CHAR_0:
   MOV   R0,A
   INC   A
   MOVC  A,@A+DPTR      ; low byte of address
   XCH   A,R0
   MOVC  A,@A+DPTR      ; high byte of address
; load bitmap address into DPTR
   MOV   DPH,A
   MOV   DPL,R0
; check is address zero
   ORL   A,R0
   JZ    PRN_CHAR_EXIT  ; not printable char - exit
; printable char - DPTR contains its bitmap address
   CALL  PRN_BMP        ; display bitmap 7x5
PRN_CHAR_EXIT:
   RET