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

📄 汇编语言.txt

📁 汇编语言编写的 小案例 方块 能通过光标的控制实现自由移动
💻 TXT
字号:
STACK SEGMENT STACK
      DW 64 DUP(?)
STACK ENDS
DATA  SEGMENT   
MANU  DB 11
      DB 02H,09H,0,0
      DB 0DBH,09H,1,-2
      DB 0DBH,09H,0,1
      DB 0DBH,09H,0,1
      DB 0DBH,09H,0,1
      DB 0DBH,09H,0,1
      DB 03H,0CH,1,-2
      DB 0DBH,09H,1,-1
      DB 0DBH,09H,0,2
      DB 0DBH,09H,1,-3
      DB 0DBH,09H,0,4
MANL  DB 11
      DB 0DBH,09H,0,0
      DB 0DBH,09H,0,-3
      DB 0DBH,09H,1,0
      DB 0DBH,09H,0,2
      DB 02H,09H,1,-3
      DB 0DBH,09H,0,1
      DB 03H,0CH,0,1
      DB 0DBH,09H,1,-1
      DB 0DBH,09H,0,2
      DB 0DBH,09H,1,-2
      DB 0DBH,09H,0,3
MAND  DB 11
      DB 0DBH,09H,0,0
      DB 0DBH,09H,0,-4
      DB 0DBH,09H,1,1
      DB 0DBH,09H,0,2
      DB 03H,0CH,1,-1
      DB 0DBH,09H,1,-2
      DB 0DBH,09H,0,1
      DB 0DBH,09H,0,1
      DB 0DBH,09H,0,1
      DB 0DBH,09H,0,1
      DB 02H,09H,1,-2
MANR  DB 11
      DB 0DBH,09H,0,0
      DB 0DBH,09H,0,-3
      DB 0DBH,09H,1,1
      DB 0DBH,09H,0,2
      DB 03H,0CH,1,-1
      DB 0DBH,09H,0,1
      DB 02H,09H,0,1
      DB 0DBH,09H,1,-3
      DB 0DBH,09H,0,2
      DB 0DBH,09H,1,-3
      DB 0DBH,09H,0,3
MES   DB 'Are you sure?(Y/N)$'
DATA  ENDS
CODE  SEGMENT 
      ASSUME CS:CODE,DS:DATA,SS:STACK
START:SUB AX,AX
      PUSH AX
      MOV AX,DATA
      MOV DS,AX
      CALL CLEAR
      LEA SI,MANU   ;取向上的图
      MOV DH,12
      MOV DL,40
      MOV AL,3
      MOV AH,0
      INT 10H
      CALL DISP
AGAIN: MOV AH,0
       INT 16H
       CMP AL,1BH
       JZ FINISH
       MOV AL,AH
       CMP AL,48H    ;上箭头
       JNZ MOV_D
       CALL CLEAR
       DEC DH
       LEA SI,MANU
       CALL DISP
       JMP AGAIN
MOV_D: CMP AL,50H     ;下箭头
       JNZ MOV_L
       CALL CLEAR
       LEA SI,MAND
       CALL DISP
       INC DH
       JMP AGAIN
MOV_L: CMP AL,4BH      ;左箭头
       JNZ MOV_R
       CALL CLEAR
       LEA SI,MANL
       CALL DISP
       DEC DL
       JMP AGAIN
MOV_R: CMP AL,4DH       ;右箭头
       JNZ AGAIN
       CALL CLEAR
       LEA SI,MANR
       CALL DISP
       INC DL
       JMP AGAIN
FINISH:CALL CLEAR
       PUSH DX
       MOV DX,OFFSET MES
       MOV AH,9
       INT 21H
INPUT: MOV AH,0
       INT 16H
       CMP AL,'Y'
       JZ EXIT
       CMP AL,'y'
       JZ EXIT
       CMP AL,'N'
       JZ NO
       CMP AL,'n'
       JZ NO
       JMP INPUT
NO:    POP DX
       CALL CLEAR
       CALL DISP
       JMP AGAIN
EXIT:  CALL CLEAR
       MOV AH,4CH
       INT 21H
CLEAR  PROC NEAR
       PUSH AX
       PUSH BX
       PUSH CX
       PUSH DX
       MOV AH,6
       MOV AL,0
       MOV CX,0
       MOV DH,24
       MOV DL,79
       MOV BH,7
       INT 10H
       POP DX
       POP CX
       POP BX
       POP AX
       RET 
CLEAR  ENDP
DISP   PROC NEAR
       PUSH AX
       PUSH BX
       PUSH CX
       PUSH DX
       PUSH SI
       SUB CH,CH
       MOV CL,[SI]
       INC SI
NEXT:  ADD DH,[SI+2]
       ADD DL,[SI+3]
       MOV AH,2
       INT 10H
       MOV AL,[SI]
       MOV BL,[SI+1]
       PUSH CX
       MOV CX,1
       MOV AH,9
       INT 10H
       POP CX
       ADD SI,4
       LOOP NEXT
       POP SI
       POP DX
       POP CX
       POP BX
       POP AX
       RET
DISP   ENDP
CODE   ENDS
       END START

⌨️ 快捷键说明

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