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

📄 park13.asm

📁 一个汇编编写的花园寻宝游戏
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	add ax,temp

	mov temp,20
	sub ax,temp
	mov si,ax
	
	mov al,1
	cmp al,[si]
	jz run5
	jmp near ptr mov_down_b

run5:
	push	cx
	push	b_color
	mov	cx,0
	mov	b_color,cx
	call	rectb
	mov	cx,b_y
	sub	cx,b_size
	mov	b_y,cx
	pop	b_color
	pop	cx

	mov ax,0
	mov ax,16
	sub col_b,ax
	
	jmp	near ptr draw
;****************************************************************down
mov_down_b:
	cmp	b_y,lim_down
	jbe 	goon13
	jmp near ptr draw
goon13:	
	push ax
    	push cx
	mov ax,0
	mov cx,0
		
	mov ax,col_b
	mov cl,16
	div	cl


	mov cl,20
	mov ah,0
	mul cl
	mov temp,ax
	
	mov	cl,16
	mov ax,row_b	
	div cl
	mov ah,0
	add ax,temp

	MOV temp,OFFSET MS
	add ax,temp

	mov temp,20
	add ax,temp
	mov si,ax
	
	mov al,1
	cmp al,[si]
	jz run6
	jmp near ptr mov_left_b

run6:
	push	cx
	push	b_color
	mov	cx,0
	mov	b_color,cx
	call	rectb                         ;在原来的地方重画
	mov	cx,b_y
	add	cx,b_size
	mov	b_y,cx
	pop	b_color
	pop	cx

	mov ax,0
	mov ax,16
	add col_b,ax

	jmp	near ptr draw
;***************************************************************left
mov_left_b:
	cmp	b_x,lim_left
	jae	goon14
	jmp near ptr draw
goon14:	
	push ax
    	push cx
	mov ax,0
	mov cx,0
		
	mov ax,col_b
	mov cl,16
	div	cl

	mov cl,20
	mov ah,0
	mul cl
	mov temp,ax
	
	mov	cl,16
	mov ax,row_b	
	div cl
	mov ah,0
	add ax,temp

	MOV temp,OFFSET MS
	add ax,temp

	dec ax
	mov si,ax
	
	mov al,1
	cmp al,[si]
	jz run7
	jmp near ptr mov_right_b

run7:
	push	cx
	push	b_color
	mov	cx,0
	mov	b_color,cx
	call	rectb
	mov	cx,b_x
	sub	cx,b_size
	mov	b_x,cx
	pop	b_color
	pop	cx

	mov ax,0
	mov ax,16
	sub row_b,ax
	
	jmp	near ptr draw
	 
;***************************************************************right
mov_right_b:
	cmp	b_x,lim_right	
	jbe	goon15	
	jmp near ptr draw	
goon15:
	push ax
    	push cx
	mov ax,0
	mov cx,0
		
	mov ax,col_b
	mov cl,16
	div	cl

	mov cl,20
	mov ah,0
	mul cl
	mov temp,ax
	
	mov	cl,16
	mov ax,row_b	
	div cl
	mov ah,0
	add ax,temp

	MOV temp,OFFSET MS
	add ax,temp

	inc ax
	mov si,ax
	
	mov al,1
	cmp al,[si]
	jz run8
	jmp near ptr mov_up_b

run8:
	pop cx
	pop ax

	push	cx
	push	b_color
	mov	cx,0
	mov	b_color,cx
	call	rectb
	mov	cx,b_x
	add	cx,b_size
	mov	b_x,cx
	pop	b_color
	pop	cx

	mov ax,0
	mov ax,16
	add row_b,ax	

	jmp	near ptr draw

	ret
judgeb endp
;*************************************************************************************
;******************************画地图****************************************************
draw_map proc near

	CALL	frame

	MOV SI,OFFSET MS
	MOV DX,20
LOOP1:
	PUSH DX
	MOV CX,20
LOOP2:
	PUSH CX
	MOV AL,[SI]
	CMP AL,3
	JE drawhole	
	CMP AL,2
	JE drawgold
	CMP AL,1
	JE LOOP2OUT
drawgold:	
	CALL gold
	jmp LOOP2OUT
drawhole:
	call hole
LOOP2OUT:
	mov ax,16
	add X,ax	

	
	INC SI
	POP CX
	LOOP LOOP2
	MOV X,180
	mov ax,16
	add Y,ax
	POP DX
	DEC DX
	JNZ LOOP1
draw_map endp
;***********************************************************************************
;**************************按右键时计算操纵方块在地图中位置*****************************************************
count_right	proc	near
    push ax
    push cx
	mov ax,0
	mov cx,0
		
	mov ax,col
	mov cl,16
	div	cl

	mov cl,20
	mov ah,0
	mul cl
	mov temp,ax
	
	mov	cl,16
	mov ax,row	
	div cl
	mov ah,0
	add ax,temp

	MOV temp,OFFSET MS
	add ax,temp

	inc ax
	mov si,ax
	
	mov al,3
	cmp al,[si]
	jnz break1
	jmp near ptr exit
	 
	
break1:	
	mov al,1
	cmp al,[si]
	jz  continue1
	
	mov ax,gold_number
	dec ax
	mov gold_number,ax

continue1:
	pop cx
	pop ax
	ret
count_right endp
;**************************************************************************
;*********************按左键时计算操纵方块在地图中位置********************************************************
count_left	proc	near
    push ax
    push cx
	mov ax,0
	mov cx,0
		
	mov ax,col
	mov cl,16
	div	cl

	mov cl,20
	mov ah,0
	mul cl
	mov temp,ax
	
	mov	cl,16
	mov ax,row	
	div cl
	mov ah,0
	add ax,temp

	MOV temp,OFFSET MS
	add ax,temp

	dec ax
	mov si,ax
	
	mov al,3
	cmp al,[si]
	jnz break2
	jmp near ptr exit 
