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

📄 xgh.asm

📁 用汇编语言编写的画三个圆的源代码
💻 ASM
字号:
data segment use16
full db 0
sine dw 00,02,03,05,07,09,11,12,14,16
     dw 17,19,21,23,24,26,28,29,31,33
     dw 34,36,37,39,41,42,44,45,47,49
     dw 50,52,53,54,56,57,59,60,62,63
     dw 64,66,67,68,69,71,72,73,74,75
     dw 77,78,79,80,81,82,83,84,85,86
     dw 87,87,88,89,90,91,91,92,93,93
     dw 94,95,95,96,96,97,97,97,98,98
     dw 98,99,99,99,99,100,100,100,100
     dw 100,100
mm   dw ?
f_mm dw ?
nn   dw ?
f_nn dw ?
oy1   equ 240
ox1   equ 120
oy2   equ 240
ox2   equ 320
oy3   equ 240
ox3   equ 520


r1   dw  10
r2   dw  30
r3   dw  10
color1 db 2
color2 db 1
color3 db 2



kk    dw 100
count db 90
data  ends
code segment use16
     assume cs:code,ds:data
beg: mov ax,data
     mov ds,ax
     
     call screen
     mov count,90
     mov si,offset sine+89*2
     mov di,offset sine
aga: call compute1
    
     call write1
     call compute2
     call write2
     call compute3
     call write3

     sub si,2
     add di,2
     dec count
     jnz aga
     
wait_in:mov ah,1
        int 21h
        mov ax,2
        int 10h
        mov ah,4ch
        int 21h
screen proc
       mov ax,12h
       int 10h
       mov ah,0bh
       mov bx,0
       int 10h
       ret
screen endp
compute1 proc
         mov ax,[si]
         mul r1
         
         div kk
         mov mm,ax
         neg ax
         mov f_mm,ax
         mov ax,[di]
         mul r1
         
         div kk
         mov nn,ax
         neg ax
         mov f_nn,ax
         ret
compute1 endp
compute2 proc
         mov ax,[si]
         mul r2
         
         div kk
         mov mm,ax
         neg ax
         mov f_mm,ax
         mov ax,[di]
         mul r2
         
         div kk
         mov nn,ax
         neg ax
         mov f_nn,ax
         ret
compute2 endp
compute3 proc
         mov ax,[si]
         mul r3
         
         div kk
         mov mm,ax
         neg ax
         mov f_mm,ax
         mov ax,[di]
         mul r3
         
         div kk
         mov nn,ax
         neg ax
         mov f_nn,ax
         ret
compute3 endp


write1 proc
      mov dx,f_mm
      add dx,oy1
      
      mov cx,nn
      add cx,ox1
      
      call wr_dot1
      mov cx,f_nn
      add cx,ox1
      
      call wr_dot1
      mov dx,mm
      add dx,oy1
      
      call wr_dot1
      mov cx,nn
      add cx,ox1
      
      call wr_dot1
      ret
write1 endp
write2 proc
      mov dx,f_mm
      
      add dx,oy2
      mov cx,nn
      
      add cx,ox2
      call wr_dot2
      mov cx,f_nn
      
      add cx,ox2
      call wr_dot2
      mov dx,mm
      
      add dx,oy2
      call wr_dot2
      mov cx,nn
      
      add cx,ox2
      call wr_dot2
      ret
write2 endp
write3 proc
      mov dx,f_mm
      
      add dx,oy3
      mov cx,nn
      
      add cx,ox3
      call wr_dot1
      mov cx,f_nn
      
      add cx,ox3
      call wr_dot1
      mov dx,mm
      
      add dx,oy3
      call wr_dot1
      mov cx,nn
      
      add cx,ox3
      call wr_dot1
      ret
write3 endp


wr_dot1 proc
       mov ah,0ch
       mov al,color1
       mov bh,0
       int 10h
       ret
wr_dot1 endp
wr_dot2 proc
       mov ah,0ch
       mov al,color2
       mov bh,0
       int 10h
       ret
wr_dot2 endp

code   ends
       end beg


⌨️ 快捷键说明

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