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

📄 xxx.txt

📁 动态五角星,按任意键可以改变五角星的颜色,该程序为全屏显示.
💻 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 + -