汇编语言不停移动的矩形
时间: 2023-07-11 16:38:08 浏览: 36
要实现不停移动的矩形,可以使用一个循环来反复执行矩形的移动和绘制操作。以下是一个简单的示例程序,用于实现不停移动的矩形:
```
.MODEL SMALL
.STACK 100H
.DATA
RECTANGLE DB 20, 20, 60, 60 ; 矩形的左上角坐标和右下角坐标
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
MOV CX, 0 ; 初始化计数器为0
LOOP:
; 绘制矩形
MOV AH, 0CH
MOV AL, 0AH
MOV BH, 0
MOV DX, RECTANGLE
MOV CX, RECTANGLE+2
INT 10H
; 移动矩形
MOV AX, RECTANGLE+2 ; 获取矩形右下角的X坐标
ADD AX, 10 ; X坐标加上10
MOV RECTANGLE+2, AX ; 更新矩形右下角的X坐标
MOV AX, RECTANGLE ; 获取矩形左上角的Y坐标
ADD AX, 10 ; Y坐标加上10
MOV RECTANGLE, AX ; 更新矩形左上角的Y坐标
; 延时一段时间
MOV CX, 1000
DELAY:
LOOP DELAY
; 清屏
MOV AH, 06H
MOV AL, 00H
MOV BH, 07H
MOV CX, 0
MOV DX, 184FH
INT 10H
INC CX ; 计数器加1
JMP LOOP ; 跳转到循环开始处
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
```
在上述程序中,我们使用一个循环来反复执行矩形的移动和绘制操作。每次循环开始时,我们先用INT 10H中断绘制矩形,然后用MOV指令移动矩形。接着,我们使用一个简单的延时循环来等待一段时间,以便观察矩形的移动效果。最后,我们使用INT 10H中断清屏,以便在下一次循环开始时重新绘制矩形。