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

📄 snake.asm

📁 用汇编语言实现的沙罗曼蛇
💻 ASM
字号:
.model		small
.386p
.data
snake	db	' -============#'

pos		db	21h,0ch,22h,0ch,23h,0ch
db	24h,0ch,25h,0ch,26h,0ch
db	27h,0ch,28h,0ch,29h,0ch
db	2ah,0ch,2bh,0ch,2ch,0ch
db	2dh,0ch,2eh,0ch,2fh,0ch

tail		db	0
.stack	100

.code
.startup

mov	al,0
mov	bh,10h
mov	ah,6
mov	cx,0
mov	dl,79
mov	dh,24
int		10h


lea		si,pos

L0:		xor		ch,ch
mov	cl,15
lea		di,snake

L1:		mov	dh,[si+1]
mov	dl,[si]
mov	bh,0	
mov	ah,2
int		10h
	
mov	bh,0
mov	al,[di]
push	cx
mov	cx,1
mov	bl,1eh
mov	ah,9
int		10h
pop	cx

inc		di
inc		si
inc		si
cmp	si,offset tail
jne		A1
lea		si,pos
A1:		loop	L1


mov	di,si
mov	bx,di
cmp	bx,offset pos
jne		A2
lea		bx,tail
A2:		sub	bx,2
mov	cx,bx
cmp	cx,offset pos
jne		A3
lea		cx,tail
A3:		sub	cx,2

inc		si
inc		si
cmp	si,offset tail
jne		J0
lea		si,pos

J0:		mov	ah,0
int		16h

cmp	ah,72
jne		J1

mov	al,[bx]
mov	[di],al
mov	al,[bx+1]
dec		al

cmp	al,-1
jne		M0
mov	al,24
M0:	mov	[di+1],al
	

mov	al,[di]
xchg	cx,bx
mov	dh,[bx]
cmp	al,dh
jne		L0
mov	al,[di+1]
mov	dh,[bx+1]
cmp	al,dh
jne		L0
xchg	cx,bx
jmp	J0

J1:		cmp	ah,80
jne		J2

mov	al,[bx]
mov	[di],al
mov	al,[bx+1]
inc		al
cmp	al,26
jne		M1
mov	al,0
M1:	mov	[di+1],al
mov	al,[di]
xchg	cx,bx
mov	dh,[bx]
cmp	al,dh
jne		L0
mov	al,[di+1]
mov	dh,[bx+1]
cmp	al,dh
jne		L0
xchg	cx,bx
jmp	J0

J2:		cmp	ah,75
jne		J3

mov	al,[bx+1]
mov	[di+1],al
mov	al,[bx]
dec		al
cmp	al,-1
jne		M2
mov	al,79
M2:	mov	[di],al
mov	al,[di]
xchg	cx,bx
mov	dh,[bx]
cmp	al,dh
jne		L0
mov	al,[di+1]
mov	dh,[bx+1]
cmp	al,dh
jne		L0
xchg	cx,bx
jmp	J0

J3:		cmp	ah,77


mov	al,[bx+1]
mov	[di+1],al
mov	al,[bx]
inc		al
cmp	al,80
jne		M3
mov	al,0
M3:	mov	[di],al
mov	al,[di]
xchg	cx,bx
mov	dh,[bx]
cmp	al,dh	
jne		L0
mov	al,[di+1]
mov	dh,[bx+1]
cmp	al,dh
jne		L0
xchg	cx,bx
jmp	J0

end

⌨️ 快捷键说明

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