在汇编器中将字符转换为十六进制

Converting character to hex in assembler

所以现在我正在努力从键盘读取单个字符并显示其十六进制值。目前我相信我得到了正确的十六进制值,但它没有正确显示。例如,'k' 是十六进制的 6F,但它显示为“6;”。我知道必须在我的 DIS16 程序中进行更正,但我不确定何时以及该做什么。如果有人可以提供帮助,我将不胜感激。

DIS16   PROC

    mov cx, 0   


    mov bx, 16


numdiv:     

    mov dx, 0   


    div bx


    push dx


    add cx, 1


    cmp ax, 0   


    jne numdiv      


dispnum:


    pop dx


    add dl, 30h



    mov ah, 02h
    int 21h


    loop    dispnum

RET
DIS16   ENDP

由于字符 'A' 到 'F' 没有紧跟在 '9' 之后,您必须为此进行调整。 </p> <pre><code>; as you have it pop dx add dl, 30h cmp dl, '9' jbe skip add dl, 7 ; bump up to 'A' - 'F' skip: ; print it... as you were