- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言编程:在屏幕右上角显示系统时间
汇编语言编程:在屏幕右上角显示系统时间
在系统加电初始化期间,把系统定时器初始化为每隔约 55 毫秒发出一次中断请
求, CPU在响应定时器中断请求后转入 8H 号中断处理程序, BIOS提供的 8H 号
中断处理程序中有一条中断指令 INT 1CH,所以每秒要调用到约 18.2 次 1CH号中
断处理程序,而 BIOS的 1CH号中断处理程序实际上并没有做任何工作,只有一
条中断返回指令。
系统 Int 08h
系统定时器
由系统时钟每秒大约调用 18.2 次(每小时 65536 次)
调用寄存器:无
返回寄存器:无
注释:
Int 08h 是一个每秒钟要调用 18.2 次的中断,用于完成高级的各种计
数,该中断直接与系统时钟芯片的通道 0 相连。要编写实用程序中的 TSR,如
SideKick,就会发现 Int 08h 对于由定时来触发的任务来说是特别有用的。此
中断要调用 Int 1Ch (定时计数)。因此大多数 TSR应该连接到 Int 1Ch 而不是
连接到 Int 08h 上。
由于每隔 55 毫秒此中断就被调用一次,因而,面向该中断的处理程序必
须尽可能快地执行。中断处理只能是处理器系统常规使用的一小部分。并且,
由于计时器被当作 IRQ0 (高优先级硬件中断),因而会优先于同一系统上的其
它中断而服务于中断 Int 08h 。若对该中断处理得不好,就会导致服务于其它
的重要中断(如磁盘服务)时出现问题。
注意,由于在 Int 08h 处理程序完成其处理之前调用了 Int 1Ch (计时器的
用户拴接),因而,面向该中断的操作也领先于其它任何硬件中断请求而得以
执行。富有经验的软件设计人员则常常利用这一事实。
地址 0040:006Ch 是一个 32 位按天计算的时间( time-of-day)指示符,计
数自启动以来的时间计数。每当时间计数满 24 小时,位置 0040:0070h 就被
置为 1,而当 BIOS读它时,该位置被清除为零。如果经过了 24 小时而其间又
没有出现读取操作时,计算机的时间系统中便消失了一整天的时间,并又从零
开始计数。
通过递减位置 0040:0040h 处的值,该中断就能提供用于磁盘的发动机
自动关闭功能。当位置 0040:0040h 的值为零时,位于 0040:003Fh 处的发
动机状态中的发动机运行标志被重置为关掉磁盘发动机。
让计时器采用奇数频率来调用 Int 08h (18.2 次/秒)的原因在于设计者们
希望通过设置出时间显示来简化这项工作,以便位于 0400:006Ch处的 32
位值中的高位字正好能每小时增加一次,这样便允许把它与 24 (十进制)进行
简单的比较,以检测午夜翻转。
用 3600 (每小时的秒数)来除 65536 (低位字翻转的计数),其结果正好是
18.20——目标频
率。遗憾的是,计时器芯片的递减计数频率略为偏低了
一点,
并且实际上在 BIOS中检测到的计数数字是 11,大于可能显示的结果,实际操
作中,由于不同的系统之间频率是不相同的,因而必须时常重新设置时钟。每
当引导系统时,这一进程通常就会发生;但是在一些拥有单独的实时时钟的系
统上,这些时钟也会在每周超出几秒或丢失几秒钟。
;看到了一个题目,要求设计一个程序,在屏幕右上角显示系统时间。
;
;当年,做而论道在学习微机原理的时候,就独立设计出了这样的程序,当然,
弄了好多日子才成功。
;为了网友少走弯路, 做而论道特地翻腾了好久, 找出来当年的程序, 多年不见,
恍如隔世
;
;80x86 系统
文档评论(0)