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

📄 mn.asm

📁 汇编课程设计 图形编辑器
💻 ASM
📖 第 1 页 / 共 2 页
字号:
   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,150
   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,150
   idiv   cx
   add   ax,y1
   mov  y,ax
   pop   cx
   pop  dx
   ret
jsy    endp

 ;--------------------------------------
draw_zhexian  proc near
      push ax
      push bx
      push cx
      push dx
wwr1:
       mov ax,0005h
       mov bx,0h
       int 33h
       cmp ax,1
       jne  wwr1
wwr2:
       mov ax,0006h
       mov bx,0h
       int 33h
       cmp ax,0
       jne wwr2
       mov x1,cx
       mov y1,dx
       cmp cx,143
       jl  wwr1

wwr3:
       mov ax,0005h
       mov bx,0h
       int 33h
       cmp ax,2
       je wwrexit
       cmp ax,1
       jne wwr3
wwr4:
       mov ax,0006
       mov bx,0h
       int 33h
       cmp ax,0
       jne wwr4

       mov ax,2
       int 33h
       mov x2,cx
       mov y2,dx
       call  linem
wwrx2:
       mov  ax,x2
       mov  x1,ax
       mov  bx,y2
       mov  y1,bx
       mov ax,1
       int 33h
       jmp  wwr3
wwrexit:
      pop dx
      pop cx
      pop bx
      pop ax
      
      ret
draw_zhexian  endp

;-----------------------------------------------
draw_juxing  proc  near
   push  ax
   push  bx
   push  cx
   push  dx
k1p:       
   mov ax,1
   int  33h
   lookmouse2  x1,y1
   mov ax,x1
   cmp  ax,143
   jl  k1p
   lookmouse2 x2,y2
   
   mov  ax,2
   int  33h
   mov  ax,x2
   cmp  ax,x1
   je  exitt
   cmp ax,x1
   jl  k2j
   call hang1
   jmp  next
k2j:
   mov  ax,x1
   xchg ax,x2
   mov  x1,ax
   call  hang1
next:
   mov  ax,y2
   cmp  ax,y1
   je  exitt
   cmp  ax,y1
   jg   k3e
   call  li1
   jmp exitt
k3e:
   mov  ax,y1
   xchg  ax,y2
   mov  y1,ax
   call  li1
exitt:
    mov  ax,1
    int  33h
   pop  dx
   pop  cx
   pop  bx
   pop  ax
   ret
;.........................................................
draw_juxing  endp

hang1  proc near
  

  mov cx,x1
  mov  dx,y1

h1:
  mov ah,0ch
  mov  al,color
  int 10h
  Inc cx
  cmp cx,x2
  jne  h1
  mov cx,x1
  mov dx,y2
h2:
  mov  ah,0ch
  mov  al, color
  int   10h
  inc  cx
  cmp cx,x2
  jne  h2
  ret
hang1 endp

li1 proc near
  mov cx,x1
  mov dx,y2
l1:
  mov  ah,0ch
  mov  al, color
  int 10h
  inc dx
  cmp dx,y1
  jne  l1
  mov  cx,x2
  mov  dx,y2
l2:
  mov  ah,0ch
  mov  al,color
  int 10h
  inc dx
  cmp dx,y1
  jne  l2
  ret
li1 endp
;-------------------------------------------
draw_circle  proc  near
    push  ax
    push  bx
    push  cx
    push  dx
k10:
    mov ax,1
    int  33h
    lookmouse2  x1,y1
    mov ax,x1
    cmp ax,143
    jl  k10

    mov ax,2
    int 33h

    mov ah,0ch
    mov al,color
    mov cx,x1
    mov dx,y1
    int 10h

    mov ax,1
    int 33h

    lookmouse2  x2,y2
    mov ax,2
    int 33h

    mov ax,x1
    mov yuanx ,ax
    sub ax,x2
    imul ax
    mov cx,ax
    mov bx,dx
    mov ax,y1
    mov yuany, ax
    sub ax,y2
    imul ax
    add cx,ax
    adc bx,dx
    call sqrt
    mov ax,m
    mov rc,ax

    call write_circle1
    call write_circle2
    call write_circle3
    call write_circle4

    mov ax,1
    int 33h
    pop dx
    pop cx
    pop bx
    pop ax
    ret
draw_circle  endp
write_circle1  proc  near
   mov cx,0
   mov ax,rc
   mov i,ax
