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

📄 mian1.asm

📁 一个五子棋游戏可以图形显示棋盘和网格线然后选择棋子 有一定智能
💻 ASM
字号:
extrn   begin:far
extrn   begi:far
rjg     segment
  biao     db   ' file       edit       bloc         help        exit      '
  handle   DW    ?
 filename  label     byte
  a        db    0
  b        db    0
  c        db    0
  d        db    0
  row      db    1
  e        db    0
  f        db    0
  namelen  db    ?
  errcde   db    0
endcde     db    0
  ioarea   db    32 dup(' ')
  dan      db    'new openclos'
  pathnam  db    16 dup (' ')
  dan1     db    'cut copyshei'
 opnmsg    DB    '***open error***',0dh,0ah
  wrtpath  db   '*please input newname*','$' 
  wrtmsg   db   '* * * write error * * *',0dh,0ah
  dan2     db    'cut copyshei'
  han1     dw    ?
  han2     dw    ?
  file1    db    'c:\data.doc',0
  file2    db    'c:\data.dat',0
  file3    db    'c:\name.dat',0
  buf      db    256 dup(?),'$'
  buff     db    256 dup(?),'$'
  h1       db   '*****************************帮助信息************************************','$'
  h2       db   '       本程序所名称是文本编辑器。本程序所完成的功能是建立文件、打开','$'
  h3       db   '       文件、插入文件功能,还包括对文件进行添加、删除等编辑功能。能','$'
  h4       db   '       实现块操作如剪切、删除粘贴等。开始按F1、F2、F3分别显示不同的','$'
  h5       db   '       菜单,基本程序所有的功能。按F5执行帮助功能。按f4进入文件操作模块。','$'
  h6       db   '      按f1执行新建文件功能,按f2执行打开、与修改并保存文件功能,按','$'
  h7       db   '      f3执行文件插入功能。在执行f1、f2、f3操作中,按f4跳出,在文件','$'
  h8       db   '      f2操作过程中,按f5执行删除功能,按f6执行添加功能按f9执行块操作功能。','$'
  h9       db   '      *****************************************************************','$'
  h10      db   '      *****************************************************************','$'
rjg     ends
prognam segment
main proc far
  assume cs:prognam,ds:prognam
 start:
  push  ds
  mov 	ax,0
  push	ax
  mov   ax,rjg
  mov   ds,ax
  call  help
  call  clen
  mov   ax,0600
  mov   bh,1eh
  mov   cx,0
  mov   dx,184fh
  int   10h    
  mov   ah,02h
  mov   dh,0
  mov   bx,0
  mov   dl,0
  int   10h   
  mov   ah,09h
  mov   al,' '
  mov   bh,0
  mov   bl,0dah
  mov   cx,80
  int   10h
  lea   bx,biao
  mov   cx,53d
repeat:
  mov	ah,02h
  mov	dl,[bx]  ;17
  int   21h   
  inc   bx
  loop  repeat 
  mov   bh,0h
  mov   ah,2h
  mov   dh,2
  mov   dl,2
  int   10h
repea:
  mov   ah,07h
  int   21h
  call  clen    
  cmp   al,3bh
  jne   x0
  call  cai
  jmp   repea   
x0:                ;菜单二
  cmp   al,3ch
  jne   x00
  call  cai1
  jmp   repea
x00:              ;菜单三
  cmp   al,3dh
  jne   x000
  call  cai2
  jmp   repea
x000:         ;帮助
  cmp    al,3fh
  jne    x0000
  call   help
  jmp    repea   
x0000:
  cmp   al,3eh
  jne   repea 
;------------------
en:           ;文件操作
  mov   ah,07h
  int   21h 
  call  clen
  cmp   al,3bh
  jne   b0
  call  begin         ;新建文件
  jmp   en   
b0:               
  cmp   al,3ch
  jne   b00
  call  begi         ;打开文件
  jmp   en
b00:              
  cmp   al,3dh
  jne   b000
  call  wen3         ;插入文件
  jmp   en
b000:
  cmp   al,3eh
  jne   en
;------------------------------------
enn:
  ret
  main  endp
