汇编语言仿俄罗斯方块小游戏源代码简要分析
汇编语言仿俄罗斯方块小游戏源代码简要分析一个四个文件。
game.h 定义了以下常量和数据结构
游戏状态,最高可达到的关数,游戏区域位置相关常量,功能键扫描码,颜色常量,屏幕上各说明文字或装饰物的坐标常量,相应键所对应的相应功能入口地址的偏移。
坐标结构,多个方块组成的基本元素。
(注意 相应键所对应的相应功能入口地址的偏移 此一常量定义为高级语言编写程序所无)
game.asm
主要的子程序在此。
设置块坐标的宏;
游戏循环-不断获取输入并根据定义规则转化为输出;
游戏初始化;
初始化随机序列的第一个数;
初始化得分,游戏状态,游戏地图等;
全局初始化,设置DS,ES指向同一个数据段;
判断游戏区域位置是否为空;
判断游戏是否结束;
游戏结束后,显示一些信息,等待用户指示重玩或退出;
随机画形状;
游戏暂停时显示提示信息;
等待直到有键被按下;
方块下落停止时,设置当前下落方块所占用的地图位置,并消除满行;
若map数组相应为置位,则在相应位置显示一个方块;
检查是否有满行,满则消除,并增加得分;
根据得分计算当前关数;
显示当前关;
显示当前得分;
显示下一个将要下落的方块;
根据当前下落的方块所在位置设置游戏区域所代表的map数组;
接受用户输入,并转化为内部数据;
判断方块下一步是否能继续;
方块不能继续下落转到此,判断游戏结束,检查满行,产生新块等;
方块旋转;
方块水平翻转;
随机生成下一个方块;
根据当前关数,选择下一个方块类型;
显示当前正下落的方块;
清除当前下落方块;
画游戏区域边框;
显示版本信息;
设置输出位置为(dl,dh);
在当前位置输出字符al;
延时;
用线性同余法得到一个随机数;
数据段;
堆栈;
entry.asm
游戏主程序
第四个文件:用于编译的makefile。