next1d:
   mov ax,rc
   mul  ax
   mov  lowbity,ax
   mov  highbity,dx
   sub  ax,ax
   mov  ax,i
   mul  ax
   sub   lowbity,ax
   sbb   highbity,dx
   mov  cx ,lowbity
   mov  bx,highbity
   call  sqrt
   mov  temp,ax
   mov ax ,yuanx
   sub  ax,temp
   mov  x1,ax
   sub  ax,ax
   mov  ax,yuanx
   add  ax,temp
   mov  x2,ax
   mov  ax,0
   mov  ax,yuany
   add   ax,i
   mov  y,ax
   write  x1,y
   write   x2,y
   dec   i
   cmp  i,0
   je    exitod
   jmp   next1d
exitod:
   ret
write_circle1  endp
write_circle2  proc  near
   mov  cx,0
   mov  ax,rc
   mov  i,ax
next1c:
   mov  ax,rc
   mul  ax
   mov  lowbity,ax
   mov  highbity,dx
   sub  ax,ax
   mov  ax,i
   mul  ax
   sub   lowbity,ax
   sbb   highbity,dx
   mov  cx ,lowbity
   mov  bx,highbity
   call  sqrt
   mov  temp,ax
   mov ax ,yuanx
   sub  ax,temp
   mov  x1,ax
   sub  ax,ax
   mov  ax,yuanx
   add  ax,temp
   mov  x2,ax
   mov  ax,0
   mov  ax,yuany
   sub   ax,i
   mov  y,ax
   write  x1,y
   write  x2,y
   dec   i
   cmp  i,0
   je  exitoc
   jmp  next1c
   exitoc:
   ret
write_circle2  endp
write_circle3  proc  near
   mov  cx,0
   mov  ax,rc
   mov  i,ax
next1e:
   mov  ax,rc
   mul  ax
   mov  lowbity,ax
   mov  highbity,dx
   sub  ax,ax
   mov  ax,i
   mul  ax
   sub  lowbity,ax
   sbb   highbity,dx
   mov  cx ,lowbity
   mov  bx,highbity
   call  sqrt
   mov  temp,ax
   mov ax ,yuany
   sub  ax,temp
   mov  y1,ax
   sub  ax,ax
   mov  ax,yuany
   add  ax,temp
   mov  y2,ax
   mov  ax,0
   mov  ax,yuanx
   sub   ax,i
   mov  x,ax
   write  x,y1
   write   x,y2
   dec   i
   cmp  i,0
   je exitoe
   jmp   next1e
exitoe:
    ret
write_circle3  endp
write_circle4  proc  near
   mov cx,0
   mov ax,rc
   mov i,ax
next1f:
   mov ax,rc
   mul ax
   mov lowbity,ax
   mov highbity,dx
   sub  ax,ax
   mov  ax,i
   mul  ax
   sub lowbity,ax
   sbb   highbity,dx
   mov  cx ,lowbity
   mov  bx,highbity
   call  sqrt
   mov  temp,ax
   mov ax ,yuany
   sub  ax,temp
   mov  y1,ax
   sub  ax,ax
   mov  ax,yuany
   add  ax,temp
   mov  y2,ax
   mov  ax,0
   mov  ax,yuanx
   add   ax,i
   mov  x,ax
   write  x,y1
   write   x,y2
   dec   i
   cmp  i,0
   je  exit0f
   jmp   next1f
exit0f:
   ret
write_circle4  endp
;-----------------------------------------------------
sqrt proc near
     mov ax,1
     mov n,ax    ;ji shu
 sqrt1:
     mov ax,2
     mul n
     sub ax,1
     sbb dx,0
     sub cx,ax         ;bei kaifangshu'low in cx
     sbb bx,dx         ;bei kaifangshu'high in bx
     and bh,10000000b
     cmp  bh,0            ;pan duan shi fu wei fu
     jne endsqr0           ;is-->end
     push ax
     mov ax,n
     add ax,1
     mov n,ax              ;cun sqrt+1
     pop ax
     jmp sqrt1
endsqr0:
     mov ax,n
     sub ax,1
     mov m,ax            ;cun sqrt
     ret
    sqrt endp
     
;----------------------------------------------------
zuobiao proc near
   zuobiao1 125,383
   zuobiao1 125,382
   zuobiao1 125,381

   zuobiao1 65,383
   zuobiao1 65,382
   zuobiao1 65,381

   zuobiao1 80,383
   zuobiao1 80,382
   zuobiao1 80,381

   zuobiao1 95,383
   zuobiao1 95,382
   zuobiao1 95,381

   zuobiao1 110,383
   zuobiao1 110,382
   zuobiao1 110,381

   zuobiao1 125,383
   zuobiao1 125,382
   zuobiao1 125,381

   zuobiao1 140,383
   zuobiao1 140,382
   zuobiao1 140,381

   zuobiao1 155,383
   zuobiao1 155,382
   zuobiao1 155,381

   zuobiao1 170,383
   zuobiao1 170,382
   zuobiao1 170,381

   zuobiao1 185,383
   zuobiao1 185,382
   zuobiao1 185,381

   zuobiao1 200,383
   zuobiao1 200,382
   zuobiao1 200,381

   zuobiao1 215,381
   zuobiao1 230,381

   zuobiao1 215,382
   zuobiao1 230,382

   zuobiao1 215,383
   zuobiao1 230,383

   zuobiao1 260,383
   zuobiao1 260,382
   zuobiao1 260,381

   zuobiao1 275,383
   zuobiao1 275,382
   zuobiao1 275,381

   zuobiao1 290,383
   zuobiao1 290,382
   zuobiao1 290,381

   zuobiao1 305,383
   zuobiao1 305,382
   zuobiao1 305,381

   zuobiao1 320,383
   zuobiao1 320,382
   zuobiao1 320,381

   zuobiao1 335,383
   zuobiao1 335,382
   zuobiao1 335,381

   zuobiao1 351,383
   zuobiao1 351,382
   zuobiao1 351,381

   zuobiao1 366,383
   zuobiao1 366,382
   zuobiao1 366,381

   zuobiao1 381,383
   zuobiao1 381,382
   zuobiao1 381,381

   zuobiao1 396,383
   zuobiao1 396,382
   zuobiao1 396,381

   zuobiao1 411,383
   zuobiao1 411,382
   zuobiao1 411,381

   zuobiao1 241,396
   zuobiao1 242,396
   zuobiao1 243,396

   zuobiao1 241,411
   zuobiao1 242,411
   zuobiao1 243,411

   zuobiao1 241,426
   zuobiao1 242,426
   zuobiao1 243,426

   zuobiao1 241,441
   zuobiao1 242,441
   zuobiao1 243,441

   zuobiao1 241,456
   zuobiao1 242,456
   zuobiao1 243,456

   zuobiao1 241,471
   zuobiao1 242,471
   zuobiao1 243,471

   zuobiao1 241,486
   zuobiao1 242,486
   zuobiao1 243,486

   zuobiao1 241,501
   zuobiao1 242,501
   zuobiao1 243,501

   zuobiao1 241,516
   zuobiao1 242,516
   zuobiao1 243,516

   zuobiao1 241,531
   zuobiao1 242,531
   zuobiao1 243,531

   zuobiao1 241,546
   zuobiao1 242,546
   zuobiao1 243,546

   zuobiao1 241,561
   zuobiao1 242,561
   zuobiao1 243,561

   zuobiao1 241,576
   zuobiao1 242,576
   zuobiao1 243,576

   zuobiao1 241,366
   zuobiao1 242,366
   zuobiao1 243,366

   zuobiao1 241,351
   zuobiao1 242,351
   zuobiao1 243,351

   zuobiao1 241,336
   zuobiao1 242,336
   zuobiao1 243,336

   zuobiao1 241,321
   zuobiao1 242,321
   zuobiao1 243,321

   zuobiao1 241,306
   zuobiao1 242,306
   zuobiao1 243,306

   zuobiao1 241,291
   zuobiao1 242,291
   zuobiao1 243,291

   zuobiao1 241,276
   zuobiao1 242,276
   zuobiao1 243,276

   zuobiao1 241,261
   zuobiao1 242,261
   zuobiao1 243,261

   zuobiao1 241,246
   zuobiao1 242,246
   zuobiao1 243,246

   zuobiao1 241,231
   zuobiao1 242,231
   zuobiao1 243,231

   zuobiao1 241,216
   zuobiao1 242,216
   zuobiao1 243,216

   zuobiao1 241,201
   zuobiao1 242,201
   zuobiao1 243,201


   zuobiao1 241,186
   zuobiao1 242,186
   zuobiao1 243,186

   zuobiao1 241,171
   zuobiao1 242,171
   zuobiao1 243,171
ret
 
zuobiao endp
code ends
     end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -