数字式秒表汇编程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字式秒表汇编程序

inttype equ 08h;设置中断类型码 p8253ctrl equ 43h;8253的控制口 p8253cto equ 40h;8253的数据口 p8255ctl equ 0e803h;8255的控制口 rowport equ 0e801h colport equ 0e802h segport equ 0e800h ;段选 bitport equ 0e801h ;位选 cnto equ 11930 ;用来计算频率 .model small .data ;数据段 str db 36 dup (?) ;定义一个数组用来存放前八个成绩 flag db 0 ;定义标志位 mc db 1 ;定义名次 num db 1 point dw str ;定义指针 point2 dw str ;定义指针 count db 0 ;用来计时,初始化为0 buff db 0,0,0,0 ;初始化数据缓冲区 buff2 db 0,0,0,0 ;初始化数据缓冲区 bit db 1 ;位码置1 mess db 0-开始比赛 1-记录成绩 2-显示成绩 3-退出返回DOS 4-比赛结束 5-暂停计时:,0dh,0ah,$ dseg db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h;数据‘0’~‘9’ asctab db 0123456789ABCDEF .code ;代码段 .startup ;开始 mov ah,9 lea dx,mess int 21h mov al,36h;写8253的方式字 mov dx,p8253ctrl out dx,al mov ax,cnto ; mov dx,p8253cto;写初值 out dx,al mov al,ah out dx,al mov al,81h ;8255初始化 mov dx,p8255ctl out dx,al mov al,inttype ;DOS调用,读取中断向量 mov ah,35h int 21h push es ;将es,bx,ds入栈保护 push bx push ds mov ax,@data mov es,ax mov dx,offset intp ;取intp的偏移量 mov ax,seg intp ;取intp的段地址 mov ds,ax mov al,inttype ;设置inttpye的新中断向量 mov ah,25h int 21h pop ds ;将ds出栈 in al,21h ;CPU开中断(开IR0) and al,0feh out 21h,al sti ab: call button cmp al,3 ;如果为F,则退出 jz fp cmp al,1 ;如果为1,且标志位D0位为1,D2为1,则可保存成绩 jz mp cmp al,2 jz pp cmp al,4 ;比赛结束,即可以重新开始比赛 jz ap cmp al,5 ;暂停计时 jz pap cmp al,0 jnz ab OR flag,05h ;如果按键为B,则置标志位最后一位为1 jmp ab mp: ;存储的代码 test flag,04h ;先判断是否还能存储,不能则跳到ab,否则继续 jz ab mov al,mc ;将第一位的名次先放到buff,然后一起放入数组 mov buff,al lea si,buff mov di,point mov cx,4 cld rep movsw cmp mc,8 ;如果名次到了8个,则将标志位置零,然后就不能存储了。 jz go3 inc mc add point,4 jmp ab go3:and flag,0fah lea bx,str mov point,bx jmp ab pp: and flag,0feh cmp num,9 ;判断是否按过8次,是退出,否则继续 jz ab inc num lea di,buff mov si,point2 mov cx,4 cld rep movsw add point2,4 jmp ab ap: push bx and flag,0 ;对标志和名次及num都进行初始化,以便比赛重新开始 mov mc,1 mov num,1 lea bx,str mov point,bx mov point2,bx mov buff,0 mov buff+1,0 mov buff+2,0 mov buff+3,0 pop bx jmp ab pap: and flag,0feh jmp ab

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档