使用汇编语言编写一条简单的贪吃蛇的实现
<p>本文中的汇编语言是基于x86芯片,下面给出代码:</p><div class="jb51code">
<pre class="brush:plain;">
;TITLEGAME4TH
PAGE 60,132
STSEG SEGMENT
DB 64 DUP (0)
STSEG ENDS
;-----------------------------------
DTSEG SEGMENT
DATAH DB10H,10H,10H,10H,10H,10H,10H,10H,10H
DATAL DB20H,21H,22H,23H,24H,25H,26H,27H,28H
DTSEG ENDS
CR EQU 0DH
LF EQU 0AH
;------------------------------------
CDSEG SEGMENT
MAIN PROC FAR
ASSUME CS:CDSEG,DS:DTSEG,SS:STSEG
MOV AX,DTSEG
MOV DS,AX
MOV AX,0600H
MOV BH,00011110B
MOV CX,0
MOV DH,18H
MOV DL,04FH
INT 10H
FISH: MOV AX,0600H
MOV BH,00011110B
MOV CX,0
MOV DH,18H
MOV DL,04FH
INT 10H
MOV AH,02
MOV BH,00
MOV SI,OFFSET DATAH
MOV DI,OFFSET DATAL
MOV DH,
MOV DL,
INT 10H
MOV AX,0201H
MOV DL,'+'
INT 21H
MOV AH,02
MOV BH,00
MOV DH,+1
MOV DL,+1
INT 10H
MOV AX,0201H
MOV DL,'#'
INT 21H
MOV AH,02
MOV BH,00
MOV DH,+2
MOV DL,+2
INT 10H
MOV AX,0201H
MOV DL,'#'
INT 21H
MOV AH,02
MOV BH,00
MOV DH,+3
MOV DL,+3
INT 10H
MOV AX,0201H
MOV DL,'#'
INT 21H
MOV AH,02
MOV BH,00
MOV DH,+4
MOV DL,+4
INT 10H
MOV AX,0201H
MOV DL,'#'
INT 21H
MOV AH,02
MOV BH,00
MOV DH,+5
MOV DL,+5
INT 10H
MOV AX,0201H
MOV DL,'#'
INT 21H
MOV AH,02
MOV BH,00
MOV DH,+6
MOV DL,+6
INT 10H
MOV AX,0201H
MOV DL,'#'
INT 21H
MOV AH,02
MOV BH,00
MOV DH,+7
MOV DL,+7
INT 10H
MOV AX,0201H
MOV DL,'#'
INT 21H
MOV AH,02
MOV BH,00
MOV DH,+8
MOV DL,+8
INT 10H
MOV AX,0201H
MOV DL,'>'
INT 21H
LOOP1:MOV AH,0 ;循环输入
MOV AL,0
INT 16H
CMP AH,72
JEUP
CMP AH,80
JEDOWN
CMP AH,77
JERIGHT
CMP AH,75
JELEFT
UP:MOV SI,OFFSET DATAH
MOV DI,OFFSET DATAL
MOV DH,+8
MOV DL,+8
MOV CH,DH
MOV CL,DL
DEC DH
MOV +8,DH
MOV +8,DL
JMP BACK
DOWN: MOV SI,OFFSET DATAH
MOV DI,OFFSET DATAL
MOV DH,+8
MOV DL,+8
MOV CH,DH
MOV CL,DL
INC DH
MOV +8,DH
MOV +8,DL
JMP BACK
LEFT: MOV SI,OFFSET DATAH
MOV DI,OFFSET DATAL
MOV DH,+8
MOV DL,+8
MOV CH,DH
MOV CL,DL
DEC DL
MOV +8,DH
MOV +8,DL
JMP BACK
RIGHT:MOV SI,OFFSET DATAH
MOV DI,OFFSET DATAL
MOV DH,+8
MOV DL,+8
MOV CH,DH
MOV CL,DL
INC DL
MOV +8,DH
MOV +8,DL
JMP BACK
BACK: MOV DH,+7
MOV DL,+7
MOV +7,CH
MOV +7,CL
MOV CH,DH
MOV CL,DL
MOV DH,+6
MOV DL,+6
MOV +6,CH
MOV +6,CL
MOV CH,DH
MOV CL,DL
MOV DH,+5
MOV DL,+5
MOV +5,CH
MOV +5,CL
MOV CH,DH
MOV CL,DL
MOV DH,+4
MOV DL,+4
MOV +4,CH
MOV +4,CL
MOV CH,DH
MOV CL,DL
MOV DH,+3
MOV DL,+3
MOV +3,CH
MOV +3,CL
MOV CH,DH
MOV CL,DL
MOV DH,+2
MOV DL,+2
MOV +2,CH
MOV +2,CL
MOV CH,DH
MOV CL,DL
MOV DH,+1
MOV DL,+1
MOV +1,CH
MOV +1,CL
MOV CH,DH
MOV CL,DL
MOV DH,
MOV DL,
MOV ,CH
MOV ,CL
MOV CH,DH
MOV CL,DL
JMP FISH
MAIN ENDP
CDSEG ENDS
END MAIN</pre>
</div>
<p></p>
<p>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持琼殿技术社区。</p>
<div class="art_xg">
<b>您可能感兴趣的文章:</b><ul><li>王爽 汇编语言学习笔记(详细)</li><li>汇编语言lea指令使用方法解析</li><li>Windows10下利用DOSBOX和MASM32搭建汇编语言开发环境</li><li>详解汇编语言RCL(带进位循环左移)和RCR(带进位循环右移)指令</li><li>汇编语言中test和cmp有什么区别</li></ul>
</div>
</div>
<!--endmain-->
頁:
[1]