📄 xgh.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 + -