📄 席吉波 直线.txt
字号:
data segment
x0 dw ?
y0 dw ?
k1 dw?
x1 dw ?
y1 dw ?
x2 dw ?
y2 dw ?
data ends
draw_line proc near
push ax
push bx
push cx
push dx
next1p:
mov ax,1
int 33h
ky:
lookmouse2 x1,y1
mov ax,x1
cmp ax,143
jl next1p
lookmouse2 x2,y2
mov ax,2
int 33h
next2:
call linem
mov ax,1
int 33h
pop dx
pop cx
pop bx
pop ax
jj:
mov ax,1
int 33h
ret
draw_line endp
linem proc near
mov ax,x2
cmp ax, x1
je equ1
cmp ax,x1
jg big
jmp small
big: sub ax,x1
cmp ax,10h
jle equ1
jmp xl
small:
mov bx,x1
sub bx,x2
cmp bx,10h
jle equ1
xl:
call jsxl
mov ax, k1
cmp ax,0
je spx
call linex
jmp exitp
equ1:
mov ax,y2
cmp ax,y1
jg af
call lineb
jmp exitp
af:call linea
jmp exitp
spx:
mov ax,x2
cmp ax,x1
jg cd
call lined
jmp exitp
cd:
call linec
exitp:
ret
linem endp
linea proc near
mov cx, x1
mov dx, y1
kk:
mov ah,0ch
mov al,color
int 10h
cmp dx,y2
je exit11
inc dx
jmp kk
exit11:
ret
linea endp
lineb proc near
mov cx,x2
mov dx,y2
k2k:
mov ah,0ch
mov al,color
int 10h
cmp dx,y1
je exit2
inc dx
jmp k2k
exit2:
ret
lineb endp
linec proc near
mov cx,x1
mov dx,y1
k3k:
mov ah,0ch
mov al,color
int 10h
cmp cx,x2
je exit3
inc cx
jmp k3k
exit3:
ret
linec endp
lined proc near
mov cx,x2
mov dx,y2
k4:
mov ah,0ch
mov al, color
int 10h
cmp cx,x1
je exit4
inc cx
jmp k4
exit4:
ret
lined endp
jsxl proc near
push cx
push dx
mov ax,y2
sbb ax,y1
mov cx,130
imul cx
cwd
mov bx,x2
sbb bx,x1
idiv bx
mov k1,ax
pop dx
pop cx
ret
jsxl endp
linex proc near
mov ax,x1
cmp ax,x2
jl k5j
xchg ax,x2
mov x1,ax
mov ax,y1
xchg ax,y2
mov y1,ax
k5j:
mov cx,x1
mov dx,y1
k6:
mov ah,0ch
mov al,color
int 10h
inc cx
cmp cx,x2
jne k7
jmp exit5
k7:
call jsy
mov dx,y
jmp k6
exit5:
ret
linex endp
jsy proc near
push dx
mov ax,k1
mov bx,cx
push cx
sbb bx,x1
imul bx
cwd
mov cx,130
idiv cx
add ax,y1
mov y,ax
pop cx
pop dx
ret
jsy endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -