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

 更新时间:2020年01月18日 11:39:54   作者:小-立子  
这篇文章主要介绍了使用汇编语言编写一条简单的贪吃蛇的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文中的汇编语言是基于x86芯片,下面给出代码:

;TITLE  GAME4TH  
PAGE 60,132
STSEG SEGMENT
    DB 64 DUP (0)
STSEG ENDS
;-----------------------------------
DTSEG SEGMENT
DATAH DB  10H,10H,10H,10H,10H,10H,10H,10H,10H
DATAL DB  20H,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,[SI]
   MOV DL,[DI]
   INT 10H
   MOV AX,0201H
   MOV DL,'+'
   INT 21H
   MOV AH,02 
   MOV BH,00
   MOV DH,[SI]+1
   MOV DL,[DI]+1
   INT 10H 
   MOV AX,0201H
   MOV DL,'#'
   INT 21H
   MOV AH,02 
   MOV BH,00
   MOV DH,[SI]+2
   MOV DL,[DI]+2
   INT 10H 
   MOV AX,0201H
   MOV DL,'#'
   INT 21H
   MOV AH,02 
   MOV BH,00
   MOV DH,[SI]+3
   MOV DL,[DI]+3
   INT 10H 
   MOV AX,0201H
   MOV DL,'#'
   INT 21H
   MOV AH,02 
   MOV BH,00
   MOV DH,[SI]+4
   MOV DL,[DI]+4
   INT 10H 
   MOV AX,0201H
   MOV DL,'#'
   INT 21H
   MOV AH,02 
   MOV BH,00
   MOV DH,[SI]+5
   MOV DL,[DI]+5
   INT 10H 
   MOV AX,0201H
   MOV DL,'#'
   INT 21H
   MOV AH,02 
   MOV BH,00
   MOV DH,[SI]+6
   MOV DL,[DI]+6
   INT 10H 
   MOV AX,0201H
   MOV DL,'#'
   INT 21H
   MOV AH,02 
   MOV BH,00
   MOV DH,[SI]+7
   MOV DL,[DI]+7
   INT 10H 
   MOV AX,0201H
   MOV DL,'#'
   INT 21H
   MOV AH,02 
   MOV BH,00
   MOV DH,[SI]+8
   MOV DL,[DI]+8
   INT 10H 
   MOV AX,0201H
   MOV DL,'>'
   INT 21H           
   
LOOP1:MOV AH,0   ;循环输入
   MOV AL,0
   INT 16H
   CMP AH,72
   JE  UP        
   CMP AH,80
   JE  DOWN  
   CMP AH,77
   JE  RIGHT
   CMP AH,75
   JE  LEFT 
    
UP:  MOV SI,OFFSET DATAH
   MOV DI,OFFSET DATAL   
   MOV DH,[SI]+8
   MOV DL,[DI]+8
   MOV CH,DH
   MOV CL,DL
   DEC DH
   MOV [SI]+8,DH
   MOV [DI]+8,DL 
   JMP BACK      
        
DOWN: MOV SI,OFFSET DATAH
   MOV DI,OFFSET DATAL   
   MOV DH,[SI]+8
   MOV DL,[DI]+8
   MOV CH,DH
   MOV CL,DL
   INC DH
   MOV [SI]+8,DH
   MOV [DI]+8,DL 
   JMP BACK     
 
LEFT: MOV SI,OFFSET DATAH
   MOV DI,OFFSET DATAL   
   MOV DH,[SI]+8
   MOV DL,[DI]+8
   MOV CH,DH
   MOV CL,DL
   DEC DL
   MOV [SI]+8,DH
   MOV [DI]+8,DL 
   JMP BACK     
 
RIGHT:MOV SI,OFFSET DATAH
   MOV DI,OFFSET DATAL   
   MOV DH,[SI]+8
   MOV DL,[DI]+8
   MOV CH,DH
   MOV CL,DL
   INC DL
   MOV [SI]+8,DH
   MOV [DI]+8,DL 
   JMP BACK
      
