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

📄 test.asm

📁 很好玩的拼图游戏~本软件可以轻松实现~欢迎下载
💻 ASM
📖 第 1 页 / 共 2 页
字号:
    cmp dx,endy
    jz exit_line
    jmp vertical
horizontal:
    mov ah,0ch
    int 10h
    inc cx
    cmp cx,endx
    jne horizontal
    jmp exit_line
exit_line:
    
    ret
line endp
;******************** write 1 ***********************
w1 proc near
   write_init
   frame 
   mov ax,x
   adc ax,120
   mov endx,ax
   sub ax,1
   mov startx,ax
   mov ax,y
   adc ax,112
   mov y,ax
   sub ax,55
   mov starty,ax
   mov endy,ax
w11:
   mov al,5
   call line
   mov ax,starty
   cmp ax,y
   jz w1_exit
   inc ax
   mov starty,ax
   mov endy,ax
   mov ax,startx
   sub ax,1
   mov startx,ax
   jmp w11
w1_exit:
   ret
w1 endp
;******************** write 2 ***********************
w2 proc near
   write_init
   frame
   mov ax,x
   mov startx,ax
   add ax,120
   mov endx,ax
   mov ax,y
   add ax,112
   mov y,ax
   sub ax,56
   mov starty,ax
   mov endy,ax
w21:
   mov al,5
   call line
   mov ax,starty
   cmp ax,y
   jz w2_exit
   inc ax
   mov starty,ax
   mov endy,ax
   jmp w21
w2_exit:
   ret
w2 endp
;******************** wirte 3 ***********************
w3 proc near
   write_init
   frame
   mov ax,x
   mov startx,ax
   add ax,1
   mov endx,ax
   mov ax,y
   add ax,112
   mov y,ax
   sub ax,55
   mov starty,ax
   mov endy,ax
w31:
   mov al,5
   call line
   mov ax,starty
   cmp ax,y
   jz w3_exit
   inc ax
   mov starty,ax
   mov endy,ax
   mov ax,endx
   add ax,1
   mov endx,ax
   jmp w31
w3_exit:
   ret
w3 endp
;******************** write 4 ***********************
w4 proc near
   write_init
   frame
   mov ax,x
   add ax,60
   mov startx,ax
   add ax,60
   mov endx,ax
   mov ax,y
   mov starty,ax
   mov endy,ax
   add ax,112
   mov y,ax
w41:
   mov al,5
   call line
   mov ax,starty
   cmp ax,y
   jz w4_exit
   inc ax
   mov starty,ax
   mov endy,ax
   jmp w41
w4_exit:
   ret
w4 endp
;******************** write 5 ***********************
w5 proc near
   write_init
   frame
   mov ax,x
   mov startx,ax
   adc ax,120
   mov endx,ax
   mov ax,y
   mov starty,ax
   mov endy,ax
   add ax,112
   mov y,ax
w51:
   mov al,15
   call line
   mov ax,starty
   cmp ax,y
   jz w5_exit
   inc ax
   mov starty,ax
   mov endy,ax
   jmp w51
w5_exit:
   ret
w5 endp
;******************** write 6 ***********************
w6 proc near
   write_init
   frame
   mov ax,x
   mov startx,ax
   add ax,60
   mov endx,ax
   mov ax,y
   mov starty,ax
   mov endy,ax
   add ax,112
   mov y,ax
w61:
   mov al,5
   call line
   mov ax,starty
   cmp ax,y
   jz w6_exit
   inc ax
   mov starty,ax
   mov endy,ax
   jmp w61
w6_exit:
   ret
w6 endp
;******************** wirte 7 ***********************
w7 proc near
   write_init
   frame
   mov ax,x
   add ax,60
   mov startx,ax
   add ax,60
   mov endx,ax
   mov ax,y
   mov starty,ax
   mov endy,ax
   add ax,55
   mov y,ax
w71:
   mov al,5
   call line
   mov ax,starty
   cmp ax,y
   jz w7_exit
   inc ax
   mov starty,ax
   mov endy,ax
   mov ax,startx
   add ax,1
   mov startx,ax
   jmp w71
w7_exit:
   ret
w7 endp
;******************** write 8 ***********************
w8 proc near
   write_init
   frame
   mov ax,x
   mov startx,ax
   add ax,120
   mov endx,ax
   mov ax,y
   mov starty,ax
   mov endy,ax
   add ax,56
   mov y,ax
w81:
   mov al,5
   call line
   mov ax,starty
   cmp ax,y
   jz w8_exit
   inc ax
   mov starty,ax
   mov endy,ax
   jmp w81
w8_exit:
   ret
w8 endp
;******************** wirte 9 ***********************
w9 proc near
   write_init
   frame
   mov ax,x
   mov startx,ax
   add ax,60
   mov endx,ax
   mov ax,y
   mov starty,ax
   mov endy,ax
   add ax,55
   mov y,ax
w91:
   mov al,5
   call line
   mov ax,starty
   cmp ax,y
   jz w9_exit
   inc ax
   mov starty,ax
   mov endy,ax
   mov ax,endx
   sub ax,1
   mov endx,ax
   jmp w91
