引子 發表於 2020-1-18 11:39:54

使用汇编语言编写一条简单的贪吃蛇的实现

<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,'&gt;'
   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]
查看完整版本: 使用汇编语言编写一条简单的贪吃蛇的实现