汇编程序:这是一个假游戏
来源:互联网 发布:数据库架构师培训 编辑:程序博客网 时间:2024/06/07 15:38
【任务】
编写程序,模仿射击游戏中,用上、下、左、右键控制跳上、跳下、装子弹、射击的动作,ESC键退出游戏。
运行结果如图:
请在下面程序基础上,补全代码段:
assume cs:code, ss:stack, ds: datastack segment db 256 dup (0)stack endsdata segment dw 0,0 run db 'Game is runing...',0dh,0ah,'$' up db 'Jump up...',0dh,0ah,'$' down db 'Jump down...',0dh,0ah,'$' right db 'shoot...',0dh,0ah,'$' left db 'get bullet...',0dh,0ah,'$' over db 'Byebye...',0dh,0ah,'$'data endscode segmentstart:code endsend start
【参考解答】
assume cs:code, ss:stack, ds:datastack segment db 256 dup (0)stack endsdata segment dw 0,0 run db 'Game is runing...',0dh,0ah,'$' up db 'Jump up...',0dh,0ah,'$' down db 'Jump down...',0dh,0ah,'$' right db 'shoot...',0dh,0ah,'$' left db 'get bullet...',0dh,0ah,'$' over db 'Byebye...',0dh,0ah,'$'data endscode segmentstart: mov ax,stack mov ss,ax mov sp,256 mov ax,data mov ds,ax ; 改中断例程入口地址 mov ax,0 mov es,ax push es:[9*4] pop ds:[0] push es:[9*4+2] pop ds:[2] mov word ptr es:[9*4],offset int9 mov es:[9*4+2],cs ; 游戏运行中play: lea dx, run mov ah,9 int 21h call delay jmp play ; 延时delay:push ax push dx mov dx,10h mov ax,0 s1:sub ax,1 sbb dx,0 cmp ax,0 jne s1 cmp dx,0 jne s1 pop dx pop ax ret ; 定义中断例程int9: push ax push bx push dx push es in al,60h pushf pushf pop bx and bh,11111100b push bx popf call dword ptr ds:[0] cup:cmp al,48h ; 48h是UP键的扫描码 jne cdown lea dx, up jmp showcdown:cmp al,50h ; 50h是down键的扫描码 jne cright lea dx, down jmp showcright:cmp al,4Dh ; 4Dh是UP键的扫描码 jne cleft lea dx, right jmp showcleft:cmp al,4Bh ; 4Bh是left键的扫描码 jne cesc lea dx, left show:mov ah,9 int 21h jmp int9ret cesc:cmp al, 01h ;01h是esc键的扫描码 jne int9ret ;处理END,使程序结束,注意在此要恢复中断向量 lea dx, over mov ah,9 int 21h mov ax,0 mov es,ax push ds:[0] pop es:[9*4] push ds:[2] pop es:[9*4+2] mov ax,4c00h int 21hint9ret:pop es pop dx pop bx pop ax iretcode endsend start
阅读全文
2 0
- 汇编程序:这是一个假游戏
- 一个简单的汇编程序
- 关于输入一个字符,判断其是否是数字的汇编程序
- 这不会是一个非常好的游戏
- 汇编程序
- 汇编程序
- 汇编程序
- 写ARM汇编程序的一个注意事项
- 一个简单的汇编程序(hello world )
- 一个操作系统启动区的汇编程序
- 汇编程序:输入一个数并显示出现
- 一个简单的C语言的汇编程序
- 游戏中常用的Animation类,这是一个较完美的实现
- 如果这是一个游戏画面,我相信会给人一种感动
- 拉丁猪文字游戏——这是一个英语语言游戏。
- 火柴游戏 这是一个纵横火柴棒游戏。如图[1.jpg],在3x4的格子中,游戏的双方轮流放置火柴棒。
- Orz是一个基于Ogre思想的游戏开发架构
- 一个简单MIDI音乐游戏 用的是HGE引擎
- 【数据库】Redis学习
- LeetCode 371. Sum of Two Integers
- 计算机组成原理考试大纲
- ARM笔记2
- 一个web请求的艰辛历程
- 汇编程序:这是一个假游戏
- 深入理解盒子模型——CSS之BFC详解
- Centos7环境安装下安装Apache+php7+mysql详细步骤
- Java内存管理机制详解
- 归并排序
- Ubuntu快捷操作
- 操作系统考试大纲
- 《30天自制操作系统》跳出工具限制! 之 img硬盘映像制作
- Redis的AOF功能