汇编语言图形绘制三角形程序
时间: 2023-07-11 10:50:44 浏览: 33
以下是一个使用汇编语言绘制三角形的示例程序:
```
.model small
.stack 100h
.data
x1 dw 50
y1 dw 50
x2 dw 100
y2 dw 100
x3 dw 150
y3 dw 50
color dw 0ch
.code
main proc
mov ax, @data
mov ds, ax
; 绘制第一个点
mov ah, 0ch
mov al, [color]
mov bh, 0
mov cx, [x1]
mov dx, [y1]
int 10h
; 绘制第二个点
mov ah, 0ch
mov al, [color]
mov bh, 0
mov cx, [x2]
mov dx, [y2]
int 10h
; 绘制第三个点
mov ah, 0ch
mov al, [color]
mov bh, 0
mov cx, [x3]
mov dx, [y3]
int 10h
; 连接三个点,绘制三角形
mov ah, 0bh
mov bh, 0
mov al, [color]
mov cx, [x1]
mov dx, [y1]
int 10h
mov cx, [x2]
mov dx, [y2]
int 10h
mov cx, [x3]
mov dx, [y3]
int 10h
mov ah, 4ch ; 退出程序
int 21h
main endp
end main
```
在此示例程序中,我们使用了 `int 10h` 中断来绘制图形。其中 `ah` 寄存器用于定义要执行的绘图函数,例如 `0ch` 表示设置画笔颜色,而 `ah` 为 `0dh` 则表示绘制像素点,`0bh` 表示绘制线段。 `al` 寄存器用于传递颜色值,其中 `0ch` 表示红色,`0eh` 表示黄色,`0bh` 表示青色,等等。 `bh` 寄存器用于指定要使用的画笔号码,如果你只使用默认画笔,那么将其设置为 `0` 即可。 `cx` 和 `dx` 寄存器用于传递 X 和 Y 坐标值。
在上面的代码中,我们首先绘制了三个点,然后使用 `int 10h` 中断的 `0bh` 功能,连接这三个点,绘制了一个三角形。如果你需要绘制更多的图形,可以根据需要重复调用绘图函数。