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

📄 group2.asm

📁 一个五子棋游戏可以图形显示棋盘和网格线然后选择棋子 有一定智能
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        je  manu_n2
        cmp ah,48h
        je  manu_e
        cmp ah,1ch
        je  exit 
        jmp manu_hid
exit:
        call backdisplay
        win 0,07h,15,10,17,61
        win 0,30h,14,9,16,60
        mov dh,15
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h

        lea  dx,message4
        mov ah,9     
        int 21h
         
        mov ah,1
        int 21h
        cmp al,79h                                    
        jnz q
        call quitt
q:      cmp al,6eh
        jz  quit

quit:   win 0,07h,0,0,24,79
        pos_curse 0,0,0
        mov ah,4ch
        int 21h
        ret
 
manu_show endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
new proc near                        ;create file
        pos_get
        push dx
        call backdisplay

        win 0,07h,15,10,17,61
        win 0,30h,14,9,16,60,
        mov dh,15
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h
 
        lea dx,message1
        cmp al,0dh
        mov ah,9
        int 21h
        mov bx,0
all:
        mov ah,1
        int 21h
        cmp al,0dh
        je  alll
        mov path[bx],al
        inc bx
        jmp all
alll:
        win 0,1eh,15,9,17,61
        pop dx
        pos_curse 0,dh,dl
        lea dx,path
        mov ah,3ch
        mov cx,00
        int 21h
        mov handle,ax
        mov bx,ax
        mov ah,3eh
        int 21h
    
        win 0,1eh,1,0,23,79
        mov dh,1
        mov dl,0
        mov bh,0
        mov ah,2
        int 10h
        jmp char_get
new     endp
open_2: jmp open
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
saveas  proc near                       ;saveas file                                                  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        win 0,1eh,1,0,6,10
        call backdisplay
        win 0,07h,15,10,17,61
        win 0,30h,14,9,16,60,
        mov dh,15
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h

        lea dx,message2
        mov ah,9
        int 21h
        mov bx,0
bll: 
        mov ah,1
        int 21h
        cmp al,0dh
        je blll
        mov path[bx],al
        inc bx
        jmp bll
blll:
        pos_get
        push dx
        win 0,1eh,1,0,23,79
        call backdisplay
        pop dx
        pos_curse 0,dh,dl
        lea dx,path
        mov ah,3ch
        mov cx,00
        int 21h
 
        mov handle,ax
        lea dx,buffer
        mov bx,handle
        mov cx,2000
        mov ah,40h
        int 21h

        mov bx,handle
        mov ah,3eh
        int 21h
        call backdisplay 

        jmp char_get
saveas  endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
open proc near                            ;open file
        call backdisplay 
        win 0,07h,15,10,17,61    
        win 0,30h,14,9,16,60
        mov dh,15
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h

        lea  dx,message3
        mov ah,9
        int 21h
        mov bx,0
cll: 
        mov ah,1
        int 21h
        cmp al,13
        je  clll
        mov path[bx],al
        inc bx
        jmp cll
clll:
        win 0,1eh,1,0,23,79
        lea dx,path
        mov ah,3dh
        mov al,0
        int 21h
     
        mov handle,ax
        lea dx,buffer
        mov bx,handle
        mov cx,2000
        mov ah,3fh
        int 21h
     
        win 0,1eh,1,23,1,79
        mov dh,1
        mov dl,0
        mov bh,0
        mov ah,2
        int 10h
  
        mov cx,1000
        sub bx,bx
replay:
        mov dl,buffer[bx]
        inc bx
        mov ah,2
        int 21h
        loop replay
     
        mov bx,handle
        mov ah,3eh
        int 21h
  
        mov dh,1
        mov dl,0
        mov bh,0
        mov ah,2
        int 10h

        mov cx,10
        mov bx,0
cleapath_3:
        mov bl,0
        mov path[bx],bl
        loop cleapath_3
        jmp char_get
open    endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
save proc near                               ;save file
        pos_get
        push dx
        win 0,1eh,1,0,6,10
        call backdisplay
        mov ah,path
        cmp ah,21h
        jl j_3
        jmp j_4
j_3: 
        win 0,07h,15,10,17,61
        win 0,30h,14,9,16,60,
        mov dh,15
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h

        lea dx,message2
        mov ah,9
        int 21h
        mov bx,0
dll: 
        mov ah,1
        int 21h
        cmp al,0dh
        je dlll
        mov path[bx],al
        inc bx
        jmp dll
dlll:
        win 0,1eh,1,0,23,79
        pop dx
        pos_curse 0,dh,dl 

j_4:    lea dx,path
        mov ah,3ch
        mov cx,00
        int 21h
 
        mov handle,ax
        lea dx,buffer
        mov bx,handle
        mov cx,2000
        mov ah,40h
        int 21h

        mov bx,handle
        mov ah,3eh
        int 21h
        call backdisplay
        jmp char_get
save endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
savedisplay proc near
      push ax
      push bx
      push cx
      push dx
      push ds
      
      mov ax,0002h
        int 33h
       mov bx,0d
        mov cx,3840d
  loop1:
        mov ax,0b800h
      mov ds,ax
       mov dl,ds:[bx]
        mov ax,date
       mov ds,ax
        mov bak[bx],dl
        inc bx
       loop loop1
        mov ax,0001h
      int 33h
      
     pop ds
     pop dx
     pop cx
     pop bx
     pop ax
      
savedisplay endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
backdisplay proc near
        push ax
        push bx
        push cx
        push dx
        push ds
      
        mov bx,0d
        mov cx,3840d
loop11:
        mov ax,date
        mov ds,ax
        mov dl,bak[bx]
        mov ax,0b800h
        mov ds,ax
        mov ds:[bx],dl
        inc bx
        loop loop11
      
        pop ds
        pop dx
        pop cx
        pop bx
        pop ax
        ret
backdisplay endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
quitt   proc near                     ;exit the function
        call backdisplay
        win 0,07h,15,10,17,61
        win 0,30h,14,9,16,60,
        mov dh,15
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h

        lea dx,message2
        mov ah,9
        int 21h
        mov bx,0
qll: 
        mov ah,1
        int 21h
        cmp al,0dh
        je  qlll
        mov path[bx],al
        inc bx
        jmp qll
qlll:
        win 0,07h,15,10,17,61
        win 0,1eh,14,9,16,60
        call backdisplay
        lea dx,path
        mov ah,3ch
        mov cx,00
        int 21h
  
        mov handle,ax
        lea dx,buffer
        mov bx,handle
        mov cx,2000
        mov ah,40h
        int 21h

        mov bx,handle
        mov ah,3eh
        int 21h
        call backdisplay 
   
        win 0,07h,0,0,24,79
        mov ah,4ch
        int 21h
        ret
quitt   endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;    
edit    endp                               ;the edit program end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
win3   proc near                         ;show the date
        mov ah,2ah
        int 21h
        mov  bl,10d
        mov  ax,0
        mov  al,dh
        div  bl 
        add  ax,3030h
        mov  [data+6],al                    
        mov  [data+7],ah
        mov  ax,0
        mov  al,dl
        div  bl
        add  ax,3030h
        mov  [data+9],al
        mov  [data+10],ah
        win 0,0fh,0,67,0,79
        pos_curse 0,0,67
        mov  dx,offset data
        mov  ah,09h
	int  21h
        ret
win3    endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;
  win4  proc  near                             ;show the line//row 
       mov ah,03h
       mov bh,0
       int 10h                                    
       mov  bl,100d
       mov  bh,10d
       mov  ax,0
       mov  al,dh
       div bl 
       add  al,30h                              
       mov  [hanglie+0],al
      mov al,ah      
      mov ah,0                                    
      div bh  
      add ax,3030h
      mov [hanglie+1],al
      mov [hanglie+2],ah                                                      
       mov  ax,0                                       
       mov  al,dl
       div bl 
       add  al,30h                            
      mov  [hanglie+5],al
      mov al,ah      
      mov ah,0                                  
      div bh  
      add ax,3030h
      mov [hanglie+6],al
      mov [hanglie+7],ah
        win 0,34h,24,60,24,70
        pos_curse 0,24,61
        mov  dx,offset hanglie
        mov  ah,09h
        int  21h
        ret
  win4 endp
code    ends                           
        end start                          
      

⌨️ 快捷键说明

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