注册 登录
编程论坛 汇编论坛

大家帮忙看看,这个程序的功能是什?我没看懂!

myqyln 发布于 2011-12-04 23:00, 569 次点击


CODE SEGMENT

      ASSUME CS:CODE

START: MOV   AL,3EH

       MOV   BL,AL

       MOV   DL,AL

       MOV   CL,4

       SHR   DL,CL

       CMP   DL,9

       JBE    NEXT1

       ADD   DL,7

NEXT1: ADD   DL,30H

       MOV   AH,2

       INT    21H

       MOV   DL,BL

       AND   DL,0FH

       CMP   DL,9

       JBE    NEXT2

       ADD   DL,7

NEXT2: ADD   DL,30H

       MOV   AH,2

       INT    21H

       MOV   AH,4CH

       INT    21H

CODE  ENDS

       END START

 它实现的是什么功能???
3 回复
#2
zaixuexi2011-12-05 10:00
程序代码:
CODE SEGMENT
      ASSUME CS:CODE
START:
        MOV   AL,3EH       ;unsigned char num = 0x3E;
        MOV   BL,AL      
        MOV   DL,AL        ;unsigned char tmp = num;
        MOV   CL,4
        SHR   DL,CL        ;tmp = (unsigned char)(tmp >> 4);
        CMP   DL,9
        JBE   NEXT1        ;if (tmp  <= 9) goto NEXT1;
        ADD   DL,7         ;else tmp += 7;
NEXT1:
        ADD   DL,30H       ;tmp += '0';
        MOV   AH,2
        INT   21H          ;putchar(tmp);
        MOV   DL,BL        ;tmp = num;
        AND   DL,0FH       ;tmp &= 0x0F;
        CMP   DL,9
        JBE   NEXT2        ;if (tmp  <= 9) goto NEXT1;
        ADD   DL,7         ;else tmp += 7;
NEXT2:
        ADD   DL,30H       ;tmp += '0';
        MOV   AH,2
        INT   21H          ;putchar(tmp);
        MOV   AH,4CH
        INT   21H          ;exit(0);
CODE  ENDS
END START
再看不懂我也没办法了,你只能自己多努力了
#3
myqyln2011-12-06 22:00
嗯嗯!我会好好看的,谢谢!
#4
yjh333x2011-12-07 20:16
是将一个2位的16进制的数的高位与低位以ASCAII码输出至屏幕
1