• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 汇编源代码之一个有趣的打字游戏

汇编源代码之一个有趣的打字游戏

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了汇编语言源程序代码,汇编语言源代码,汇编源代码,java打字游戏源代码,打字游戏源代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div> ;--------------------------------------------------------------------------------
;此模板是纯DOS程序代码,需要MASM5.0,编译时请使用"编译 -> DOS"方式。
;--------------------------------------------------------------------------------
Init_game macro op1,op2,op3,op4,op5,op6
  mov cx,00h
mov dh,op1
mov dl,op2
op6:
mov ah,02h
mov bh,00h
int 10h
  push cx
mov ah,0ah
mov al,op3
mov bh,00h
mov cx,01h
int 10h
pop cx
  inc cx
inc op4
cmp cx,op5
jne op6
  endm
  clear_screen macro op1,op2,op3,op4
mov ah,06h
mov al,00h
mov bh,07h
mov ch,op1
mov cl,op2
mov dh,op3
mov dl,op4
int 10h
  mov ah,02h
mov bh,00h
mov dh,00h
mov dl,00h
int 10h
endm
menu macro op1,op2,op3
mov ah,02h
mov bh,00h
mov dh,op1
mov dl,op2
int 10h
  mov ah,09h
lea dx,op3
int 21h
endm
data segment
  linjiang db "Made by lin jiang$"
no db "NO.:021411$"
meg db "Let us have a game!!Come on!!$"
meg1 db "**Select Menu**$"
meg2 db "Please select the game speed,ESC to quit.$"
meg3 db "1.Very slow Too easy,speed up!$"
meg4 db "2.Slow Everybody can deal.$"
meg5 db "3.Nomal I think you can deal!$"
meg6 db "4.Fast A challenge.Pay attention!$"
meg7 db "5.Very Fast Too hard,Have a try?$"
meg8 db "6.Fastest Are you crazy??$"
meg9 db "*Select the number among 1-6 and press ENTER to start!*$"
meg10 db "Game Speed Select:$"
  hotkey db "When you are playing games:$"
hotkey1 db "ESC to return to menu$"
hotkey2 db "SPACE to pause the game$"
hotkey3 db "Press any key to play games......$"
hotkey4 db "Are you ready??$"
  failmeg db "The letter is arrive the bottom, You are lost ! :($"
failmeg0 db "Press ENTER to go on......$"
failmeg1 db "Game is over!$"
failmeg2 db "Press ENTER to return menu and press ESC to exit!$"
failmeg3 db "Bye-Bye!Thank for your playing!!$"
failmeg4 db "Press any key to quit......$"
  speed dw 00d,1200d,800d,600d,400d,200d,100d
letters db "jwmilzoeucgpravskntxhdyqfb"
db "iytpkwnxlsvxrmofzhgaebudjq"
db "nwimzoexrphysfqtvdcgljukda"
  letters_bak db "jwmilzoeucgpravskntxhdyqfb"
db "iytpkwnxlsvxrmofzhgaebudjq"
db "nwimzoexrphysfqtvdcgljukda"
  letter_counter db 0
life_flag db 78 dup(0)
  position_flag db 78 dup(0)
present_position db 1
  data ends
  stack segment para stack 'stack'
db 64 dup(0)
stack ends
  code segment
main proc far
assume cs:code,ds:data,ss:stack
start:
  mov ax,data
mov ds,ax
  mov letter_counter,00h
mov present_position,1
  lea si,position_flag
  mov ah,00h
mov cx,00h
  init_postion_flag:
mov [si],ah
inc si
inc cx
cmp cx,78d
jne init_postion_flag
  lea di,letters
lea si,letters_bak
mov cx,00h
init_letters:
mov ah,[si]
mov [di],ah
inc si
inc di
inc cx
cmp cx,78d
jne init_letters
mov ah,00h
lea si,life_flag
mov cx,00h
init_life_flag:
mov [si],ah
inc si
inc cx
cmp cx,78d
jne init_life_flag
mov cx,00h
mov ah,01h
or ch,00010000b
int 10h
  clear_screen 00d,00d,24d,79d
  Init_game 00d,00d,0ah,dl,80d,nextsign1
  Init_game 24d,00d,0ah,dl,80d,nextsign2
  Init_game 00d,00d,0ah,dh,25d,nextsign3
  Init_game 00d,79d,0ah,dh,25d,nextsign4
menu 01d,15d,meg ;菜单信息的宏展开
menu 01h,61d,linjiang
menu 03d,20d,meg1
menu 03d,68d,no
menu 05d,15d,meg2
menu 07d,15d,meg3
menu 09d,15d,meg4
menu 11d,15d,meg5
menu 13d,15d,meg6
menu 15d,15d,meg7
menu 17d,15d,meg8
menu 19d,15d,meg9
menu 22d,15d,meg10
  input: mov ah,02h
mov bh,00h
mov dh,22d
mov dl,33d
int 10h
  mov ah,0ah
mov al," "
mov bh,00h
mov cx,01h
int 10h
  mov ah,01h
int 21h
retry: cmp al,"1"
je speed1
cmp al,"2"
je speed2
cmp al,"3"
je speed3
cmp al,"4"
je speed4
cmp al,"5"
je speed5
cmp al,"6"
je speed6
cmp al,1bh
je to_over0
jmp input
  to_over0:jmp over
