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

📄 creat.asm

📁 一个五子棋游戏可以图形显示棋盘和网格线然后选择棋子 有一定智能
💻 ASM
字号:
public   begin
desg segment para 'data'
        filename  label byte
        maxname  db  16
        namelen  db ?
        pathnam  db  16 dup (' ')
      	long  equ  1024
      	file db long dup(' ')
      	count dw 0
         
      	errcde db 0
      	handle  dw ?
	row  db 1
        wrtpath db '*please input newpathnam*','$' 
	opnmsg  db '* * * open error * * *',0dh,0ah
	wrtmsg  db '* * * write error * * *',0dh,0ah
desg ends
cseg segment para 'code'
   begin proc far 
      assume cs:cseg,ds:desg,es:desg
start:
   	 push ds
	sub ax,ax
	push ax
	mov ax,desg
	mov ds,ax
	mov es,ax
repeat :mov ax,0600h
	call scren
	call curs

	call creath
	cmp errcde,0
	jz contin
    ret
  contin:
     call  proch
	cmp count,0
	je repeat 
	call clseh
    ret
begin endp

creath proc near
         mov dx,offset wrtpath
         mov ah,9
         int 21h
  	mov ah,0ah
        lea dx,filename
        int 21h
        cmp namelen,0
        jz  a1
        mov al,0
        sub ch,ch
        mov cl,namelen
        lea  di,pathnam
        add di,cx
        neg  cx
        add cx,16
        rep stosb
        mov ax,0600h
	call scren
	call curs

        mov ah,3ch
  	mov cx,0
  	lea dx,pathnam
  	int 21h
  	jc a1
  	mov handle,ax
     ret
  a1:	lea dx,opnmsg
    
    	call errm
     ret
creath endp

proch proc near
          mov cx,long-1 
          mov di,offset file
   loop1: mov  ah,1h
          int  21h
          
          cmp al,2eh
          jz  ldif
          cmp al,0dh
          jz crlf
          
          inc count  
          mov [di],al
          inc  di
           
          loop loop1
          jmp exitin
     

  crlf:   mov dl,0dh
          mov ah,2
          int 21h
          mov dl,0ah
          mov ah,2
          int 21h
          
          
          jmp  loop1
 
         
  ldif:   mov al,20h 
          mov cx,count
          lea di,file
          add di,cx
          neg cx
          add cx,long 
          rep stosb

 exitin:  call writh
	   
    ret
proch endp
writh proc near
   	mov ah,40h
  	mov bx,handle
	mov cx,count
 	lea dx,file
 	int 21h
  	jnc d1
	lea dx,wrtmsg
	call errm
	mov count,0
   d1:
      ret
writh endp

clseh proc near
        mov di,offset file
        mov  ah,40h
        mov bx,handle
        mov cx,1
  	mov dx,[di+count] 
        int 21h 
      	
  	mov ah,3eh
	mov bx,handle
    	int 21h
      ret
clseh endp
errm proc near
  	mov ah,40h
	mov bx,01
  	mov cx,21
  	int 21h
	mov errcde,01
      ret
errm endp

scren proc near
       mov bh,1eh
       mov cx,0
       mov dx,184fh
       int 10h
     ret
scren endp
curs proc near
   mov ah,02
   mov bh,0
   mov dl,0
   mov dh,row
   int 10h
ret
curs endp
cseg ends 
   end begin
  end  start

⌨️ 快捷键说明

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