回 帖 发 新 帖 刷新版面

主题:各位大师,我是初学者,有个问题想请教

请问怎么用汇编实现从键盘接受两位十六进制数并将其转化为等值十进制数并显示,要求至少设计一个子程序~~~~
希望各位大师指点一下,哈~~~~
本人还没入门~~~~[em8]一定继续努力[em1]

回复列表 (共2个回复)

沙发

DSEG    SEGMENT
TAB1    DB    00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
         DB       7 DUP(0),0AH,0BH,0CH,0DH,0EH,0FH
TAB2    DB    '0123456789'
D100    DB      100
D10     DB      10
DSEG    ENDS
CSEG    SEGMENT
    ASSUME    CS:CSEG,DS:DSEG
START:    MOV    AX,DSEG
    MOV    DS,AX
        LEA     BX,TAB1
    MOV    AH,01H
    INT    21H
        SUB     AL,30H
        XLAT
        MOV     CL,16
        MUL     CL
        MOV     CL,AL
        MOV     AH,01H
        INT     21H
        SUB     AL,30H
        XLAT
        ADD     AL,CL
        XOR     AH,AH
        CALL    DEGITAL
        LEA     BX,TAB2
        MOV     AL,DH
        XLAT
        MOV     DL,AL
        MOV     AH,02H
        INT     21H
        MOV     AL,CL
        XLAT
        MOV     DL,AL
        MOV     AH,02H
        INT     21H
        MOV     AL,CH
        XLAT
        MOV     DL,AL
        MOV     AH,02H
        INT     21H
        MOV     AH,4CH
        INT     21H
DEGITAL PROC    NEAR
        DIV     D100
        MOV     DH,AL
        MOV     AL,AH
        XOR     AH,AH
        DIV     D10
        MOV     CX,AX
        RET
DEGITAL ENDP
CSEG    ENDS
        END     START

只是个初稿,正在修改中
        

板凳

DSEG    SEGMENT
TAB1    DB    00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
         DB       7 DUP(0),0AH,0BH,0CH,0DH,0EH,0FH
TAB2    DB    '0123456789'
D100    DB      100
D10     DB      10
DSEG    ENDS
CSEG    SEGMENT
    ASSUME    CS:CSEG,DS:DSEG
START:    MOV    AX,DSEG
    MOV    DS,AX
        LEA     BX,TAB1
    MOV    AH,01H
    INT    21H
        SUB     AL,30H
        XLAT
        MOV     CL,16
        MUL     CL
        MOV     CL,AL
        MOV     AH,01H
        INT     21H
        SUB     AL,30H
        XLAT
        ADD     AL,CL
        XOR     AH,AH
        PUSH    AX
        MOV     DL,'='
        MOV     AH,02H
        INT     21H
        POP     AX
        CALL    DEGITAL
        LEA     BX,TAB2
        CMP     DH,0
        JE      J1
        MOV     AL,DH
        XLAT
        CALL    PUT
J1:     CMP     CL,0
        JE      J2
        MOV     AL,CL
        XLAT
        CALL    PUT
J2:     MOV     AL,CH
        XLAT
        CALL    PUT
        MOV     AH,4CH
        INT     21H
DEGITAL PROC    NEAR
        DIV     D100
        MOV     DH,AL
        MOV     AL,AH
        XOR     AH,AH
        DIV     D10
        MOV     CX,AX
        RET
DEGITAL ENDP

PUT     PROC    NEAR
        MOV     DL,AL
        MOV     AH,02H
        INT     21H
        RET
PUT     ENDP
        
CSEG    ENDS
        END     START

结果比较友好的源程序

我来回复

您尚未登录,请登录后再回复。点此登录或注册