;-----------------------------------
cai   proc    near
  push  ax
  push  bx
  push  cx
  push  dx
  mov   ah,2
  mov   dh,1
  mov   dl,1
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,2
  mov   dl,1
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,3
  mov   dl,1
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,1
  mov   dl,1
  int   10h
  mov   cx,4
  lea   si,dan
z1:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  z1
  mov   ah,2
  mov   dh,2
  mov   dl,1
  int   10h
  int   10h
  mov   cx,4
z2:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  z2
  mov   ah,2
  mov   dh,3
  mov   dl,1
  int   10h
  int   10h
  mov   cx,4
z3:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  z3
  mov   ax,0600
  mov   bh,1eh
  mov   cx,0
  mov   dx,184fh
  int   10h
  pop   dx
  pop   cx
  pop   bx
  pop   ax
  ret
cai   endp
;--------------------------------
cai1   proc    near

  push  ax
  push  bx
  push  cx
  push  dx
  mov   ah,2
  mov   dh,1
  mov   dl,12
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,2
  mov   dl,12
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,3
  mov   dl,12
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,1
  mov   dl,12
  int   10h
  mov   cx,4
  lea   si,dan1
z11:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  z11
;-----------------------------------
  mov   ah,2
  mov   dh,2
  mov   dl,12
  int   10h
  int   10h
  mov   cx,4
z22:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  z22

  mov   ah,2
  mov   dh,3
  mov   dl,12
  int   10h
  int   10h
  mov   cx,4
z33:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  z33
  mov   ax,0600
  mov   bh,1eh
  mov   cx,0
  mov   dx,184fh
  int   10h 
  pop   dx
  pop   cx
  pop   bx
  pop   ax
  ret
cai1   endp
;----------------------------------
cai2   proc    near
  push  ax
  push  bx
  push  cx
  push  dx
  mov   ah,2
  mov   dh,1
  mov   dl,25
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,2
  mov   dl,25
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,3
  mov   dl,25
  int   10h
  mov   ah,09h
  mov   al,' '
  mov   bh,0     ;xian shi cai dan
  mov   bl,02ah
  mov   cx,5
  int   10h
  mov   ah,2
  mov   dh,1
  mov   dl,25
  int   10h
  mov   cx,4
  lea   si,dan2
a11:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  a11
  mov   ah,2
  mov   dh,2
  mov   dl,25
  int   10h
  int   10h
  mov   cx,4
a22:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  a22
  mov   ah,2
  mov   dh,3
  mov   dl,25
  int   10h
  int   10h
  mov   cx,4
a33:
  mov	ah,02h
  mov	dl,[si]  ;17
  int   21h   
  inc   si
  loop  a33
  mov   ax,0600
  mov   bh,1eh
  mov   cx,0
  mov   dx,184fh
  int   10h
  pop   dx
  pop   cx
  pop   bx
  pop   ax
  ret
cai2   endp
;-------------------------------------------
clen   proc   near
     push      ax
     push      bx
     push      cx
     push      dx
     mov       ah,02h
     mov       dh,1
     mov       han1,25d
cle:
     mov       ah,2h
     mov       dl,0
     int       10h
     mov       ah,09h
     mov       al,' '
     mov       bl,90h 
     mov       bh,0
     mov       cx,80
     int       10h
     inc       dh 
     dec       han1
     cmp       han1,01h
     jne       cle
     pop       dx
     pop       cx
     pop       bx
     pop       ax
     ret
clen    endp
;------------------------------------------
 
;********************************************************
wen3    proc      near
    mov     ah,3ch
    mov     cx,0
    mov     dx,offset file1
    int     21h
    mov     han1,ax
;建立文件
    mov     ax,3d02h
    mov     dx,offset file2
    int     21h
;打开文件
    mov     bx,ax
    mov     han2,ax
    mov     ah,3fh
    mov     cx,256
    mov     dx,offset buf
    int     21h
;将文件f2钟的前256个字母放到buf中
    mov     ah,40h
    mov     bx,han1
    mov     cx,256
    mov     dx,offset buf
    int     21h
    mov     ax,3d02h
    mov     dx,offset file3
    int     21h
    mov     bx,ax
    mov     ah,3fh
    mov     cx,256
    mov     dx,offset buf
    int     21h
    mov     ah,3eh
    int     21h
    mov     ah,40h
    mov     bx,han1
    mov     cx,256
    mov     dx,offset buf
    int     21h