break2:	
	mov al,1
	cmp al,[si]
	jz  continue2

	mov ax,gold_number
	dec ax
	mov gold_number,ax

continue2:
	pop cx
	pop ax
	ret
	count_left endp
;*********************************************************************************
;******************************按上键时计算操纵方块在地图中位置****************************************************		
	count_up	proc	near
    push ax
    push cx
	mov ax,0
	mov cx,0
		
	mov ax,col
	mov cl,16
	div	cl

	mov cl,20
	mov ah,0
	mul cl
	mov temp,ax
	
	mov	cl,16
	mov ax,row	
	div cl
	mov ah,0
	add ax,temp

	MOV temp,OFFSET MS
	add ax,temp

	mov temp,20
	sub ax,temp
	mov si,ax
	
	mov al,3
	cmp al,[si]
	jnz break3
	jmp near ptr exit
	 
	
break3:	
	mov al,1
	cmp al,[si]
	jz  continue3
	
	mov ax,gold_number
	dec ax
	mov gold_number,ax

continue3:
	pop cx
	pop ax
	ret
count_up endp
;****************************************************************************
;**************************按下键时计算操纵方块在地图中位置************************************************
	
	count_down	proc	near
    push ax
    push cx
	mov ax,0
	mov cx,0
		
	mov ax,col
	mov cl,16
	div	cl

	mov cl,20
	mov ah,0
	mul cl
	mov temp,ax
	
	mov	cl,16
	mov ax,row	
	div cl
	mov ah,0
	add ax,temp

	MOV temp,OFFSET MS
	add ax,temp

	mov temp,20
	add ax,temp
	mov si,ax
	
	mov al,3
	cmp al,[si]
	jnz break4
	jmp near ptr exit
	 
	
break4:	
	mov al,1
	cmp al,[si]
	jz  continue4
	
	mov ax,gold_number
	dec ax
	mov gold_number,ax

continue4:
	pop cx
	pop ax
	ret
count_down endp

;**************************************************************************
;*******************************画宝物*********************************************

gold	proc	near
	push	ax
	push	bx
	push	cx
	push	dx

	mov	cx,x
	inc	cx
	inc	cx
	inc	cx
	inc	cx
	inc	cx	;5 lie	
	
	mov	dx,y
	inc	dx
	inc	dx
	inc	dx	;3 hang
	push	di
	push	si
	mov	di,0
	mov	si,0

back00:	
	mov	ax,gold_color	           ;gold_color
	mov	ah,0ch
	mov	bh,0
	int	10h
	inc	di
	inc	cx
	cmp	di,8	;13 is the width of block
	jnz	back00

	

;-----------------------------
mov	cx,x
	inc	cx
	inc	cx
	inc	cx
	inc	cx ;4 lie	
	
	mov	dx,y
	inc	dx
	inc	dx
	inc	dx
	inc	dx	;4 hang
	
	mov	di,0
	mov	si,0

back01:	
	mov	ax,gold_color	           ;gold_color
	mov	ah,0ch
	mov	bh,0
	int	10h
	inc	di
	inc	cx
	cmp	di,10	
	jnz	back01
;--------------------------------------------------------
mov	cx,x
	inc	cx
	inc	cx
	inc	cx ;3 lie	
	
	mov	dx,y
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx	;5 hang
	
	mov	di,0
	mov	si,0

back02:	
	mov	ax,gold_color	           ;gold_color
	mov	ah,0ch
	mov	bh,0
	int	10h
	inc	di
	inc	cx
	cmp	di,12	
	jnz	back02
;--------------------------------------------------------
mov	cx,x
	inc	cx	
	inc	cx ;2 lie	
	
	mov	dx,y
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx	;6 hang
	
	mov	di,0
	mov	si,0

back03:	
	mov	ax,gold_color	           ;gold_color
	mov	ah,0ch
	mov	bh,0
	int	10h
	inc	di
	inc	cx
	cmp	di,14	
	jnz	back03
;--------------------------------------------------------
mov	cx,x

	inc	cx ;1 lie	
	
	mov	dx,y
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx	;7 hang
	
	mov	di,0
	mov	si,0

back04:	
	mov	ax,gold_color	           ;gold_color
	mov	ah,0ch
	mov	bh,0
	int	10h
	inc	di
	inc	cx
	cmp	di,16	
	jnz	back04
;--------------------------------------------------------
mov	cx,x
	inc	cx
	inc	cx ;1 lie	
	
	mov	dx,y
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx	;7 hang
	
	mov	di,0
	mov	si,0

back05:	
	mov	ax,gold_color	           ;gold_color
	mov	ah,0ch
	mov	bh,0
	int	10h
	inc	di
	inc	cx
	cmp	di,14	
	jnz	back05
;--------------------------------------------------------
mov	cx,x
	inc	cx	
	inc	cx
	inc	cx ;1 lie	
	
	mov	dx,y
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx	;7 hang
	
	mov	di,0
	mov	si,0

back06:	
	mov	ax,gold_color	           ;gold_color
	mov	ah,0ch
	mov	bh,0
	int	10h
	inc	di
	inc	cx
	cmp	di,12	
	jnz	back06
;--------------------------------------------------------
mov	cx,x
	inc	cx
	inc	cx	
	inc	cx
	inc	cx ;1 lie	
	
	mov	dx,y
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx
	inc	dx	;7 hang
	
	mov	di,0
	mov	si,0

back07:	
	mov	ax,gold_color	           ;gold_color
	mov	ah,0ch
	mov	bh,0
	int	10h
	inc	di
	inc	cx
	cmp	di,10	

⌨️ 快捷键说明

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