【汇编语言】贪吃蛇游戏(一)
最近刚学完汇编,于是准备做个小游戏练练手。就瞅准了最最最老生常谈的贪吃蛇。
首先贪吃蛇必须是用户让蛇改变方向,蛇就得改变方向,吃到东西蛇会变长。
但我们不太可能一次性就做出来这么多功能。
先从简单的开始做。做一个小点点,让这个小点点可以被用户控制着改变方向。不会变长,而不会死。先从最简单的开始。
代码如下:
assume cs : code, ds : data, ss : stackdata segmentpos dw 0, 0dire dw 0, 2
data endsstack segmentdb 256 dup(0)
stack endscode segmentstart:mov ax, datamov ds, axmov ax, stackmov ss, axmov sp, 256mov ax, 0b800Hmov es, axcall inits0:mov ah, 0int 16Hcmp al, 'w'je wcmp al, 'a'je acmp al, 's'je scmp al, 'd'je dcmp al, 'q'je e0jmp movew:mov dire[0], -160mov dire[2], 0jmp movea:mov dire[0], 0mov dire[2], -2jmp moves:mov dire[0], 160mov dire[2], 0jmp moved:mov dire[0], 0mov dire[2], 2jmp movemove:mov ax, pos[0]add ax, dire[0]mov pos[0], axmov ax, pos[2]add ax, dire[2]mov pos[2], axmov word ptr es : [bx + di], 0001000000000000Bmov bx, pos[0]mov di, pos[2]mov word ptr es : [bx + di], 0000000000000000Bjmp s0e0:mov ax, 4c00H
int 21Hinit:push bxpush espush cxmov cx, 2000mov bx, 0s1:mov word ptr es : [bx], 0001000000000000Badd bx, 2loop s1pop cxpop espop bxretcode endsend start
运行成功了吗?没有。。。
贪吃蛇应该是用户不操作蛇都能移动,用户的操作只能改变蛇的移动方向。
但是我做出的这个却是用户控制移动,键盘不按,那蛇就是静止不动的。
究其原因是我用的是16号中断,是阻塞式等待的,想要修这个bug就应该重新安装9号中断来修。
【汇编语言】贪吃蛇游戏(一)相关推荐
- IA32汇编语言 —— 贪吃蛇游戏
这里分享一下我的汇编语言课程设计,贪吃蛇游戏 程序使用的资源不超过8086,可以用nasm编译成.com文件,运行在DOSBox环境中 效果演示 文章目录 一.简介 1. 游戏规则 2. 段寄存器安排 ...
- 【汇编语言】贪吃蛇游戏(二)
距离上一次做这个都有一周了,可见我平常是真的忙到没时间做. 废话就不多说了,之前那个贪吃蛇([汇编语言]贪吃蛇游戏(一))使用的是阻塞式的16号中断.所以产生的现象就是,按键盘蛇才走,不按键盘 ...
- 基于单片机的贪吃蛇游戏
绪论 1.1 研究背景与意义 随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界. 人们不再拘泥于--,J,块天地,加班,出差成了现代人不可避免的公务.而此时一款可以 随时随地娱乐 ...
- 汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(三)——俄罗斯方块详细设计
详细设计: 3.俄罗斯方块详细设计:下图所示,左下角为主程序的调用情况,左边上侧和右侧为俄罗斯方块相关数据在teris段中的存储情况 下图所示,左侧为俄罗斯方块具体子程序,右侧为俄罗斯方块程序运行流程 ...
- 汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(一)——整体系统设计
题目要求: 1.系统划分:将显示器的屏幕划分成大小相等的左右两个显示窗口,并画出每个显示窗口的边框,窗口大小适中.若左窗口贪吃蛇游戏正在进行时,切换到右窗口执行俄罗斯方块,则贪吃蛇游戏暂停,以后每按一 ...
- 汇编语言 贪吃蛇+画等边三角形
学校强制要求参加汇编语言程序设计大赛 要求实现 贪吃蛇+画等边三角形 双任务系统. 详见ppt和报告--------->>>>>下载点这里 一.比赛要求: 1.双窗口要求 ...
- 汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(二)——贪吃蛇详细设计
详细设计: 2.贪吃蛇详细设计: 如下图所示左下角为主程序对贪吃蛇相关子程序的调用,程序中init_left_window子程序功能为将左侧窗口非边框部分置为空.左边上侧和右侧是贪吃蛇段中,贪吃蛇程序 ...
- Java项目:贪吃蛇游戏(java+swing)
源码获取:博客首页 "资源" 里下载! 功能简介: 贪吃蛇游戏 大嘴鱼洁面类.完成大嘴鱼的界面的绘制: /*** 大嘴鱼洁面类.完成大嘴鱼的界面的绘制.*/ public clas ...
- Python制作当年第一款手机游戏-贪吃蛇游戏(练习)
前言: 文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用来干嘛的. 据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个 ...
- java贪吃蛇不能回头,儿时回忆!泪流满面,Java 实现贪吃蛇游戏的示例(附代码)...
image.png image.png java实现贪吃蛇游戏需要创建一个桌面窗口出来,此时就需要使用java中的swing控件 创建一个新窗口 JFrame frame = new JFrame(& ...
最新文章
- 深度 | 解决真实世界问题:如何在不平衡类上使用机器学习?
- ****** 三十五 ******、软设笔记【网络基础】-安全性、可靠性与系统性能评测-数据安全与保密...
- Python__封装
- 官方文档翻译-ESP32-SPI Flash
- 华为服务器忘记管理密码怎么修改,忘记云服务器密码怎么修改
- x264源代码简单分析:x264_slice_write()
- HAOI2018 简要题解
- 在centos7中安装flutter,执行flutter --version时显示flutter的版本为v0.0.0 unknown
- python aes加密每次密码不一样_记AES加密在linux系统每次都不一样的问题
- 2022 基于SpringBoot/SSM的数据库查询平台
- 快逸报表整合至MyEclipse项目中
- 格雷码转十进制 c语言,格雷码的转换方法
- 使用arecord、aplay命令实现音频的采集和播放
- [实用技巧]如何关闭VS中烦人的reference提示
- java实现两个实体类共有字段合二为一
- Linux crontab 定时执行任务
- 什么是等保?等保流程又具体包含哪些内容呢?
- 老字号“张小泉”上线小程序与酷客多达成战略合作!
- 干货 | 超级全面的电容知识
- 内网渗透之CFS三层靶场渗透