main1:
    mov     ah,3fh
    mov     bx,han2
    mov     cx,256
    mov     dx,offset buf
    int     21h
    or      ax,ax
    jz      main2
    mov     ah,40h
    mov     bx,han1
    mov     cx,256
    mov     dx,offset buf
    int     21h
    jmp     main1
main2:
    mov     ah,3eh          ;关闭文件
    int     21h
    mov     ah,41h          ;删除文件
    mov     dx,offset file2
    int     21h
    mov     ah,3eh           ;关闭文件
    mov     bx,han1
    int     21h
    mov     ax,ds
    mov     es,ax
    mov     ah,56h
    mov     dx,offset file1
    mov     di,offset file2
    int     21h
    ret
wen3  endp
;------------------------------------------
errm   PROC  NEAR
  MOV   AH,40h
  MOV   BX,01
  MOV   CX,21   ;138
  INT   21h
  MOV   errcde,01
  RET
errm  ENDP
;*************************************************************
y1   proc    near   ;光标移动
  push  ax
  push  bx 
  push  dx
  mov  ah,3
  int  10h
  mov  ah,2            ;行减一
  dec  dh
  int  10h
  pop  dx
  pop  bx
  pop  ax
  ret
y1   endp
;----------------------------------------
y2   proc    near
  push  ax
  push  bx
  push  dx
  mov  ah,3
  int  10h
  mov  ah,2
  dec  dl              ;列减一
  int  10h    ;83
  pop  dx
  pop  bx
  pop  ax
  ret
y2   endp
;--------------------------------------
y3   proc    near
  push  ax
  push  bx
  push  dx
  mov  ah,3
  int  10h
  mov  ah,2
  inc  dh            ;行加一     
  int  10h
  pop  dx
  pop  bx
  pop  ax
  ret
y3   endp
;--------------------------------------------
y4   proc    near
  push  ax
  push  bx
  push  dx
  mov   ah,3
  int   10h
  mov   ah,2
  inc   dl            ;列加一 
  int   10h
  pop   dx
  pop   bx
  pop   ax
  ret
y4      endp
;----------------------------------------
 
;******************************************************
help     proc     near
  call     clen
  mov      ah,2
  mov      dh,3
  mov      dl,1
  int      10h
  lea      dx,h1
  mov      ah,09h
  int      21h
  mov      ah,2
  mov      dh,5
  mov      dl,1
  int      10h
  lea      dx,h2
  mov      ah,09
  int      21h
  mov      ah,2
  mov      dh,6
  mov      dl,1
  int      10h
  lea      dx,h3
  mov      ah,09
  int      21h
  mov      ah,2
  mov      dh,7
  mov      dl,1
  int      10h
  lea      dx,h4
  mov      ah,09
  int      21h
  mov      ah,2
  mov      dh,8
  mov   dl,1
  int   10h
  lea   dx,h5
  mov   ah,09
  int   21h
  mov   ah,2
  mov   dh,9
  mov   dl,1
  int   10h
  lea   dx,h6
  mov   ah,09
  int   21h
  mov   ah,2
  mov   dh,10
  mov   dl,1
  int   10h
  lea   dx,h7
  mov   ah,09
  int   21h
  mov   ah,2
  mov   dh,11
  mov   dl,1
  int   10h
  lea   dx,h8
  mov   ah,09
  int   21h
  mov   ah,2
  mov   dh,12
  mov   dl,1
  int   10h
  lea   dx,h9
  mov   ah,09
  int   21h
  mov   ah,2
  mov   dh,13
  mov   dl,1
  int   10h
  lea   dx,h10
  mov   ah,09
  int   21h 
  mov   ah,07h
  int   21h
  call  clen
  ret
help    endp
curs proc near
   mov ah,02
   mov bh,0
   mov dl,0
   mov dh,row
   int 10h
ret
curs endp
;-----------------------------------------
prognam ends
 end start

⌨️ 快捷键说明

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