【汇编语言】贪吃蛇游戏(一)
最近刚学完汇编,于是准备做个小游戏练练手。就瞅准了最最最老生常谈的贪吃蛇。
首先贪吃蛇必须是用户让蛇改变方向,蛇就得改变方向,吃到东西蛇会变长。
但我们不太可能一次性就做出来这么多功能。
先从简单的开始做。做一个小点点,让这个小点点可以被用户控制着改变方向。不会变长,而不会死。先从最简单的开始。
代码如下:
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(& ...
最新文章
- hdu 2552 三足鼎立 关于tan的数论
- 详解spark任务提交至yarn的集群和客户端模式
- git: command not found
- 感知算法论文(十):Towards Universal Object Detection by Domain Attention(2019)
- login aspx实现登陆功能 400电话
- gradle kotlin_我对Gradle Kotlin DSL的第一印象
- 这几年养成的几个比较好的工作习惯
- 在测试中发现错误,不要着急去改,静下心来,想一想错误的关联性( 错误展开确认 )。
- IOS 在终端( Terminal )开发
- timimg学习数据删了_如何评价Timing这个督促人学习的软件?
- win10解决已禁用输入法和隐藏中文简体美式键盘
- 用html计算长方形的面积公式,长方形面积公式是什么
- VBS 对IBM Notes的常规操作
- 深度沉浸能力的锻炼方法
- idb 怎么回复mysql_mysql中的.idb文件 怎么正常显示
- H5微信公众号关闭页面
- 构建技术影响力 5.0
- 电脑桌面壁纸更换后不一会就变成黑屏
- 债券的到期收益率、即期收益率、远期收益率及远期利率的推导
- 步进电机控制相关波形记录