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

本文中的汇编语言是基于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

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

(0)

相关推荐

  • 贪吃蛇C语言代码实现(难度可选)

    本文实例为大家分享了C语言实现贪吃蛇的具体代码,供大家参考,具体内容如下 /********************************************************* ********************贪吃蛇(难度可选)******************** **************制作者:Xu Lizi 日期:2012/12/31******** ********************部分函数有借鉴************************ ****

  • 微信小程序实现的贪吃蛇游戏【附源码下载】

    本文实例讲述了微信小程序实现的贪吃蛇游戏.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: 界面布局 pages/snake/snake/snake.wxml: <!--snake.wxml--> <view class="control" bindtouchstart="tapStart" bindtouchmove="tapMove" bindtouchend="tapEnd">

  • 基于C语言实现的贪吃蛇游戏完整实例代码

    本文以实例的形式讲述了基于C语言实现的贪吃蛇游戏代码,这是一个比较常见的游戏,代码备有比较详细的注释,对于读者理解有一定的帮助. 贪吃蛇完整实现代码如下: #include <graphics.h> #include <conio.h> #include <stdlib.h> #include <dos.h> #define NULL 0 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #defi

  • JS写的贪吃蛇游戏(个人练习)

    JS贪吃蛇游戏,个人练习之用,放在这备份一下,   复制代码 代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS贪吃蛇-练习</t

  • Python 实现 贪吃蛇大作战 代码分享

    感觉游戏审核新政实施后,国内手游市场略冷清,是不是各家的新游戏都在排队等审核.媒体们除了之前竞相追捧<Pokemon Go>热闹了一把,似乎也听不到什么声音了.直到最近几天,突然听见好几人都提到同一个游戏,网上还有人表示朋友圈被它刷屏了.(不过现在微信已经悍然屏蔽了它的分享) 这个游戏就是现在iOS免费榜排名第一的<贪吃蛇大作战>.一个简单到不行的游戏,也不知道怎么就火了.反正一款游戏火了,各路媒体.专家总能说出种种套路来,所以我就不发表意见了.不过这实在是一个挺好实现的游戏,于是

  • java贪吃蛇游戏编写代码

    本文实例为大家分享了java贪吃蛇游戏展示的具体代码,供大家参考,具体内容如下 1.采用MVC(model.view.control)框架模式 2.包和类的关系树形图为: 3.源码: package com.huai; import Java.awt.Color; import java.awt.Graphics; import java.awt.Point; import java.util.HashSet; import java.util.LinkedList; import java.u

  • Python写的贪吃蛇游戏例子

    第一次用Python写这种比较实用且好玩的东西,权当练手吧 游戏说明: * P键控制"暂停/开始"* 方向键控制贪吃蛇的方向 源代码如下: 复制代码 代码如下: from Tkinter import *import tkMessageBox,sysfrom random import randint class Grid(object):    def __init__(self,master=None,window_width=800,window_height=600,grid_

  • 50行代码实现贪吃蛇(具体思路及代码)

    最近一直在准备用来面试的几个小demo,为了能展现自己,所以都是亲自设计并实现的,其中一个就是在50行代码内来实现一个贪吃蛇,为了说明鄙人自己练习编程的一种方式--把代码写短,为了理解语言细节. 复制代码 代码如下: <SPAN style="FONT-SIZE: 14px">import sys, pygame from pygame.locals import * from random import randrange up =lambda x:(x[0]-1,x[1

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

    本文中的汇编语言是基于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

  • 用js编写简单的贪吃蛇小游戏

    本文实例为大家分享了js编写简单的贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 代码如下: HTML 5 部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta n

  • 五分钟学会怎么用Pygame做一个简单的贪吃蛇

    Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发.我们今天将利用它来制作一款大家基本都玩过的小游戏--贪吃蛇. 一.需要导入的包 import pygame import time import random pygame:获取图形组件构建游戏 time:主要用来设置帧率 random:主要用来设置食物的刷新位置 二.窗口界面设置 首先我们初始化游戏,建立一个窗口 pygame.init() 然后我们定义游戏中需要使用的颜色,在这个示例中,我们定义了六

  • 五分钟学会怎么用python做一个简单的贪吃蛇

    Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发.我们今天将利用它来制作一款大家基本都玩过的小游戏--贪吃蛇. 一.需要导入的包 import pygame import time import random pygame:获取图形组件构建游戏 time:主要用来设置帧率 random:主要用来设置食物的刷新位置 二.窗口界面设置 首先我们初始化游戏,建立一个窗口 pygame.init() 然后我们定义游戏中需要使用的颜色,在这个示例中,我们定义了六

  • python实现一个简单的贪吃蛇游戏附代码

    前言: 不知道有多少同学跟我一样,最初接触编程的动机就是为了自己做个游戏玩? 今天要给大家分享的是一个 pygame 写的“贪吃蛇”小游戏: “贪吃蛇”这个小游戏在编程学习中的常客,因为: 简单,最基本的游戏元素只需要蛇和食物两个就可以进行了.(打飞机还需要三个元素呢,想想分别是什么?)方向的话只要上下左右4个固定方向就可以了.有基本的数据结构和面向对象的思想在其中.游戏开发本身就会用到很多面向对象的概念,而蛇的身体又是一个天然的“链表”结构,太适合用来练习数据结构了.另外比较有趣的一点是,Py

  • javascript实现简单的贪吃蛇游戏

    javascript实现简单的贪吃蛇游戏,功能很简单,代码也很实用,就不多废话了,小伙伴们参考注释吧. <html> <head> <meta http-equiv='content-type' content='text/html;charset=utf-8'> <title>贪吃蛇</title> <script type="text/javascript"> var map; //地图 var snake;

  • Java实现简单的贪吃蛇小游戏

    本文实例为大家分享了Java实现简单的贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 1. 程序结构 程序结构图如图: 2. 程序设计思路 2.1 Data类 作用:连接statics文件夹,将静态资源包中的图片转化为图标 方便在面板上绘制. 实现:使用class.getResource(String path)方法. 代码如下: package com.snake; import javax.swing.*; import java.net.URL; public class Data {

  • Java实现简单版贪吃蛇游戏

    本文实例为大家分享了Java实现简单版贪吃蛇游戏的具体代码,供大家参考,具体内容如下 这是一个比较简洁的小游戏,主要有三个类,一个主类,一个食物类,一个贪吃蛇类. 1.首先定义主类,主类中主要用来创建窗口 public class Main { public static final int WIDTH=600; public static final int HEIGHT=600; public static void main(String[] args) { JFrame win =new

  • 基于Pygame实现简单的贪吃蛇游戏

    目录 导入相关的包 设置屏幕大小以及基本参数 设置贪吃蛇的位置,以及移动的大小 绘制蛇 让蛇动起来 实现贪吃蛇拐弯 实现随机食物 吃食物 完整代码  导入相关的包 import pygame, sys, random from pygame.locals import * 设置屏幕大小以及基本参数 设置屏幕大小为400*400,mainClock = pygame.time.Clock()用来设置时间同步,不会根据计算机的运行来决定运行多少次, mainClock.tick(1) 一秒只会运行一

  • c++实现超简单的贪吃蛇游戏实例介绍

    目录 设计思路 实现代码 效果 设计思路         建议先将代码复制下来跑一遍再来看思路!!!         通俗易懂,请仔细看.         值得注意的是我给出的代码没有加墙体,如有需要自己添加.         也没有难度设计,同上. 地图大小(这里设计了墙体,代码中未实现) 设置一个整形数组map,其大小为1600,对应着地图的大小为1600,并初始化数组,令数组中的值全为0,0代表空地. 我们通过设定窗口的宽度为80,打印时每个map[i] 所对应的字符占两格位置即可实现每打

随机推荐