www.pudn.com > ASM11.rar > ex1add.asm


        DATA  SEGMENT 
      RESULT  DB        ? 
       INFON  DB        0DH,0AH,'please input a number:$' 
          RS  DB        13,10 ,'Add result is:$' 
 
        DATA  ENDS 
 
        CODE  SEGMENT 
              ASSUME    DS:DATA ,CS:CODE 
 
 
 
      START:  MOV       AX,DATA 
              MOV       DS,AX 
 
 
    MESSAGE:  LEA       DX,INFON    ;显示输入提示 
              MOV       AH,9 
              INT       21H 
 
      FIRST:  MOV       AH,01H      ;输入一个数并显示 
              INT       21H 
 
              CMP       AL,30H      ;判断输入的是否为数字 
              JL        MESSAGE 
              CMP       AL,39H 
              JA        MESSAGE 
 
 
              MOV       DL,AL       ;al存入dl,dx入栈 
              PUSH      DX 
 
 
   MESSAGE1:  LEA       DX,INFON    ;显示输入提示 
              MOV       AH,9 
              INT       21H 
 
     SECOND:  MOV       AH,01H      ;输入一个数并显示 
              INT       21H 
 
              CMP       AL,30H      ;判断输入的是否为数字 
              JL        MESSAGE1 
              CMP       AL,39H 
              JA        MESSAGE1 
 
        SUM:  POP       DX          ;弹出第一个数 
              AND       DL,0FH      ;把十六进制变为十进制 
              AND       AL,0FH 
              ADD       DL,AL 
              ADD       DL,30H      ;十进制变为十六进制 
 
              MOV       RESULT,DL 
              CMP       RESULT,39H  ;结果是否大于9 
              LEA       DX,RS 
              MOV       AH,9 
              INT       21H 
              JLE       PRINT1      ;结果小于等于9跳转 
                                      ;显示十位数 
    PRINT10:  SUB       RESULT,0AH  ;结果减去十进制10 
              MOV       DL,31H      ;高位显示1 
              MOV       AH,2 
              INT       21H 
 
                                     ;显示个位数 
     PRINT1: 
              MOV       DL,RESULT 
              MOV       AH,2 
              INT       21H 
 
 
 
       EXIT:  MOV       AH, 4CH 
              INT       21H 
 
        CODE  ENDS 
              END       START