回 帖 发 新 帖 刷新版面

主题:[原创]牛人看牛题

DIS PROC            ;子程序 
            MOV        CL,4 
            MOV        DL,BL 
            ROL        DL,CL 
            AND        DL,0FH 
            CMP        DL,0AH 
            JB         NEXT1 
            ADD        DL,37H 
            JMP        0K3 
     NEXT1: 
            ADD        DL,30H 
       OK3: 
            MOV        AH,02 
            INT        21H 
            AND        BL,0FH 
            MOV        DL,BL 
            CMP        DL,0AH 
            JB         NEXT2 
            ADD        DL,37H 
            JMP         OK4 
      NEXT2: 
            ADD        DL,30H 
       OK4: 
            MOV        AH,02H 
            INT        21H
            RET 
            DIS ENDP 
 [color=008000]帮忙解释下这子程序.
 在语句后加备注.[/color][em18]

回复列表 (共3个回复)

沙发

DIS PROC            ;子程序 
            MOV        CL,4 
            MOV        DL,BL 
            ROL        DL,CL    ;循环左移4位,把高四位和低四位换一下位置
            AND        DL,0FH   ;把高四位置0
            CMP        DL,0AH   ;和10相比
            JB         NEXT1     ;小于跳到next1处
            ADD        DL,37H     ;找到对应的英文字母的ascii值
            JMP        0K3 
     NEXT1: 
            ADD        DL,30H    ;加上30
       OK3: 
            MOV        AH,02    ;用十六进制显示bl中高位
            INT        21H 
            AND        BL,0FH    ;
            MOV        DL,BL 
            CMP        DL,0AH 
            JB         NEXT2 
            ADD        DL,37H 
            JMP         OK4 
      NEXT2: 
            ADD        DL,30H 
       OK4: 
            MOV        AH,02H   ;用十六进制显示bl中低位
            INT        21H
            RET 
            DIS ENDP 

板凳

;是个16进制显示程序,很进制进则的
DIS PROC            ;子程序 
            MOV        CL,4 
            MOV        DL,BL 
            ROL        DL,CL    ;循环左移4位,把高四位和低四位换一下位置
            AND        DL,0FH   ;把高四位置0
 _CC_FENXI: CMP        DL,0AH   ;和10相比
            JB         NEXT1     ;小于跳到next1处
            ADD        DL,37H     ;找到对应的英文字母的ascii值
            JMP        0K3 
     NEXT1: 
            ADD        DL,30H    ;加上30
       OK3: 
            MOV        AH,02    ;用十六进制显示bl中高位
            INT        21H 
            AND        BL,0FH    ;重复_CC_FENXI,但是是低位
            MOV        DL,BL 
            CMP        DL,0AH 
            JB         NEXT2 
            ADD        DL,37H 
            JMP         OK4 
      NEXT2: 
            ADD        DL,30H 
       OK4: 
            MOV        AH,02H   ;用十六进制显示bl中低位
            INT        21H
            RET 
            DIS ENDP 
;其实用shl bx,4|shr bl,4|and bx,0f0fh后再处理更好

3 楼


谢谢了~!基本上明白了

我来回复

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