用汇编语言编程:输入半径值和圆心数据,在屏幕中画圆,并能多次运行
时间: 2024-02-17 16:02:28 浏览: 73
以下是一段汇编程序,可以实现输入半径值和圆心数据,画出圆,并能多次运行。
```
.MODEL SMALL
.STACK 100h
.DATA
msg1 DB 'Enter the radius of the circle: $'
msg2 DB 'Enter the x coordinate of the center: $'
msg3 DB 'Enter the y coordinate of the center: $'
msg4 DB 0dh, 0ah, 'Press any key to continue...', 0
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
MOV AH, 9
LEA DX, msg1
INT 21h
MOV AH, 1
INT 21h
SUB AL, 30h
MOV BL, AL
MOV AH, 9
LEA DX, msg2
INT 21h
MOV AH, 1
INT 21h
SUB AL, 30h
MOV CL, AL
MOV AH, 9
LEA DX, msg3
INT 21h
MOV AH, 1
INT 21h
SUB AL, 30h
MOV CH, AL
MOV CX, 0
MOV DL, BL
MOV DH, 0
MOV AH, 0ch
INT 10h
MOV CX, 0
MOV DL, CL
MOV DH, CH
MOV AH, 0ch
INT 10h
MOV AX, 0b800h
MOV ES, AX
MOV DI, 0
MOV CX, BL
MOV BX, 0
MOV AX, 0a000h
MOV DS, AX
DRAW_CIRCLE:
MOV AX, BX
MOV DX, CX
ADD AX, AX
ADD DX, DX
MOV SI, DX
ADD SI, AX
MOV AX, SI
ADD AX, 0a000h
MOV DI, AX
MOV AL, 1
MOV [DI], AL
INC BX
CMP BX, CX
JLE DRAW_CIRCLE
MOV AH, 9
LEA DX, msg4
INT 21h
MOV AH, 0
INT 16h
JMP MAIN
MAIN ENDP
END MAIN
```
这段程序使用 INT 10h 中断来在屏幕上画圆。程序首先提示用户输入半径值和圆心数据,然后根据用户输入的数据画出圆。程序最后再提示用户按任意键继续,并等待用户按键后重新开始。您可以将这段程序保存为一个 .asm 文件,使用汇编器和链接器将其编译和链接成可执行文件。
阅读全文