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

📄 tileg.asm

📁 tile game 开始的时候没做random 需要手动调乱了 再拼
💻 ASM
字号:
.model small.stack 100h.data	count db 8h	Colour db 0ceh	blankTopRow db 0h	number9 db "<-------->"	      db "|*      *|"	      db "|*      *|"	      db "|*      *|"	      db "|*      *|"	      db "|*      *|"	      db "|*      *|"	      db "<-------->"	number9Row db 10h	number9Col db 14h		number1 db "<-------->"	        db "|//////#/|"	        db "|/////#//|"	        db "|////#///|"	        db "|///#////|"	       	        db "|//#/////|"	        db "|/#//////|"		db "<-------->"	number1col db 0h	number1row db 0h		number2 db  "<-------->"	        db  "|////////|"	        db  "|//#####/|"	        db  "|/#////#/|"	        db  "|/////#//|"	       	        db  "|///#////|"	        db  "|/######/|"	        db  "<-------->"		number2col db 0h	number2row db 8h	number3 db"<-------->"	       db "|/#####//|"	       db "|/////#//|"	       db "|/####///|"	       db "|/////#//|"	       	       db "|/////#//|"	       db "|/####///|"	       db "<-------->"	 number3col db 0h	 number3row db 10h	number4 db  "<-------->"	       db   "|////////|"	       db   "|/#//#///|"	       db   "|/#//#///|"	       db   "|/######/|"	       	       db   "|////#///|"	       db   "|////#///|"	       db   "<-------->"	 number4col db 0ah	 number4row db 0h	 number5 db "<-------->"	        db  "|////////|"	        db  "|//#####/|"	        db  "|/#//////|"	        db  "|//#####/|"	       	        db  "|//////#/|"	        db  "|/######/|"	        db  "<-------->"	number5col db 0ah	 number5row db 8h	number6 db "<-------->"	        db "|////////|"	        db "|/#####//|"	        db "|/#//////|"	        db "|/######/|"	       	        db "|/#////#/|"	        db "|/######/|"	        db  "<-------->"	number6col db 0ah	 number6row db 10h	 	 	 number7 db "<-------->"	        db "|////////|"	        db "|/#####//|"	        db "|/////#//|"	        db "|////#///|"	       	        db "|///#////|"	        db "|//#/////|"	        db  "<-------->"	number7col db 14h	 number7row db 0h	 	 	 number8 db"<-------->"	        db "|////////|"	        db "|/######/|"	        db "|/#////#/|"	        db "|/######/|"	       	        db "|/#////#/|"	        db "|/######/|"	        db  "<-------->"	number8col db 14h	 number8row db 8h	 key db ?;============================================================	.codemain:		call init	call getnumber1	call getnumber2	call getnumber3	call getnumber4	call getnumber5	call getnumber6	call getnumber7	call getnumber8	call getnumber9	;==========================================getKeyAgain:		call getKey	cmp key,'w'	jz SearchUp	cmp key,'s'	jz searchDown	cmp key,'a'	jz searchLeft	cmp key,'d'	jz searchRight	jmp getKeyAgainSearchUp: call swapUp	jmp getKeyAgainsearchDown:	call swapDown	jmp getKeyAgain searchLeft:	call swapLeft	jmp getKeyAgain searchRight:	call swapRight	jmp getKeyAgain 	here:jmp here;=======================================proc blankswapUp	push ax bx cx dx	sub number9Row,8h		xor bx,bx	mov ch,number9Row	mov cl,number9Col	add number9Row,0fh	add number9Col,09h	mov dh,number9Row	mov dl,number9Col	mov ax,0600h	int 10h	sub number9Row,0fh	sub number9Col,09h	pop dx cx bx axretendp blankswapUp;======================================;=======================================proc blankswapDown	push ax bx cx dx			xor bx,bx	mov ch,number9Row	mov cl,number9Col	add number9Row,0fh	add number9Col,09h	mov dh,number9Row	mov dl,number9Col	mov ax,0600h	int 10h		sub number9Row,07h	sub number9Col,09h	pop dx cx bx axretendp blankswapDown;===============================proc blankswapLeftpush ax bx cx dx		sub number9Col,0ah	xor bx,bx	mov ch,number9Row	mov cl,number9Col	add number9Row,07h	add number9Col,013h	mov dh,number9Row	mov dl,number9Col	mov ax,0600h	int 10h		sub number9Row,07h	sub number9Col,013h	pop dx cx bx axretendp blankswapLeft;=======================================proc blankswapRightpush ax bx cx dx			xor bx,bx	mov ch,number9Row	mov cl,number9Col	add number9Row,07h	add number9Col,013h	mov dh,number9Row	mov dl,number9Col	mov ax,0600h	int 10h		sub number9Row,07h	sub number9Col,013h	pop dx cx bx axretendp blankswapRight;========================================proc swapRight	push ax	cmp number9Col,14h	jz swapRight_done		call blankswapRight			add number9Col,0ah	call getnumber9		mov ah,number9Row	mov al,number9Col	call findSameRight	swapRight_done:	pop axretendp swapRight;======================================proc swapLeft	push ax	cmp number9Col,0	jz swapLeft_done		call blankswapLeft				call getnumber9	mov ah,number9Row	mov al,number9Col	call findSameLeft	swapLeft_done:	pop axretendp swapLeft;======================================proc swapUp	push ax	cmp number9Row,0	jz swapUp_done		call blankswapUp		;blank first find the one above printIt		call getnumber9	mov ah,number9Row	mov al,number9Col	call findSameAbove	swapUp_done:	pop axretendp swapUp;==========================================proc swapDown	push ax	cmp number9Row,10h	jz swapDown_done		call blankswapDown		;blank first find the one above printIt		call getnumber9			mov ah,number9Row	mov al,number9Col	call findSameDown	swapDown_done:	pop axretendp swapDown;==========================================proc findSameRight	push ax dx	mov dh,number1Row	mov dl,number1Col	cmp ax,dx	jz findSwapRight1 	mov dh,number2Row	mov dl,number2Col	cmp ax,dx	jz findSwapRight2 	mov dh,number3Row	mov dl,number3Col	cmp ax,dx	jz findSwapRight3 	mov dh,number4Row	mov dl,number4Col	cmp ax,dx	jz findSwapRight4 	mov dh,number5Row	mov dl,number5Col	cmp ax,dx	jz findSwapRight5 	mov dh,number6Row	mov dl,number6Col	cmp ax,dx	jz findSwapRight6	mov dh,number7Row	mov dl,number7Col	cmp ax,dx	jz findSwapRight7 	mov dh,number8Row	mov dl,number8Col	cmp ax,dx	jz findSwapRight8	findSwapRight1:	sub number1Col,0ah	call getNumber1	jmp end_findSameRightfindSwapRight2:	sub number2Col,0ah	call getNumber2	jmp end_findSameRightfindSwapRight3:	sub number3Col,0ah	call getNumber3	jmp end_findSameRightfindSwapRight4:	sub number4Col,0ah	call getNumber4	jmp end_findSameRightfindSwapRight5:	sub number5Col,0ah	call getNumber5	jmp end_findSameRightfindSwapRight6:	sub number6Col,0ah	call getNumber6	jmp end_findSameRightfindSwapRight7:	sub number7Col,0ah	call getNumber7	jmp end_findSameRightfindSwapRight8:	sub number8Col,0ah	call getNumber8	jmp end_findSameRightend_findSameRight:	pop dx axretendp findSameRight;==========================================proc findSameAbove	push ax dx	mov dh,number1Row	mov dl,number1Col	cmp ax,dx	jz findSwapUp1 	mov dh,number2Row	mov dl,number2Col	cmp ax,dx	jz findSwapUp2 	mov dh,number3Row	mov dl,number3Col	cmp ax,dx	jz findSwapUp3 	mov dh,number4Row	mov dl,number4Col	cmp ax,dx	jz findSwapUp4 	mov dh,number5Row	mov dl,number5Col	cmp ax,dx	jz findSwapUp5 	mov dh,number6Row	mov dl,number6Col	cmp ax,dx	jz findSwapUp6	mov dh,number7Row	mov dl,number7Col	cmp ax,dx	jz findSwapUp7 	mov dh,number8Row	mov dl,number8Col	cmp ax,dx	jz findSwapUp8	findSwapUp1:	add number1Row,8h	call getNumber1	jmp end_findSamefindSwapUp2:	add number2Row,8h	call getNumber2	jmp end_findSamefindSwapUp3:	add number3Row,8h	call getNumber3	jmp end_findSamefindSwapUp4:	add number4Row,8h	call getNumber4	jmp end_findSamefindSwapUp5:	add number5Row,8h	call getNumber5	jmp end_findSamefindSwapUp6:	add number6Row,8h	call getNumber6	jmp end_findSamefindSwapUp7:	add number7Row,8h	call getNumber7	jmp end_findSamefindSwapUp8:	add number8Row,8h	call getNumber8	jmp end_findSameend_findSame:	pop dx axretendp findSameAbove;========================================proc findSameLeft	push ax dx	mov dh,number1Row	mov dl,number1Col	cmp ax,dx	jz findSwapLeft1 	mov dh,number2Row	mov dl,number2Col	cmp ax,dx	jz findSwapLeft2 	mov dh,number3Row	mov dl,number3Col	cmp ax,dx	jz findSwapLeft3 	mov dh,number4Row	mov dl,number4Col	cmp ax,dx	jz findSwapLeft4 	mov dh,number5Row	mov dl,number5Col	cmp ax,dx	jz findSwapLeft5 	mov dh,number6Row	mov dl,number6Col	cmp ax,dx	jz findSwapLeft6	mov dh,number7Row	mov dl,number7Col	cmp ax,dx	jz findSwapLeft7 	mov dh,number8Row	mov dl,number8Col	cmp ax,dx	jz findSwapLeft8	findSwapLeft1:	add number1col,0ah	call getNumber1	jmp end_findSameLeftfindSwapLeft2:	add number2col,0ah	call getNumber2	jmp end_findSameLeftfindSwapLeft3:	add number3Col,0ah	call getNumber3	jmp end_findSameLeftfindSwapLeft4:	add number4Col,0ah	call getNumber4	jmp end_findSameLeftfindSwapLeft5:	add number5Col,0ah	call getNumber5	jmp end_findSameLeftfindSwapLeft6:	add number6Col,0ah	call getNumber6	jmp end_findSameLeftfindSwapLeft7:	add number7Col,0ah	call getNumber7	jmp end_findSameLeftfindSwapLeft8:	add number8Col,0ah	call getNumber8	jmp end_findSameLeftend_findSameLeft:	pop dx axretendp findSameLeft;==========================================proc findSameDown	push ax dx		mov dh,number1Row	mov dl,number1Col	cmp ax,dx	jz findSwapDown1 	mov dh,number2Row	mov dl,number2Col	cmp ax,dx	jz findSwapDown2 	mov dh,number3Row	mov dl,number3Col	cmp ax,dx	jz findSwapDown3 	mov dh,number4Row	mov dl,number4Col	cmp ax,dx	jz findSwapDown4 	mov dh,number5Row	mov dl,number5Col	cmp ax,dx	jz findSwapDown5 	mov dh,number6Row	mov dl,number6Col	cmp ax,dx	jz findSwapDown6	mov dh,number7Row	mov dl,number7Col	cmp ax,dx	jz findSwapDown7 	mov dh,number8Row	mov dl,number8Col	cmp ax,dx	jz findSwapDown8	findSwapDown1:	sub number1Row,8h	call getNumber1	jmp end_findSameDownfindSwapDown2:	sub number2Row,8h	call getNumber2	jmp end_findSameDownfindSwapDown3:	sub number3Row,8h	call getNumber3	jmp end_findSameDownfindSwapDown4:	sub number4Row,8h	call getNumber4	jmp end_findSameDownfindSwapDown5:	sub number5Row,8h	call getNumber5	jmp end_findSameDownfindSwapDown6:	sub number6Row,8h	call getNumber6	jmp end_findSameDownfindSwapDown7:	sub number7Row,8h	call getNumber7	jmp end_findSameDownfindSwapDown8:	sub number8Row,8h	call getNumber8	jmp end_findSameDownend_findSameDown:	pop dx axretendp findSameDown;========================================;===========================================proc inIt	push ax	mov ax, @data	mov ds,ax	mov es,ax  	pop axretendp inIt;====================================proc getnumber1	push ax bx cx dx	mov bp,offset number1back1:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number1Row	mov dl,number1col	int 10h	add bp,10	inc number1Row	dec count	cmp count,0	jz doneNumber1	jmp back1		doneNumber1:mov count,8	sub number1Row,8	pop dx cx bx axretendp getnumber1;================================proc getnumber2	push ax bx cx dx	mov bp,offset number2back2:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number2Row	mov dl,number2col	int 10h	add bp,10	inc number2Row	dec count	cmp count,0	jz doneNumber2	jmp back2		doneNumber2:	mov count,8	sub number2Row,8	pop dx cx bx axretendp getnumber2;====================================proc getnumber3	push ax bx cx dx	mov bp,offset number3back3:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number3Row	mov dl,number3col	int 10h	add bp,10	inc number3Row	dec count	cmp count,0	jz doneNumber3	jmp back3		doneNumber3:	mov count,8	sub number3Row,8	pop dx cx bx axretendp getnumber3;====================================proc getnumber4	push ax bx cx dx	mov bp,offset number4back4:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number4Row	mov dl,number4col	int 10h	add bp,10	inc number4Row	dec count	cmp count,0	jz doneNumber4	jmp back4		doneNumber4:	mov count,8	sub number4Row,8	pop dx cx bx axretendp getnumber4;=========================================proc getnumber5	push ax bx cx dx	mov bp,offset number5back5:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number5Row	mov dl,number5col	int 10h	add bp,10	inc number5Row	dec count	cmp count,0	jz doneNumber5	jmp back5		doneNumber5:	mov count,8	sub number5Row,8	pop dx cx bx axretendp getnumber5;========================================proc getnumber6	push ax bx cx dx	mov bp,offset number6back6:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number6Row	mov dl,number6col	int 10h	add bp,10	inc number6Row	dec count	cmp count,0	jz doneNumber6	jmp back6		doneNumber6:	mov count,8	sub number6Row,8	pop dx cx bx axretendp getnumber6;===========================================proc getnumber7	push ax bx cx dx	mov bp,offset number7back7:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number7Row	mov dl,number7col	int 10h	add bp,10	inc number7Row	dec count	cmp count,0	jz doneNumber7	jmp back7		doneNumber7:	mov count,8	sub number7Row,8	pop dx cx bx axretendp getnumber7;==============================================proc getnumber8	push ax bx cx dx	mov bp,offset number8back8:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number8Row	mov dl,number8col	int 10h	add bp,10	inc number8Row	dec count	cmp count,0	jz doneNumber8	jmp back8		doneNumber8:	mov count,8	sub number8Row,8	pop dx cx bx axretendp getnumber8;================================================proc getnumber9	push ax bx cx dx	mov bp,offset number9back9:		mov ah,13h	mov al,00h	xor bh,bh	mov bl,Colour	mov cx,10	mov dh,number9Row	mov dl,number9col	int 10h	add bp,10	inc number9Row	dec count	cmp count,0	jz doneNumber9	jmp back9		doneNumber9:	mov count,8	sub number9Row,8	pop dx cx bx axretendp getnumber9;==================================================proc getKey	push ax	xor ah,ah	int 16h	mov key,al	pop axretendp getKey;===============================================;=====================================proc delay	push si di	mov si,0ffffhdec_si:	mov di,0ffffhdec_di:	dec di	jnz dec_di	dec si	jnz dec_si	pop di siretendp delay;================;==========================================proc exit	push ax	mov ah,04ch	int 21h	pop axretendp exit;=========================================end main

⌨️ 快捷键说明

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