微机原理,接收键盘输入的一个字符,如果是小字母,屏幕显示“right”.否则显示“wrong”

如题所述

        CODE  SEGMENT
              ASSUME    CS:CODE
 
        BUFF  DB        13,10,'please input a char: ','$'
        MSG1  DB        13,10,'right',13,10,'$'
        MSG2  DB        13,10,'wrong',13,10,'$'
 
      START:  PUSH      CS
              POP       DS
              PUSH      CS
              POP       ES
              LEA       DX,BUFF
              MOV       AH,9
              INT       21H
              MOV       AH,1
              INT       21H
              CALL      ISLOW
              CMP       AH,1
              JE        @1
              LEA       DX,MSG2
              MOV       AH,9
              INT       21H
              JMP       @2
         @1:
              LEA       DX,MSG1
              MOV       AH,9
              INT       21H
         @2:
              MOV       AH,4CH
              INT       21H
       
;========================================================
; al--为要判断的字符,ah--为返回结果
;                       ah=1 为是; ah=0 为否
      ISDIGT  PROC      NEAR
              PUSH      ES
              PUSH      CX
              PUSH      DI
              PUSHF
              PUSH      CS
              POP       ES
              LEA       DI,@DIGTCHS
              MOV       CX,10
              REPNE     SCASB
              JE        @ISDIGT1
              MOV       AH,0
              JMP       @ISDIGTEXIT
   @ISDIGT1:
              MOV       AH,1
            @ISDIGTEXIT:
              POPF
              POP       DI
              POP       CX
              POP       ES
              RET
    @DIGTCHS  DB        '0123456789'
      ISDIGT  ENDP
       
;========================================================
; al--为要判断的字符,ah--为返回结果
;                       ah=1 为是; ah=0 为否
        ISUP  PROC      NEAR
              PUSH      ES
              PUSH      CX
              PUSH      DI
              PUSHF
              PUSH      CS
              POP       ES
              LEA       DI,@UPCHS
              MOV       CX,26
              REPNE     SCASB
              JE        @ISUP1
              MOV       AH,0
              JMP       @ISUPEXIT
     @ISUP1:
              MOV       AH,1
  @ISUPEXIT:
              POPF
              POP       DI
              POP       CX
              POP       ES
              RET
      @UPCHS  DB        'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        ISUP  ENDP
;========================================================
; al--为要判断的字符,ah--为返回结果
;                       ah=1 为是; ah=0 为否
       ISLOW  PROC      NEAR
              PUSH      ES
              PUSH      CX
              PUSH      DI
              PUSHF
              PUSH      CS
              POP       ES
              LEA       DI,@LOWCHS
              MOV       CX,26
              REPNE     SCASB
              JE        @ISLOW1
              MOV       AH,0
              JMP       @ISLOWEXIT
    @ISLOW1:
              MOV       AH,1
 @ISLOWEXIT:
              POPF
              POP       DI
              POP       CX
              POP       ES
              RET
     @LOWCHS  DB        'abcdefghijklmnopqrstuvwxyz'
       ISLOW  ENDP
;========================================================
; al--为要判断的字符,ah--为返回结果
;                       ah=1 为是; ah=0 为否
      ISCHAR  PROC      NEAR
              PUSH      ES
              PUSH      CX
              PUSH      DI
              PUSHF
              PUSH      CS
              POP       ES
              LEA       DI,@CHS
              MOV       CX,52
              REPNE     SCASB
              JE        @ISCHAR1
              MOV       AH,0
              JMP       @ISCHAREXIT
   @ISCHAR1:
              MOV       AH,1
            @ISCHAREXIT:
              POPF
              POP       DI
              POP       CX
              POP       ES
              RET
        @CHS  DB        'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
      ISCHAR  ENDP
;===============================================================
        LFCR  PROC      NEAR
              PUSH      AX
              PUSH      DX
              MOV       AH,2
              MOV       DL,13
              INT       21H
              MOV       DL,10
              INT       21H
              POP       DX
              POP       AX
              RET
        LFCR  ENDP
;=============================
        CODE  ENDS
              END       START

温馨提示:答案为网友推荐,仅供参考
相似回答