ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:17.59KB ,
资源ID:9456344      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(微机原理大作业计时系统.docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

微机原理大作业计时系统.docx

1、data segment ;定义数据段 buff1 db 0 ; buff2 db 0 ;用来判断笑脸模式的输出方式 buff3 db 0 ; line1 db 2,2,1,1,1,1,'$' line2 db 1,1,2,2,1,1,'$' ; line3 db 1,1,1,1,2,2,'$' ;笑脸内容3 line4 db 3,3,6,6,6,6,'$' ;黑红桃1 line5 db 6,6,3,3,6,6,'$' ;

2、黑红桃2 line6 db 6,6,6,6,3,3,'$' ;黑红桃3 str1 db 'Today is:<' ;输出日期前的提示字符串 str2 db 2 dup(0),'/' ;存放月份 str3 db 2 dup(0),'/' ;存放日期 str4 db 4 dup(0),'>$' ;存放年份 str5 db 2 dup(0),':' ;存放小时 str6 db 2 dup(0),':' ;存放分钟 str7 db 2 dup(0),'$' ;存放秒钟 str8 db 'Now

3、 the time is:$' ;输出时间前的提示字符串 month db 0 ;当前月的缓存区域 day db 0 ;当前日的缓存区域 year dw 0 ;当前年的缓存区域 hour db 0 ;当前小时的缓存区域 hour2 db 0 ;刚开始计时时所提取的小时信息(固定) hour3 db 0 ;缓存当前小时与固定小时之间的差值,即缓存hour-hour2的值 minute

4、 db 0 ;当前分钟的缓存区域 minute2 db 0 ;刚开始计时时所提取的分钟信息(固定) minute3 db 0 ;缓存当前分钟与固定分钟之间的差值,即缓存minute-minute2的值 second db 0 ;当前秒钟的缓存区域 second2 db 0 ;刚开始计时时所提取的秒钟信息(固定) second3 db 0 ;缓存当前秒钟与固定秒钟之间的差值,即缓存second-second2的值 t

5、ime db '00:00:00$' ;计时信息的ASCII格式的字符串存放空间 sen1 db 'Press S to Start $' ;需要输出的提示信息 sen2 db 'Press R to Restart$' ;需要输出的提示信息 sen3 db 'Press C to Close $' ;需要输出的提示信息 sen4 db '07503$' ;需要输出的提示信息 sen5 db '071508$' ;需要输出的提示信息 sen6 db 'Shen

6、Xun$' ;需要输出的提示信息 sen7 db 'Press E to Exit $' ;需要输出的提示信息 sen9 db '********Enjoy Every Minute*****From Zero To Hero********$' ;需要输出的提示信息 tank db ' |',0ah,0dh db ' __\--

7、',0ah,0dh db ' [/ ',04,04,'02 ___|',0ah,0dh db ' _____\______|/-----.',0ah,0dh db ' /____________________| ',0ah,0dh db ' / ',0ah,0

8、dh db ' ~~~~~~~~~~~~~~~~~ ',0ah,0dh db ' -<-<-<@',0ah,0dh db ' -<-<@--<-<-<@--<-<-<@',0ah,0dh,0ah,0dh db ' Power of Tank VS Beauty of Flower!!!','$' ;待输出的坦克及一些其他信息

9、 frame1 db 14,26 dup(0),14,'$' ; frame2 db 14,26 dup(0),14,'$' ; frame3 db 14,26 dup(0),14,'$' ;待 data ends stack segment stap1 db 100h dup(0) stack ends code segment public assume cs:code,ds:data,ss:stack start: mov ax,data

10、 mov ds,ax ;将data的段基址赋给ds mov ax,stack mov ss,ax ;将code的段基址赋给ss jmp begin ;跳转到begin clear macro x,y,z,w,t,s ;清屏宏:向上滚屏 mov al,t ;t为滚动行数 mov ch,x ;x左上角行坐

11、标 mov cl,y ;y左上角列坐标 mov dh,z ;z右下角行坐标 mov dl,w ;w右下角列坐标 mov bh,s ;s为颜色设置 mov ah,6h int 10h endm gettime macro ;定义取时间的宏 mov ah,2ch int 21h endm getdate

12、macro ;定义取日期的宏 mov ah,2ah int 21h endm disp macro x ;显示字符串的宏 mov dx,offset x mov ah,09h int 21h endm point macro x,y ;光标位置置于x行,y列的宏 mov dh,x mov dl,y mov bh,0 m

13、ov ah,02h int 10h endm num2asc proc ;asc码转换 cmp ax,10 ; jl next1 mov di,10 next: xor dx,dx div di add dx,'0' dec bx mov [bx],dl or ax,ax jnz next jmp exit next1: add al,30h

14、dec bx mov [bx],al mov al,'0' dec bx mov [bx],al exit: ret num2asc endp transf macro x,y ;定义一个把提取到的月,日,时分秒都转换成asc数字并且赋给各自数组的宏 mov bx,offset x ;得到末尾地址,是指针指向最后一个数字区域的后面位置 xor ax,ax ;将ax清零 mov al,byte ptr

15、y ;将y型数据(提取到的数据)放到al当中 call num2asc ;应用num2asc过程来进行数据转换 endm begin: clear 0,0,24,79,0,09h ;全屏清屏,背黑,前蓝高亮 clear 5,26,9,54,5,0ah ;部分屏幕清屏,背黑,前绿高亮 point 6,26 ;调用光标宏,把光标位置设置在6,26(上一步清掉的屏幕内) disp frame1 ;调用显示功能显示frame1 poin

16、t 7,26 ; . disp frame2 ; . point 8,26 ; . disp frame3 ;到此显示完框架 point 3,25 ;把光标位置设置在3,25 disp str8 ; point 1,12 ;把光标位置设置在1,12 disp sen9 ;

17、point 2,30 ;把光标位置设置在2,30 getdate mov byte ptr month,dh ;把月份存入month变量 mov byte ptr day,dl ;把日期存入day变量 mov word ptr year,cx ;把年份存入year变量 mov bx,offset str2+2 ;bx指向str2最后 xor ax,ax ;ax清零 mov al,b

18、yte ptr month ;把month中的数据读入al中 call num2asc ;调用num2sac子程序 mov bx,offset str3+2 ;bx指向str3最后 xor ax,ax ;ax清零 mov al,byte ptr day ;把day中的数据读入al中 call num2asc ;调用num2sac子程序 mov bx,offset str4+4 ;

19、bx指向str4最后 mov ax,word ptr year ;把year中的数据读入al中 call num2asc ;调用num2sac子程序 disp str1 ;显示从str1开始的字符,即显示日期 point 6,30 ;把光标位置设置在6,30 disp sen1 ;显示提示字符 point 7,30 ;把光标位置设置在7,30

20、 disp sen7 ;显示提示字符 begin1: gettime ;取时间 mov byte ptr hour,ch ;把小时存入hour变量 mov byte ptr minute,cl ;把分钟存入minute变量 mov byte ptr second,dh ;把秒钟存入second变量 mov bx,offset str5+2 ;bx指向str5最后

21、xor ax,ax ;ax清零 mov al,byte ptr hour ;把hour中的数据读入al中 call num2asc ;调用num2sac子程序 mov bx,offset str6+2 ;bx指向str6最后 xor ax,ax ;ax清零 mov al,byte ptr minute ;把minute中的数据读入al中 call num2asc

22、 ;调用num2sac子程序 mov bx,offset str7+2 ;bx指向str7最后 mov al,byte ptr second ;把second中的数据读入al中 call num2asc ;调用num2sac子程序 point 3,43 ;把光标位置设置在3,43 disp str5 ;把str5的内容显示出来 point 11,35 ;把光标位置设置在

23、11,35 mov si,offset buff3 ;把buff3的偏移量给si cmp byte ptr [si],01h ;判断当前buff3里面的值是否为1 je color ;是就跳转color cmp byte ptr [si],02h ;判断当前buff3里面的值是否为2 je color1 ;是就跳转color1 cmp byte ptr [si],03h ;判断当前buff3里面的值

24、是否为3 je color20 ;是就跳转color20 cmp byte ptr [si],04h ;判断当前buff3里面的值是否为4 je color30 ;是就跳转color30 clear 11,0,24,79,14,0ch ;清屏,从11行起的下面全部屏幕,背黑前红 disp sen4 ;显示班级 point 12,0 ;把光标位置设置在12,0

25、 disp tank ;显示tank图案 inc buff3 ;buff3自增1 jmp continue color: clear 11,0,24,79,14,0dh ;清屏,从11行起的下面全部屏幕,背黑前绛 disp sen5 ;显示学号 point 12,0 ;把光标位置设置在12,0 disp tank ;显示tank图案

26、 inc buff3 ;buff3自增1 jmp continue color20:jmp color2 ;跳转长度有限,专门设置的中转跳转站 color30:jmp color3 ;跳转长度有限,专门设置的中转跳转站 color1: clear 11,0,24,79,14,0ah ;清屏,从11行起的下面全部屏幕,背黑前绿 disp sen6 ;显示姓名 point 12,0 ;把光标

27、位置设置在12,0 disp tank ;显示tank图案 inc buff3 ;buff3自增1 jmp continue color2: clear 11,0,24,79,14,0fh ;清屏,从11行起的下面全部屏幕,背黑前灰 disp sen6 ;显示姓名 point 12,0 ;把光标位置设置在12,0 disp tank ;显

28、示tank图案 inc buff3 ;buff3自增1 jmp continue color3: clear 11,0,24,79,14,0eh ;清屏,从11行起的下面全部屏幕,背黑前褐 disp sen6 ;显示姓名 point 12,0 ;把光标位置设置在12,0 disp tank ;显示tank图案 mov byte ptr buff3,0h ;buf

29、f3清零 continue:mov si,offset buff1 ;把buff1的偏移量给si cmp byte ptr [si],01 ;判断[si],也就是Buff1里面的数据是否为1 je timing2 ;为1的话继续计时 mov ah,1 ;判断是否有键盘输入的程序 int 16h jnz timing1 ;如果有的话跳转到timing1

30、 mov si,offset buff2 cmp byte ptr [si],0 ;判断buff2的值是否为0 je l3 cmp byte ptr [si],1 ;判断buff2的值是否为1 je l4 point 4,37 disp line6 mov byte ptr [si],0h ;buff2中数据清零 jmp g2 l3: point 4,37 disp line4

31、 inc byte ptr [si] ;buff2自增1 jmp g2 l4: point 4,37 disp line5 inc byte ptr [si] ;buff2自增1 g2: jug1: gettime ;取时间 mov al,byte ptr second ; cmp al,dh ;判断秒有没有变化 je jug1

32、 ;不变化一直循环,直至变化 jmp begin1 ;返回begin1,继续取时间显示 timing1:mov ah,8 ;读取键盘输入的ASCII值到al里面 int 21h cmp al,'e' ;输入的是e,则退出程序 je endi cmp al,'E' ;E也退出程序 je endi

33、 cmp al,'s' ;输入的是s,则开始计时程序 je zero0 cmp al,'S' ;S开始计时 je zero0 jmp begin1 ;如果输入不满足要求程序继续循环 timing2:point 6,30 ;计时程序开始,定光标位置 disp sen2 ;显示提示字符 point 8,30

34、 ; disp sen3 ;显示提示字符 mov si,offset buff2 ;从这一句到l2结束,即273行,意在输出变化的黑红桃 cmp byte ptr [si],0 ;判断buff2的值是否为0 je l1 cmp byte ptr [si],1 ;判断buff2的值是否为1 je l2 point 4,37 disp line3 mov byte ptr

35、 [si],0h jmp g3 l1: point 4,37 disp line1 inc byte ptr [si] jmp g3 endi: jmp ending l2: point 4,37 disp line2 inc byte ptr [si] ;以上输出不在赘述,算法与前面输出变化的笑脸一样 jmp g3 zero0: jmp zero ;中转 g3: mov ah,1

36、 ;判断有没有字符从键盘输入 int 16h jnz g ;有的话跳转到g进行判断 jmp g1 ;没有的话掠过到g1 g: mov ah,8 ;读取键盘输入的ASCII值到al里面 int 21h cmp al,'e' je endin cmp al,'E' je endin cmp al

37、'r' je zero0 cmp al,'R' je zero0 cmp al,'c' je cancel1 cmp al,'C' je cancel1 g1: gettime mov byte ptr hour,ch ;把小时存入hour变量 mov byte ptr minute,cl ;把分钟存入minute变量 mov byte ptr second,dh ;把秒钟存入second

38、变量 mov ah,byte ptr second ; sub ah,byte ptr second2 ;求新提取的秒与之前“固定”的值做差值,并将差值赋给ah中 jge c1 ;差值大于等于0则跳转到c1 dec byte ptr minute ;提取的分钟减一,实际为被借了一位 add ah,60 ;调整负数秒为正 jmp c1 endin: jmp ending ;中转

39、 cancel1:jmp cancel ;中转 c1: mov byte ptr second3,ah ;将差值保存起来 mov ah,byte ptr minute sub ah,byte ptr minute2 ;求分钟的差值 jge c2 dec byte ptr hour ;若为负,向hour借位 add ah,60 ;负数修正 c2: mov minute3,ah

40、 mov ah,byte ptr hour sub ah,byte ptr hour2 jge c3 add ah,24 c3: mov hour3,ah transf time+2,hour3 ;asc码转换,并放到指定位置 transf time+5,minute3 ;asc码转换,并放到指定位置 transf time+8,second3 ;asc码转换,并放到指定位置 point 9,36 ;指定光标位置

41、 disp time ;输出显示计时 mov byte ptr buff1,01h jug: gettime ;判断秒有无变化的延时,与jug1一样 mov al,byte ptr second cmp al,dh je jug jmp begin1 mov ah,01 ;等待键盘输入,使屏幕等待 int 21h

42、 jmp ending cancel: mov si,offset buff1 ;下面的语句键入c后的清屏并显示需要的提示符 mov byte ptr [si],00h clear 9,35,9,45,1,09h point 6,30 disp sen1 point 7,30 disp sen7 clear 8,28,8,50,1,0ah jmp begin zero: gettime mov byte ptr hour2,ch ;把采集好的小时数赋给hour2的字节储存空间 mov byte ptr minute2,cl ;同理把分钟数据给minute2 mov byte ptr second2,dh ;把秒数据给second2 mov byte ptr buff1,01h jmp begin1 ending: mov ah,4ch int 21h code ends end start

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服