?? aaaaaa).txt
字號:
stack segment stack
dw 512 dup(?)
stack ends
data segment
string1 db 'star,press 1',0dh,0ah,'circle,press 2',0dh,0ah,'exit,press esc',0dh,0ah,'$'
string2 db 'change color,press c',0dh,0ah,'exit,press esc',0dh,0ah,'$'
string3 db'change r,press - or +',0dh,0ah,'exit,press esc',0dh,0ah,'$'
color db 2
sinx dw 0,349,698,1045,1392,1736,2079,2419
dw 2756,3090,3420,3746,4067,4384,4695
dw 5000,5299,5592,5878,6157,6428,6691
dw 6947,7193,7431,7660,7880,8090,8290
dw 8480,8660,8829,8988,9135,9272,9397
dw 9511,9613,9703,9781,9848,9903,9945
dw 9976,9994,10000
r dw 20
arc dw 0
x dw 160
y dw 100
data ends
code segment
assume cs:code, ss:stack,ds:data,es:data
start: mov ax,data
mov ds,ax
mov dx,offset string1
mov ah,9
int 21h
mov ah,1
int 21h
cmp al,31h
jz sub1
cmp al,32h
jz sub2
cmp al,1bh
jz finish
sub2: jmp su2
finish: mov ah,4ch
int 21h
sub1: mov ah,0 ;畫五角星
mov al,4
int 10h
mov ah,0bh
mov bh,0
mov bl,08h
int 10h
mov ah,0bh
mov bh,1
mov bl,1
int 10h
mov cx,150
mov dx,50
again1: mov ah,0ch
mov al,color
int 10h
dec cx
add dx,3
cmp dx,80
jnz again1
again2: mov ah,0ch
mov al,color
int 10h
add cx,3
sub dx,2
cmp dx,60
jnz again2
again3: mov al,color
mov ah,0ch
int 10h
sub cx,2
cmp cx,130
jnz again3
again4: mov al,color
mov ah,0ch
int 10h
add cx,3
add dx,2
cmp dx,82
jnz again4
again5: mov al,color
mov ah,0ch
int 10h
dec cx
sub dx,3
cmp cx,150
jnz again5
mov dl,color
push dx
next1: mov dx,offset string2
mov ah,9
int 21h
pop dx
mov ah,1
int 21h
cmp al,'c'
jz change
cmp al,1bh
jz finish1
jmp next1
change: inc dl ;改變五角星的顏色
mov color,dl
jmp sub1
finish1: jmp finish
su2:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov es,ax
mov ah,0
mov al,4
int 10h
mov ah,0bh
mov bh,0
mov bl,02h
int 10h
mov ah,0ch
mov bh,1
mov bl,1
int 10h
lea si,sinx
mov di,si
add di,90
mov cx,10000
mov bx,r
area1:call culcu
neg ax
add ax,x
neg dx
add dx,y
call draw
add arc,2
cmp arc,90
jb area1
area2:call culcu
add ax,x
neg dx
add dx,y
call draw
sub arc,2
cmp arc,0
jge area2
mov arc,0
area3:call culcu
add ax,x
add dx,y
call draw
add arc,2
cmp arc,90
jb area3
area4:call culcu
neg ax
add ax,x
add dx,y
call draw
sub arc,2
cmp arc,0
jge area4
next2: mov dx,offset string3
mov ah,9
int 21h
mov ah,1
int 21h
cmp al,1bh
jz finish2
cmp al,2dh
jz less
cmp al,2bh
jz great
jmp next2
finish2:jmp finish
cmp al,2dh
jz less
cmp al,2bh
jz great
less: push cx ;減小圓的半徑
mov cx,r
sub cx,10
mov r,cx
pop cx
jmp su2
great: push cx ;增大圓的半徑
mov cx,r
add cx,10
mov r,cx
pop cx
jmp su2
draw proc ;畫圓
push cx
mov cx,ax
mov ah,12
mov al,2
int 10h
pop cx
ret
draw endp
culcu proc ;計算圓的坐標
push si
push di
add si,arc
mov ax,[si]
mul bx
div cx
push ax
sub di,arc
mov ax,[di]
mul bx
div cx
mov dx,12
mul dx
mov dl,10
div dl
mov ah,0
pop dx
pop di
pop si
ret
culcu endp
code ends
end start
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -