ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:82.94KB ,
资源ID:18727309      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18727309.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编打字练习1Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编打字练习1Word文档下载推荐.docx

1、接着定义我们的数据段代码。在数据段中,有我们菜单中所需要显示的提示信息,还有要显示在界面上方的字母乱序,以及给显示字母乱序所留出的数据空间。接下来就是定义堆栈段代码,为各段留下空间。再下来就是最重要的代码段,因为所有的功能都是在代码段中实现的。代码段中先实现显示主菜单、按Enter键开始程序和按E退出这几项简单的功能。接着实现显示字母乱序的功能,主要思想是将字母乱序放到之前定义的寄存器中。然后实现接受键盘所输入的内容的功能。如果输入的是Esc,则返回主菜单;如果输入的是Space,程序就暂停;如果是正确的字母,改字母就消失。消失的思想就是在当前字母位置输入空格,然后光标放到下一个下落的字母的位

2、置。11.1 原“typetest.asm”程序结构打字练习程序的主要流程如图所示。11.2 已经实现的功能(修改的、新编写的)程序结构设置输入界面, 用户输入密码后才能进入主菜单 ;id db 1,1,2,3,5,8inf db ?string db 0ah,0dh,Please enter the password(*):$string1 db 0ah,0dh,The password is wrong ,please enter the password again: lea dx,stringmov ah,09hint 21htwo:mov cx,6lea si,idagain:mov

3、 ah,01hand al,0fhcmp al,sijnz oneinc siinc bxloop againjmp exit1one:lea dx,string1jmp two修改主菜单, 在主菜单上显示当天日期 ;mov cx,6 mov bx,0 mov ah,0 mov al,9 s:push cx push ax out 70h,al in al,71h mov ah,al mov cl,4 shr ah,cl and al,00001111b add ah,30h add al,30h mov byte ptr ds:bx,ah bx+1,al pop ax cmp al,4 jn

4、a s1 jmp short s2 s1:dec al s2:cmp al,7 jne ok sub al,2 ok:add bx,3 pop cx loop s mov dx,0 mov ah,9 修改主菜单, 增加可供用户选择难度级别的选项。mes11 db Hit:mes12 db Right:mes13 db Score:mov ah, 01h cmp al, 1 je next12je next23je next3jmp keyin1next1:mov bx,9999hmov speed,bxjmp nextnext2:mov bx,5000hnext3: mov bx,2000hn

5、ext:修改程序, 在屏幕右上角显示用户得分、已输入字母数、正确数。score_display proc Init_place 00d, 65d int 10h lea dx,mes12 mov ax,score call writedec Init_place 00d, 43d lea dx,mes13 retscore_display endphit_display proc mov ah, 0ah mov al, ;将空格赋值为AL mov bh, 00h mov cx, 01h int 10h mov save,dl mov save+1,dh Init_place 00d, 55d

6、lea dx,mes11 add hit,1 mov ax,hit mov dl,save mov dh,save+1hit_display endp 将程序中的“置光标位置”程序段落用宏调用完成, 添加“置光标位置”宏定义。Init_place macro row, col;置光标位置宏定义mov ah, 02hmov bh, 00hmov dh, rowmov dl, colint 10h endm12 对该“打字练习程序”的进一步设想12.1 设置限定出错次数,到达该出错次数,游戏停止wrong db 30mes9 db Game Over!dec wrong cmp wrong,0 j

7、ne pass jmp overover: clear_screen 01d, 01d, 23d, 78d ; 清屏 menu 03d, 33d, mes9 mov ax, 4c00h ;退出程序13 课程设计总结设计体会刚拿到这个题目觉得特别难,感觉无从下手。汇编语言不同于高级语言,对于高级语言,我们心中可以有一个非常清晰的思路,在实现功能的时候非常得心应手。但汇编语言不同,它是面向机器的语言。用它编写程序时的思路应该按照机器执行程序的思路来编写,所以这个挑战对我来说非常大。在编写程序之前,首先要摒弃高级语言思路的干扰。在做准备工作的时候,我从网上找到了相关的代码,照着别人的步骤感受汇编语言

8、编写程序的思路。很多地方都不是太明白,但是通过查询课本以及上网找相关资料,还是把一些内容理解了。在编写的时候,我也是按照别人的思路,一步一步进行。很多地方看似简单,但是等到自己亲自实践的时候就编的很复杂。汇编语言的前后联系非常紧密,如果要改一点东西的话整个程序的很多地方都要重新做,可以说是牵一发而动全身。所以在编写的时候要很仔细,要记住前面已经实现了那些功能,还有那些功能要实现,这些必须记好,否则程序会出错。通过这次课程设计,我了解了汇编语言编写程序的步骤:先确定程序要实现的功能,接着定义需要的寄存器、存储器,如果需要的话还要画出流程图。然后逐个模块实现其功能。如果将模块分好了,再去实现它的功

9、能就不是那么复杂了。此次的课程设计,提高了我阅读和分析程序的能力。因为刚一拿到目标代码时,有太多的不明白,必须一行一行地分析其目的和功能。而时间又比较紧迫,所以我在比较短的时间里分析出了代码的道理。在这个过程中我的分析与模仿能力得到了提高。系统改进 本系统可以改进的地方有很多。首先我做的界面不够华丽,显得很单调。其次,字母下落的速度太单一,如果能随着玩的时间增加再加快就更好了。而且计分系统没把字母输入时间也计算在内。难度选择时候没有输入其它字符时的处理如果能加上这些功能的话那么程序的可用性以及完整性就有能上一台阶。14 软件使用说明登入密码:11235815 附录(参考文献,原代码:)1 李敬

10、兆 8086/8088和arm核汇编语言程序设计 中国科技大学出版社2 沈美明,温冬婵 编著IBMPC汇编语言程序设计(第二版) 清华大学出版社出版3 罗云彬 Windows环境下32位汇编语言程序设计 电子工业出版社4【美】Kip R.Irvine 著,温玉杰 等译Intel 汇编语言程序设计(第四版) 电子工业出版社5 吕晓庆 80386/80486系统编程实践 淅江大学出版社6 袁可风 汇编语言程序设计 江西高校出版社7 戴水贵 Windows汇编语言程序设计教程 清华大学出版社8 罗杰 INTEL86系列汇编语言程序设计 江西科学技术出版社原代码; Assembly program f

11、or test your type skills Writed by in 06/24/2003 Modified by Mi shuang in 06/06/2005 -Init_boarder macro row, col, char, dhdl, count;设置边框Local llmov cx, count ll: mov ah, 02hint 10hpush cxmov ah, 0ahmov al, charmov cx, 01hpop cxinc dhdlloop ll -clear_screen macro top, left, bottom, right; 清屏宏定义mov a

12、h, 06h mov al, 00hmov bh, 07hmov ch, topmov cl, leftmov dh, bottommov dl, rightmov dh, 00hmov dl, 00h -menu macro row, col, text; 菜单显示宏定义 mov bh, 00h mov dh, row mov dl, col int 10h mov ah, 09h lea dx, text int 21h =include ylib.hData segment db 00/00/00 00:00:00,$ZK db WELCOME TO PLAY$date db date:

13、mes0 db Press Enter key to continue.$mes1 db When a letter is dropping,please hit it!mes2 db Press space key to pause!mes3 db Press ESC key to return main interface!mes4 db Press letter E to exit!mes5 db Please choose the difficulty:mes6 db No.1 easy$mes7 db No.2 normal$mes8 db No.3 hard$mes10 db Yo

14、ur Score is:Speed dw ?Letters db jwmilzoeucgpravskntxhdyqfb db iytpkwnxlsvxrmofzhgaebudjqnwimzoexrphysfqtvdcgljukdaPresent_position db 1db 0score dw 0hit dw 0right dw 0save db ?Data ends =code segmentmain proc farassume cs: code, ds: datastart: mov ax, datamov ds, ax mov es, axmov cx, 5000hmov ah, 0

15、1hint 10h ;设置光标类型clear_screen 00d, 00d, 24d, 79d ;清屏 exit1: Init_boarder 00d, 00d, 0ah, dl, 80dInit_boarder 24d, 00d, 0ah, dl, 80dInit_boarder 00d, 00d, 0ah, dh, 25dInit_boarder 00d, 79d, 0ah, dh, 25d ;menu 05d, 15d, ZK ; 显示菜单menu 07d, 15d, dateint 21h menu 09d, 15d, mes0menu 11d, 18d, mes1menu 13d,

16、 18d, mes2menu 15d, 18d, mes3menu 17d, 15d, mes4Init_place 22d,33dkeyin: mov ah, 07h ; 从键盘输入命令字符int 21hcmp al, 0dh je begin 不等就和e做比较je exit ;如果相等则转exit jmp keyin ;不等跳转到keyinexit: mov ax, 4c00h ;begin:clear_screen 00d, 00d, 24d, 79d ; 清屏 menu 00d, 43d, mes13 menu 00d, 55d, mes11 menu 00d, 65d, mes12m

17、enu 05d, 15d, mes5 ;menu 11d, 18d, mes6menu 13d, 18d, mes7menu 15d, 18d, mes8keyin1:clear_screen 01d, 01d, 23d, 78d ;Init_boarder 23d, 01d, 01h, dl, 78d ; 设置边框Init_place 01h,01hmov cx, 78 lea si, lettersnextletter:mov ah, 02h ; 显示字母mov dl, si int 21hinc siloop nextletterstart_game: mov ah, 2ch int 2

18、1h ;调取系统时间chcldh分别存放时分秒 inc dl ;自增 cmp dl, 78 jna sg1 sub dl, 78sg1: mov present_position, dl lea di, letters add di, word ptr present_position ;将当前列数赋给di dec di ;自减 mov dl, present_position ;将当前列数赋给dl mov ah, 02h mov dh, 01h int 10h ; mov cx, 21d ;设置循环次数nextrow: push cx mov cx,speed ;设置字母下降速度wait_for_key: ; 延迟 push cx mov cx,1000 delay: loop delay push dx mov ah, 06h ; 从键盘输入字符 mov dl, 0ffh pop dx jz pass cmp al, 1bh ; 如果键入ESC,则返回主菜单 je to_start cmp al, 如果键入SPACE,则游戏暂停 jne pass0pause: push dx ; 暂停处理 mov ah, 06h将字符和空格作比较 jne pause ;不等则转换至空格 jmp passto_start: jmp exit1pass0: c

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1