w9_exit:
   ret
w9 endp
;*******************产生随机数的子程序***************************** 
mada  proc near
    mov bx,0
l1:
   call dly                  ;made data
    mov ah,2ch
   int 21h
   mov  al,dl
   cbw
   mov cl,s1
   div  cl
   mov al,ah
   cbw
   mov si,0
   cmp array[si],ax
   je l1
   cmp array[si+2],ax
   je l1
   cmp array[si+4],ax
   je  l1
   cmp array[si+6],ax
   je  l1
   cmp array[si+8],ax
   je  l1
   cmp  array[si+10],ax
   je  l1
   cmp  array[si+12],ax
   je  l1
   cmp array[si+14],ax
   je  l1
   mov array[bx],ax       ;print
   add bx,2
   cmp bx,18
   jz exit
   jmp l1
exit:   ret
   mada endp
;--------------------------------------------------
dly proc near        ;delay
    push cx
    push dx
    mov  dx,1000
dl1:mov  cx,2801
dl2:loop dl2
    dec  dx
    jnz  dl1
    pop  dx
    pop  cx
    ret
dly  endp
;**************** auto ***********************
autorun  proc  near
   locate 15,1
   lea dx,clear
   mov ah,9
   int 21h
   locate 25,1
   lea dx,mesg9
   mov ah,9
   int 21h
   mov ah,7
   mov al,30
   mov ch,4
   mov cl,5
   mov dh,25
   mov dl,50
   mov bh,00110001b
   int 10h 
   mov bh,0
   mov dh,15
   mov dl,12
   mov ah,2
   int 10h
   lea dx,mesg5
   mov ah,9
   int 21h 
   call delay
   mov si,0
   mov  array[si],4
   add si,2
   mov  array[si],6
   add si,2
   mov  array[si],2
   add si,2
   mov  array[si],8
   add si,2
   mov  array[si],1
   add si,2
   mov  array[si],3
   add si,2
   mov  array[si],5
   add si,2
   mov  array[si],7
  add si,2
   mov  array[si],0
   mov si,0
   compare si
   mov si,2
   compare  si
   mov si,4
   compare  si
   mov si,6
   compare  si
   mov si,8
   compare   si
   mov si,10
   compare   si
   mov si,12
   compare   si
   mov si,14
   compare   si
   mov si,16
   compare   si
   exchange 16,14
   mov si,16
   compare si
   mov si,14
   compare si
   call delay
   exchange 14,12
   mov si,14
   compare si
   mov si,12
   compare si
   call delay
   exchange 12,6
   mov si,12
   compare si
   mov si,6
   compare si
   call delay
   exchange 6,0
   mov si,6
   compare si
   mov si,0
   compare si
   call delay
   exchange 0,2
   mov si,0
   compare si
   mov si,2
   compare si
   call delay
   exchange 2,8
   mov si,2
   compare si
   mov si,8
   compare si
   call delay
   exchange 8,6
   mov si,8
   compare si
   mov si,6
   compare si
   call delay
   exchange 6,0
   mov si,6
   compare si
   mov si,0
   compare si
   call delay
   exchange 0,2
   mov si,0
   compare si
   mov si,2
   compare si
   call delay
   exchange 2,4
   mov si,2
   compare si
   mov si,4
   compare si
   call delay
   exchange 4,10
   mov si,4
   compare si
   mov si,10
   compare si
   call delay
   exchange 10,16
   mov si,10
   compare si
   mov si,16
   compare si
   call delay
   exchange 16,14
   mov si,16
   compare si
   mov si,14
   compare si
   call delay
   exchange 14,12
   mov si,14
   compare si
   mov si,12
   compare si
   call delay
   exchange 12,6
   mov si,12
   compare si
   mov si,6
   compare si
  call delay
   exchange 6,8
   mov si,6
   compare si
   mov si,8
   compare si
   call delay
   exchange 8,10
   mov si,8
   compare si
   mov si,10
   compare si
   call delay
   exchange 10,16
   mov si,10
   compare si
   mov si,16
   compare si
   call delay
   exchange 16,14
   mov si,16
   compare si
   mov si,14
   compare si
   call delay
   exchange 14,8
   mov si,14
   compare si
   mov si,8
   compare si
   call delay
   renew
   lea dx,mesg8
    mov ah,9
    int 21h
    mov bh,0
    mov dh,15
    mov dl,12
    mov ah,2
    int 10h
    lea dx,mesg7
    mov ah,9
    int 21h 
    locate 15,1
    lea dx,clear
    mov ah,9
    int 21h
    locate 15,1
    lea dx,mesg7
    mov ah,9
    int 21h
    
    ret
autorun endp
;------------------------------
delay proc near        ;delay
    push cx
    push dx
    mov  dx,50000
dl111:mov  cx,2801
dl112:loop dl112      ;What is input?
    dec  dx
    jnz  dl111
    pop  dx
    pop  cx
auto_exit:
    ret
delay  endp
;******************* end *****************************
code ends
      end start

⌨️ 快捷键说明

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