BACK: MOV DH,[SI]+7
   MOV DL,[DI]+7 
   MOV [SI]+7,CH
   MOV [DI]+7,CL 
   MOV CH,DH
   MOV CL,DL
   MOV DH,[SI]+6
   MOV DL,[DI]+6 
   MOV [SI]+6,CH
   MOV [DI]+6,CL 
   MOV CH,DH
   MOV CL,DL
   MOV DH,[SI]+5
   MOV DL,[DI]+5 
   MOV [SI]+5,CH
   MOV [DI]+5,CL 
   MOV CH,DH
   MOV CL,DL
   MOV DH,[SI]+4
   MOV DL,[DI]+4 
   MOV [SI]+4,CH
   MOV [DI]+4,CL 
   MOV CH,DH
   MOV CL,DL
   MOV DH,[SI]+3
   MOV DL,[DI]+3 
   MOV [SI]+3,CH
   MOV [DI]+3,CL 
   MOV CH,DH
   MOV CL,DL 
   MOV DH,[SI]+2
   MOV DL,[DI]+2 
   MOV [SI]+2,CH
   MOV [DI]+2,CL 
   MOV CH,DH
   MOV CL,DL
   MOV DH,[SI]+1
   MOV DL,[DI]+1 
   MOV [SI]+1,CH
   MOV [DI]+1,CL 
   MOV CH,DH
   MOV CL,DL 
   MOV DH,[SI]
   MOV DL,[DI] 
   MOV [SI],CH
   MOV [DI],CL 
   MOV CH,DH
   MOV CL,DL
   JMP FISH   
   
MAIN ENDP 
CDSEG ENDS    
   END MAIN

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 16位汇编语言寄存器及指令整理(小结)

    16位汇编语言寄存器及指令整理(小结)

    这篇文章主要介绍了16位汇编语言寄存器及指令整理(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编 JCC指令表与笔记

    汇编 JCC指令表与笔记

    这篇文章主要介绍了汇编 JCC指令表与笔记,需要的朋友可以参考下
    2020-01-01
  • 汇编语言系列之汇编实现各种码制的转换(思路详解)

    汇编语言系列之汇编实现各种码制的转换(思路详解)

    本文列出了十六进制转二进制、十进制、ASCII码及大小写字母转换的代码,对汇编语言系列之实现各种码制的转换问题感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • 汇编语言mov指令及基本用法

    汇编语言mov指令及基本用法

    在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的)。这篇文章给大家介绍汇编语言mov指令及基本用法,感兴趣的朋友一起看看吧
    2020-01-01
  • 一文秒懂汇编中的循环问题

    一文秒懂汇编中的循环问题

    这篇文章主要介绍了一文秒懂汇编中的循环问题,通过每一行指令详细分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 汇编语言lea指令使用方法解析

    汇编语言lea指令使用方法解析

    这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 使用汇编语言编写一条简单的贪吃蛇的实现

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

    这篇文章主要介绍了使用汇编语言编写一条简单的贪吃蛇的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编语言入门教程阮一峰版

    汇编语言入门教程阮一峰版

    汇编语言是一种最低级、最古老、不具有移植性的编程语言,它能够直接访问计算机硬件,所以执行效率极高,占用资源极少,一般用于嵌入式设备、驱动程序、实时应用、核心算法等
    2020-01-01
  • 汇编语言之实现发出各种声音

    汇编语言之实现发出各种声音

    本文给大家分享一个练手小项目,响铃设计项目,列出了响铃,机枪声音,音乐播放器的代码,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • 汇编语言中cmp指令用法笔记与总结

    汇编语言中cmp指令用法笔记与总结

    这篇文章主要介绍了汇编语言中cmp指令用法,结合实例形式总结分析了汇编语言cmp指令基本功能、使用方法及操作注意事项,需要的朋友可以参考下
    2020-01-01

最新评论