⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 席吉波 直线.txt

📁 汇编课程设计 图形编辑器
💻 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 + -