speed1: mov ah,01h
int 21h
cmp al,0dh
jne otherkey
mov ax,speed+2
mov speed,ax
jmp begin
  speed2: mov ah,01h
int 21h
cmp al,0dh
jne otherkey
mov ax,speed+4
mov speed,ax
jmp begin
  speed3: mov ah,01h
int 21h
cmp al,0dh
jne otherkey
mov ax,speed+6
mov speed,ax
jmp begin
  speed4: mov ah,01h
int 21h
cmp al,0dh
jne otherkey
mov ax,speed+8
mov speed,ax
jmp begin
  speed5: mov ah,01h
int 21h
cmp al,0dh
jne otherkey
mov ax,speed+10
mov speed,ax
jmp begin
  speed6: mov ah,01h
int 21h
cmp al,0dh
jne otherkey
mov ax,speed+12
mov speed,ax
jmp begin
  otherkey: ; 处理重复输入的代码段
  push ax
mov ah,02h
mov bh,00h
mov dh,22d
mov dl,34d
int 10h
  mov ah,0ah
mov al," "
mov bh,00h
mov cx,01h
int 10h
  mov ah,02h
mov bh,00h
mov dh,22d
mov dl,33d
int 10h
pop ax
  mov dx,ax
mov ah,02h
int 21h
  jmp retry
  begin:
  clear_screen 01d,01d,23d,78d
  menu 08d,20d,hotkey
menu 10d,20d,hotkey1
menu 12d,20d,hotkey2
menu 14d,20d,hotkey4
menu 16d,20d,hotkey3
  mov ah,07h
int 21h
  clear_screen 01d,01d,23d,78d
Init_game 23d,01d,01h,dl,78d,nextsign5
  mov ah,02h ;光标初始化
mov bh,00h
mov dh,01h
mov dl,01h
int 10h
  mov cx,00h
lea si,letters
nextletter: ; 初始化屏幕上方的字母
mov ah,02h
mov dl,[si]
int 21h
  inc si
inc cx
cmp cx,78d
je nextcycle
jmp nextletter
from_front: ; 相关循环的算法
sub present_position,78d
jmp gobackto_si
  find_zero:cmp letter_counter,78d
je recycle
  cmp present_position,78d
je from_one
  mov ah,00h
nextsi: add present_position,01h
inc si
cmp [si],ah
je gobackto_di
  cmp present_position,78d
je from_one
  jmp nextsi
  from_one:mov present_position,01h
  jmp gobackto_si
  recycle:mov letter_counter,00h
mov present_position,01d
lea si,position_flag
mov cx,00h
  mov ah,00h
clearsi: mov [si],ah
inc cx
cmp cx,78d
je nextcycle
inc si
jmp clearsi
  nextcycle:
lea di,letters
lea si,position_flag
add present_position,31d
cmp present_position,78
ja from_front
gobackto_si:
add si,word ptr present_position
dec si
mov ah,[si]
cmp ah,01h
je find_zero
gobackto_di:
mov ah,01h
mov [si],ah
add di,word ptr present_position
dec di
mov dl,present_position
  mov ah,02h ; 字母下落的代码段部分
mov bh,00h
mov dh,01h
int 10h
  mov cx,00h
nextrow:push cx ; 新的一行
mov cx,00h
out_cycle: ; 延迟
push cx
mov cx,00h
in_cycle:
add cx,01h
cmp cx,50000d
jne in_cycle
  push dx
mov ah,06h
mov dl,0ffh
int 21h
pop dx
  jz pass ; 如果键盘缓冲区部分为空,则跳转
cmp al,1bh ; 如果键入ESC,则返回主菜单
je to_start1
  cmp al," " ;如果键入SPACE,则游戏暂停
je pause
  cmp al,[di] ;输入字母正确!跳转!
je disappear
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 汇编源代码之一个有趣的打字游戏
  • 汇编源代码之获得操作系统版本
  • 汇编源代码之简单密码输入
  • (汇编源代码 )获取当前系统时间
  • (汇编源代码 )简单的取系统时间小程序

相关文章

  • 2017-06-28汇编源码系列之clean
  • 2017-06-28汇编源代码之一个旋转的3D箱子(动画)
  • 2017-06-17循环程序的结构形式及组成
  • 2017-06-1780x86寻址方式
  • 2017-06-28汇编源码系列之cobload
  • 2017-06-17汇编程序功能
  • 2017-06-28利用驱动程序读取硬盘序列号的汇编程序
  • 2017-06-28用MASM32编程获取并显示WinRAR的路径
  • 2017-06-28汇编源码系列之ctrladel
  • 2017-06-28汇编源代码之一个有趣的打字游戏

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 列表视图控件介绍
    • 汇编源代码之GET TIME OF DAY(获取时间)
    • (汇编源代码 )侦测CPU型号
    • 循环指令
    • 汇编数据转换操作小技巧
    • 汇编语言技术指标
    • 汇编教程之超类化
    • 汇编语言套装软件制作(2)
    • 循环程序的设计
    • 汇编源代码之图形显示方式屏幕的保存和恢复

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有