汇编语言大小写字母转换程序

2025-03-05 12:08:33
推荐回答(1个)
回答1:

        CODE  SEGMENT
              ASSUME    CS:CODE
 
        BUFF  DB        13,10,' INSERT:','$'
 
      START:  PUSH      CS
              POP       DS
              PUSH      CS
              POP       ES
              LEA       DX,BUFF
              MOV       AH,9
              INT       21H
              MOV       AH,1
              INT       21H
              CALL      ISLOW
              CALL      LFCR
              CMP       AH,1
              JE        @1
              MOV       DL,AL
              MOV       AH,2
              INT       21H
              JMP       @2
         @1:
              SUB       AL,20H
              MOV       DL,AL
              MOV       AH,2
              INT       21H
         @2:
              MOV       AH,4CH
              INT       21H
       
;========================================================
; 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
;====================================================
        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