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

📄 guess.asm

📁 汇编实验课教学最常使用的实验内容
💻 ASM
字号:
        DATA  SEGMENT
          D1  DB        0dh, 0ah,'Too large,try one more time$'
          D2  DB        0dh, 0ah,'Too bad,you have no chance!Game Over!$'
          D3  DB        0dh, 0ah,'Too small,try one more time!$'
         D_4  DB        0dh, 0ah,'Too bad,you have no chance!Game Over!$'
          D5  DB        0dh, 0ah,'Excellent!!!$'
          D6  DB        0dh, 0ah,'Very Good!!$'
          D7  DB        0dh, 0ah,'Right!You found out it eventually.$'
      WARN_1  DB        0dh, 0ah,'Would you like to play again(Yes/No)?$'
      WARN_2  DB        0dh, 0ah,'I have a number which is between 0 and 100,can you find out it?you haveonly 10 times.Let us Start?!$'
      WARN_3  DB        0dh, 0ah,'Sorry,you should input a number less than 101.$'
      WARN_4 DB         0DH,0AH,'Now,you can input your guess:','$'
      WARN_5  DB        0DH,0AH,'You input wrong order!$'
        DST1  DB        12,0,12 DUP(?)
        DST2  DB        8,0,8 DUP(?)
        DST3  DB        8,0,8 DUP(?)
        DAT1  DB        ?
        DAT2  DB        ?
        DAT3  DB        10,0,10 DUP(?)
        DAT4  DB        '100'
        DAT5  DB        'Start'
        DAT6  DB        'Yes'
        DAT7  DB        'No'
        DATA  ENDS
        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
      START:  MOV       AX,DATA
              MOV       DS,AX
              MOV       ES,AX
              LEA       DX,WARN_2
              MOV       AH,09H
              int       21h
        ST1:  LEA       DX,DST1
              MOV       AH,0AH
              int       21h
              MOV       BX,2
              CLD
              LEA      DI,DST1[BX]
              LEA      SI,DAT5
              MOV      CX,5
              REPE    CMPSB

              JNZ      ST_1
              JZ      AG_ONCE
        ST_1:  LEA    DX,WARN_5
                MOV  AH, 09H
              INT  21H
              JMP   ST1
    AG_ONCE:  MOV       AH,2CH
              INT       21H
              MOV       DAT1,DL
              MOV       CX,0
        AG1:  INC       CX
              CMP       CX,11
              JGE       AGAIN1
              MOV        BX,2
              LEA       DX,WARN_4
              MOV       AH,09H
              INT 21H
              LEA       DX,DAT3
              MOV       AH,0AH
              INT       21H
              MOV       AL,DAT3[BX-1]
            
              CMP       AL,1
              JNE       AST2
           
              SUB       DAT3[BX],30H
              MOV       DL,DAT3[BX]
              MOV       DAT2,DL
              JMP       ST3
      EXIT1:  JMP       EXIT
       AST2:  CMP       AL,2
              JNZ       ST2_1
              MOV       BX,2
              SUB       DAT3[BX],'0'
              PUSH      AX
              MOV       AL,DAT3[BX]
              MOV       DL,10
              MUL       DL
              INC       BX
              SUB       DAT3[BX],30H
              MOV       DL,DAT3[BX]
              ADD       AL,DL
              MOV       DAT2,AL
              POP       AX
              JMP       ST3
       AG_1:  JMP       AG1
      ST2_1:  PUSH      CX
              MOV       CX,3
              CLD
              LEA       SI,DAT4
              LEA       DX,DAT3[2]
              REPE      CMPSB
              JNE       ST2_2
              MOV       DAT2,100
              POP       CX
              JMP       ST3
     AGAIN1:  JMP       AGAIN
      st2_2:  POP CX
              LEA       DX,WARN_3
              MOV       AH,09H
              INT       21H
              JMP       AG1
        ST3:  MOV       AL,DAT2
              CMP       AL,DAT1
              JNZ       ST7
              CMP       CX,4
              JGE       ST4
              LEA       DX,D5
              MOV       AH,09H
              INT       21H
              JMP       AGAIN
        ST4:  CMP       CX,7
              JGE       ST5
              LEA       DX,D6
              MOV       AH,09H
              INT       21H
              JMP       AGAIN
   AG_ONCE1:  JMP       AG_ONCE
        ST5:  LEA       DX,D7
              MOV       AH,09H
              INT       21H
              JMP       AGAIN
        ST7:  MOV       AL,DAT2
              CMP       AL,DAT1
              JG        ST9
              CMP       CX,10
              JGE       ST8
              LEA       DX,D3
              MOV       AH,09H
              INT       21H
              JMP       AG_1
        ST8:  LEA       DX,D_4
              MOV       AH,09H
              INT       21H
              JMP       AGAIN
        ST9:  CMP       CX,10
              JGE       ST10
              LEA       DX,D1
              MOV       AH,09H
              INT       21H
              JMP       AG_1
       ST10:  LEA       DX,D2
              MOV       AH,09H
              INT       21H
              JMP       AGAIN

      AGAIN:  LEA       DX, WARN_1
              MOV       AH,09H
              INT       21H
              LEA       DX,DST2
              MOV       AH,0AH
              INT       21H
              MOV       BX,2
              CLD
              LEA   DI,DST2[BX]
              LEA   SI,DAT6
              REPE  CMPSB
              JZ        AG_ONCE1 
            
              CLD
              MOV  BX,2
              MOV  CX,2
              LEA   DI,DST2[BX]
              LEA    SI,DAT7
              REPE  CMPSB
              JZ   EXIT
              LEA  DX,WARN_5
              MOV  AH,09H
              INT  21H
              JMP  AGAIN
       EXIT:  MOV       AH ,4CH
              INT       21H
        CODE  ENDS
              END       START
           

⌨️ 快捷键说明

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