怎么用汇编语言写一个程序实现两个点连成一条直线
时间: 2023-06-15 16:05:39 浏览: 66
以下是8086汇编语言的程序,实现了两个点(x1,y1)和(x2,y2)连成一条直线的功能:
```
.model small
.stack 100h
.data
x1 dw 100
y1 dw 100
x2 dw 200
y2 dw 200
.code
main proc
mov ax, @data
mov ds, ax
mov ax, x1
mov bx, y1
mov cx, x2
mov dx, y2
mov ah, 0Ch ;设置像素颜色
mov al, 0Fh ;颜色代码
mov bh, 0 ;页面号
mov cx, ax ;x坐标
mov dx, bx ;y坐标
int 10h ;调用BIOS中断
mov ah, 0Ch ;设置像素颜色
mov al, 0Fh ;颜色代码
mov bh, 0 ;页面号
;计算斜率
sub cx, ax
sub dx, bx
mov si, dx
mov di, cx
mov al, dh
mov bl, cl
mov ah, 0
mov cx, 0
mov dx, 0
div bl
mov cx, ax
mov dx, si
div bl
mov si, dx
;画直线
mov ax, x1
mov bx, y1
mov cx, x2
mov dx, y2
mov dx, si
mov ah, 0Ch
int 10h
mov ah, 4ch
int 21h
main endp
end main
```
该程序使用了8086汇编语言,采用了BIOS中断来画点和画线。程序首先定义了两个点(x1,y1)和(x2,y2),然后通过BIOS中断0Ch设置像素颜色,画出第一个点。接下来,计算两个点之间的斜率,即直线的斜率。最后,使用BIOS中断0Ch画出直线。
需要注意的是,该程序只是演示了如何使用汇编语言实现两个点连成一条直线,并不能自动识别用户输入的点坐标。如果需要实现用户输入点坐标的功能,需要在程序中加入相应的输入输出代码。