⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 letter.asm

📁 两个汇编程序
💻 ASM
字号:

     STACKSG  SEGMENT   STACK 'STACK'
              DW        32  DUP(?)
     STACKSG  ENDS


      DATASG  SEGMENT

      INFORM  DB        '******************************************',0DH,0AH
              DB        '* 1 Capital letter to small    letter!   *',0DH,0AH
              DB        '* 2 SMALL   LETTER TO CAPITAL  LETTER!   *',0DH,0AH
              DB        '* 3 Quit                                 *',0DH,0AH
              DB        '******************************************',0DH,0AH
              DB        '    MADE BY  CHEN YI HUI  2004/12/03/     ',0DH,0AH
              DB        'Please input  1 or 2 or 3   $',0DH,0AH
         MSG  DB        ' Please enter the Capital letter!    $'
        MSG2  DB        ' Please enter the Small letter!    $'
        MSG3  DB        ' Error! Please input 1-3','$'
        STR1  DB        16,?,16 DUP(?)
          CR  EQU       13
          LF  EQU       10
        CRLF  DB        CR,LF,'$'
         RES  DB        '  The result is:$'

      DATASG  ENDS


      CODESG  SEGMENT

              ASSUME    SS:STACKSG,DS:DATASG,CS:CODESG
        MAIN  PROC      FAR

      START:  MOV       AX,DATASG
              MOV       DS,AX


              LEA       DX,INFORM
              MOV       AH,09H
              INT       21H





      AGAIN:  MOV       AH,01H
              INT       21H

              CMP       AL,'1'
              JNE       NEXT1
              CALL      SUB1
      NEXT1:  CMP       AL,'2'
              JNE       NEXT2
              CALL      SUB2
      NEXT2:  CMP       AL,'3'
              JNE       ERROR
              CALL      EXIT
              RET
      ERROR:  LEA       DX,MSG3
              MOV       AH,09H
              INT       21H

              LEA       DX,CRLF
              MOV       AH,9
              INT       21H
              LEA       DX,CRLF
              MOV       AH,9
              INT       21H
              JMP       AGAIN


        MAIN  ENDP

        SUB1  PROC      NEAR

              LEA       DX,MSG
              MOV       AH,09H
              INT       21H
              LEA       DX,CRLF
              MOV       AH,9
              INT       21H



              LEA       DX,STR1
              MOV       AH,10
              INT       21H
              LEA       DX,CRLF
              MOV       AH,9
              INT       21H



              LEA       SI, STR1+1
              MOV       BX,OFFSET STR1+2
              MOV       CX,0
              MOV       CL,[SI]

     LETTER:
              MOV       AL,[BX]
              CMP       AL,20H
              JZ        BBB
              ADD       AL,20H
              MOV       [BX],AL
        BBB:  INC       BL
              ;DEC       CL
              LOOP      LETTER

              LEA       DX,RES
              MOV       AH,9
              INT       21H


              XOR       BH,BH
              MOV       BL,STR1+1
              MOV       STR1[BX+2],'$'



              LEA       DX,STR1+2
              MOV       AH,9
              INT       21H


              LEA       DX,CRLF
              MOV       AH,9
              INT       21H

              LEA       DX,CRLF
              MOV       AH,9
              INT       21H


              CALL      MAIN

              CALL      EXIT


        SUB1  ENDP
        SUB2  PROC      NEAR


              LEA       DX,MSG2
              MOV       AH,09H
              INT       21H
              LEA       DX,CRLF
              MOV       AH,9
              INT       21H
              LEA       DX,STR1
              MOV       AH,10
              INT       21H
              LEA       DX,CRLF
              MOV       AH,9
              INT       21H


              LEA       SI, STR1+1
              MOV       BX,OFFSET STR1+2
              MOV       CX,0
              MOV       CL,[SI]


    LETTER1:
              MOV       AL,[BX]
              SUB       AL,20H
              MOV       [BX],AL
              INC       BL
              ;DEC       CX
              LOOP      LETTER1

              LEA       DX,RES
              MOV       AH,9
              INT       21H

              XOR       BH,BH
              MOV       BL,STR1+1
              MOV       STR1[BX+2],'$'


              LEA       DX,STR1+2
              MOV       AH,9
              INT       21H


              LEA       DX,CRLF
              MOV       AH,9
              INT       21H

              LEA       DX,CRLF
              MOV       AH,9
              INT       21H
              CALL      MAIN
              CALL      EXIT

        SUB2  ENDP
        EXIT  PROC      NEAR
              MOV       AH,4CH
              INT       21H
        EXIT  ENDP








      CODESG  ENDS
              END       START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -