微机原理课程设计报告电子秒表设计_第1页
微机原理课程设计报告电子秒表设计_第2页
微机原理课程设计报告电子秒表设计_第3页
微机原理课程设计报告电子秒表设计_第4页
微机原理课程设计报告电子秒表设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖南文理学院芙蓉学院 微机原理课程设计报告微机原理课程设计报告 课程名称: 电子秒表 专业班级: 学生学号: 学生姓名: 指导教师: 完成时间: 评阅意见: 评定成绩: 评阅教师 日期 目目 录录 第第 1 章章 总体设计方案总体设计方案.1 1.1 课程设计的内容和要求.1 1.2 课程设计原理.1 1.3 课程设计思路.2 1.4 设计环境.2 第第 2 章章 详细设计方案详细设计方案.3 2.1 实现方法.3 2.2 模块的设计与实现.4 2.2.1 主程序模块.4 2.2.2 初始化模块.5 2.2.3 时钟模块.6 2.2.4 秒表模块.6 2.3 程序连线图.8 第第 3 章章 调

2、试及结果分析调试及结果分析.9 3.1 调试步骤及方法.9 3.1.1 程序的语法错误.9 3.1.2 时钟模块调试过程.9 3.1.3 秒表模块调试过程.11 3.2 实验结果.11 参考文献参考文献.13 附附 录(源程序)录(源程序).14 第 1 章 总体设计方案 1.1 课程设计的内容和要求课程设计的内容和要求 一、课程设计内容: 设计一个带时间显示的电子秒表,具体内容如下: 1.电子秒表的初始状态为零,分别显示分、秒、毫秒; 2.设计一个按钮,按第一次开始计时,按第二次计时暂停,显示当前记录 的时间,按第三次计时停止,回到初始态; 3.有时间显示的功能,当不用电子秒表的功能时,显示

3、当先的时间,分别 为时、分、秒形式。 二、课程设计要求: 1. 独立完成课程设计任务; 2. 通过老师当场验收; 3. 交出完整的课程设计报告。 1.2 课程设计原理课程设计原理 题目要求实现电子秒表功能和显示当前时间的功能。这两部分的共同点是都 需要实现时间显示和时间运行功能。除此之外,电子秒表还需要有开始计时和停 止计时功能。因此电子秒表是本次课程设计的主要部分。 在本次设计中主要使用了 8255a 并行接口芯片,8253 定时/计数器,8259a 中断控制器,8279 键盘/显示芯片。具体原理和功能如下: 1. 利用 8255a 芯片实现时钟和秒表之间的切换。将其连接到一个开关上, 读取

4、开关的电位,以此来判断是时钟模式还是秒表模式。 2. 利用 8253 芯片计时。用 8253 的分频功能使其产生周期为 1s 和 1ms 的方 波,分别为时钟和秒表计时。 3. 利用 8259a 芯片接收中断。中断分为三种类型,分别是一秒一次的时钟 计时中断,一毫秒一次的秒表计时中断和控制秒表开始和停止的中断。 4. 利用 8279 芯片在数码管上显示当前时间或秒表时间。 1.3 课程设计思路课程设计思路 由于要求实现时钟和秒表两种功能。因此需要设计时钟和秒表两个模式。 时钟模式下,以秒为计时单位,计时功能和显示当前时间功能。秒表模式下, 以毫秒为计时单位,有开始、停止和显示计时结果的功能。

5、首先,将 8255a 芯片的 pc0 接口连接到开关。读 c 端口的值。判断是 0 还是 1。0 代表时钟模式,1 代表秒表模式。然后,根据判断结果调用相应模式下的显 示功能。这样不停地读 8255a 芯片,然后判断,最后显示。构成一个死循环。若 在这个过程中有中断,则会执行中断服务程序。 时间中断由 8253 芯片产生,周期分别为 1s 和 1ms。时钟的最大时间为 23 时 59 分 59 秒,超过后从零开始重新计时。秒表最大时间为 59 分 59 秒 999 毫秒。 当计数大于这个值时,秒表不再更新。 对秒表的控制中断由一个手动脉冲产生。将按键次数保存在名为 pad 的内存 空间中。pa

6、d 只能有 0、1、2 三个值,分别代表清零、开始计时和停止计时。 8259 芯片接收中断,并调用相应模式下的中断服务程序。在时钟模式下,直 接将时间加一秒。在秒表模式下,或清零(重新开始,pad=0) ,或将时间加一毫 秒(开始计时,pad=1) ,或不做任何处理(停止计时,pad=2) 。 要实现以上分析的功能,可以设计 4 个模块。模块名和作用见表 1.1。 表表 1.1 模块划分及功能描述模块划分及功能描述 模块名称功能 主程序模块调用初始化模块,判断时间模式,调用相应的显示函数 初始化模块初始化各芯片,装入中断向量 时钟模块实现时钟计时和显示功能 秒表模块实现秒表的计时、显示和控制功

7、能 1.4 设计环境设计环境 硬件环境:aedk 实验箱 软件环境:lct88ea 应用软件、windowxp 操作系统、pc 机 第 2 章 详细设计方案 2.1 实现方法实现方法 1.内存分配 程序中所需定义的内存单元含义如下: timer0:存放当前时钟的值,共 6 个字节。时、分、秒各占两个字节; timer1:存放秒表的计数值,共 7 个字节。分和秒各占两个字节,毫秒占三 个字节; pad:存放秒表的按键次数,共 1 个字节。可以有三种取值,0 代表清零,1 代表开始计时,2 代表停止计时。当计数值大于 2 时,变为 0 重新开始计数; tab:存放 09 在数码管上显示的编码,共

8、10 个字节。 2.按键设置 秒表有一个按钮,接手动脉冲和 8259a 芯片的中断引脚。每次按键,pad 都 做相应改变。按第一次开始计时(pad=1) ,按第二次计时暂停(pad=2) ,显示当 前记录的时间,按第三次计时停止(pad=0) ,回到初始态。 3.时钟频率选择 cpu 的频率为。用 8253 芯片产生方波。计数器 1 的接hz 5 103.072 1 clk cpu 时钟脉冲,计数初值为 307,使产生周期为 1ms 的方波。计数器 0 的 0 out 接,计数初值为 1000,使产生周期为 1s 的方波。 0 clk 1 out 0 out 4.中断设置 8259a 芯片的中

9、断引脚、分别接 8253 芯片的、和 0 ir 1 ir 2 ir 0 out 1 out 手动脉冲。 5.显示设置 显示功能由 8279 芯片和数码管实现。显示分为两种情况。时钟模式下的显 示规则是(时-分-秒) ,即(00-00-00) 。秒表模式下的显示规则是(分-秒.毫秒) , 即(00-00.000) 。 6.端口地址分配 本次课程设计共使用了 4 种芯片,他们的端口号设置如表 2.1 所示。 表表 2.1 端口地址分配表端口地址分配表 芯片名称端口号含义 8255a200h203ha 端口、b 端口、c 端口、控制端口 8253210h213h计数器 0、计数器 1、计数器 2、控

10、制端口 8259a220h221h偶地址端口、奇地址端口 8279230h、232h数据端口、控制端口 7.子程序 子程序名称和功能如表 2.2 所示。 表表 2.2 子函数表子函数表 名称作用名称作用 i8255初始化 8255a 芯片i8253初始化 8253 芯片 i8259初始化 8259a 芯片,装中断向 量 i8279初始化 8279 芯片 int_timer0时钟中断服务程序display0显示时钟 int_timer1秒表中断服务程序display1显示秒表 int_pad更改按键次数 2.2 模块的设计与实现模块的设计与实现 2.2.1 主程序模块主程序模块 主程序的主要功能

11、是初始化各芯片,模式选择以及调用显示函数。在初始化 结束后,程序进入死循环,不断检测 8255a 芯片 c 端口的状态,cup 随时响应 中断,更新时钟状态,把应显示的结果送入 time0 和 time1 中,以备显示。 主程序的流程如图 2.1。 开始 设置数据段 关中断 初始化各芯片 开中断 读 8255a 芯片的 c 端口值 pc=0 调用 display0,显示时钟调用 display1,显示秒表 是否 图图 2.1 主程序流程图主程序流程图 2.2.2 初始化模块初始化模块 初始化模块主要用于初始化各芯片,设定芯片工作方式,以及装入中断向量 等。各芯片初始化情况如表 2.3 所示。

12、表表 2.3 芯片的初始化芯片的初始化 芯片名称初始化 8255ac 口低四位输入,控制字 9bh 8253计数器 1:先送低八位,后高八位,工作方式 3,二进制计数,计数 初值 307; 计数器 0:先送低八位,后高八位,工作方式 3,二进制计数,计数 初值 1000 8259aicw1:上升沿触发,单片,写 icw4,控制字 13h; icw2:中断类型号 30h,控制字 30h; icw4:正常 eoi,8086/8088 系统,控制字 01h; 中断向量:中断类型号 30h、31h、32h 对应的中断服务程序为 int_timer0、int_timer1、int_pad 8279清除显

13、示和显示寄存器,控制字 0d2h; 键盘显示命令,八个字符显示,左端输入方式,控制字 00h 2.2.3 时钟模块时钟模块 时钟模块主要是为了实现时钟的计时和显示功能。时钟的计时功能由 int_timer0 子程序实现,属于中断服务程序。显示功能由 display0 程序实现,由主 程序调用。 1.int_timer0 这个中断服务程序的中断类型号为 30h。8253 芯片产生周期为 1s 的方波, 当其上升沿到达 8259a 芯片的引脚后,进入中断服务程序 int_timer0。 0 ir 进入 int_timer0 后,首先从内存中读出前一秒的时间的最后一位,即 time0 的最后一位,然

14、后加 1。若有进位,则把当前这一位置零,然后读出前一位再加 一,再判断是否有进位。以此类推,直到没有进位或者达到计数最大值为止。把 修改后的时间存回内存中,以备显示。 2.display0 这是时钟模式的显示程序。在时钟模式下会反复被主程序调用。首先设置 8279a 芯片的显示方式。然后读取 time0 的最后一位,用 xlat 命令查 tab 表, 将得到的结果输出到 8279a 芯片,然后在数码管上显示。每显示两位数字,就在 中间显示一条横线以分隔时分秒。 2.2.4 秒表模块秒表模块 与时钟模式类似,秒表模式也需要计时和显示功能。除此之外,秒表模式还 需要有按键控制功能用于开始、暂停计时

15、和清零。 计时功能由 int_timer1 实现,属于中断服务程序。显示功能由 display1 子程 序实现。按键功能由 int_pad 实现,属于中断服务程序。 1.int_timer1 这个中断服务程序的中断类型号为 31h。8253 芯片产生周期为 1ms 的方波, 当其上升沿到达 8259 芯片的引脚后,进入中断服务程序 int_timer1。 1 ir 进入 int_timer1 后,首先从内存 pad 中读出按键次数。 若 pad 中的值为 2,说明现在秒表处于停止状态,计时停止,不将秒表的计 时值刷新,所以直接中断返回。 若 pad 中的值为 1,说明秒表正在计时,应将秒表的计

16、时值加 1ms。加 1 的 方法与时钟加 1 的方法类似。先读出 time1 的最低位,加 1 后判断进位。最后中 断返回。 若 pad 中的值为 0,说明秒表要重新开始计时,需要将秒表清零。即把 time0 中的每一位都改为零。最后中断返回。 2.display1 这是秒表模式的显示程序,在秒表模式下会反复被主程序调用。显示方法与 display1 类似。不同的是,秒表的显示格式是 00-00.000,即在显示秒的最后一位 时,需要加一个小数点。实现的方法是,先将这一位查表转化为可在数码管上的 编码,由于数码管是否显示小数点是由编码的最高位指示的,所以只需将编码和 80h 进行或运算即可添加

17、小数点。最后将结果输出到数码管显示。 3.int_pad 这个中断服务程序的中断类型号为 32h。当手动脉冲被按下的时候,进入这 个中断服务程序。将 pad 中的值加 1。pad 中的初始值为 0,当加到 3 时,将其变 为 0。 2.3 程序连线图程序连线图 cs=210h 8253 out1 clk0 out0 cs=220h 8259a ir1 ir0 ir3 手动脉冲 8279 cs=230h 数码管 clk1 cpu 时钟脉冲 hz 5 103.072 8255a pc0 cs=210h 开关 图图 2.2 程序连线图程序连线图 第 3 章 调试及结果分析 3.1 调试步骤及方法调试

18、步骤及方法 由于程序比较大,要整体调试会非常困难,不容易找出哪里有问题。所以必 须分而治之,将程序拆分开来调试。由于整个程序被化分为了几个模块,所以, 调试可以按模块来进行。 我将调试分为时钟模块和秒表模块。因为时钟模块相对简单,所以先调试时 钟模块,后调试秒表模块。 3.1.1 程序的语法错误程序的语法错误 由于对汇编语言还不熟悉,所以出现了较多的语法错误。主要错误有以下 一些。 程序格式错误。例如,子程序最后应写 ret。 寄存器寻址方式错误。例如,在装中断向量的时候,应该是寄存器间接寻 址,要加中括号。 跳转错误。跳转的最大值不能超过一定的限度。而且跳转的标号不能重复。 写地址错。例如,

19、在向某个端口送数据的时候,不能直接写地址,而必须 将端口地址放入寄存器 dx 中,再送数据。 3.1.2 时钟模块调试过程时钟模块调试过程 时钟模块又分为显示模块和计数模块。先调试显示模块,再调试计数模块。 1. 显示模块调试中的问题及解决方案 问题 1:数码管没有任何反应 问题分析:在初始化 8279 时,数码管就应该被清除显示,即会不显示任何 东西,但是先在数码管上的数并没有被清除,说明了可能是 8279 工作错误。检查程序后发现,8279 的控制端口是 231h,但是正 确的应该为 232h。 解决方案:将控制端口号改为 232h。 问题 2:数码管显示乱码 问题分析:8279 在初始化

20、时已经清除了显示,但是还是显示乱码,说明是后 送入的数有错。 解决方案:检查程序后发现,在初始化各芯片的时候没有关中断和开中断, 8259a 可能错误的响应的中断。 问题 3:显示顺序颠倒 问题分析:由于设置的是从左到右的八位显示,所以应该是送显示数的顺序 不对。 解决方案:将 display0 中的送显顺序颠倒。 2.计数模块调试中的问题及解决方案 问题 1:数码管显示结果一直为初始值 问题分析:可能的原因是 8253 芯片没有产生方波或是 8259a 芯片没有响应 中断。 解决方案:将 8259a 和 8253 断开,然后将手动脉冲接到 8259a 的中断 0 ir 引脚。用手动脉冲来产生

21、中断。结果显示没有任何改变,说明中 断有问题。 问题 2:中断响应问题,当接手动脉冲时,8259a 的表现是不响应中断,时 钟值不增加。 问题分析:检查中断向量装入是否正确,再检查中断服务程序。最后发现是 中断服务程序有错。在使用各寄存器之前,没有对其进行相应的 保护,导致结果异常。 解决方案:int_timer0 开始时将 ax/bx/cx/dx 分别压入栈中,在程序结束时 弹出。 问题 3:将 8253 和 8259a 相连后,只能响应一次中断。 问题分析:在中断没有错误的情况下,只能是 8253 出错。8259a 响应了一 次中断是因为 8253 在启动时,会从低电平变为高电平。在这个

22、上升沿,8259a 响应了中断,将时钟加 1。但后来就没有响应中 断。再将 8253 接到 led 灯上,发现其一直不亮,说明 8253 产 生的波有错误。检查 8253 的初始化后发现是送的计数初值和送 数的方式都有错。 解决方案:将计数初值和送数方式改正。 问题 4:时钟显示错位 问题分析:在只送初值的情况下,显示没有问题,但当时钟增加的时候,显 示会错位。 解决方案:改变显示方式在显示之前将显示方式写为 90h 3.1.3 秒表模块调试过程秒表模块调试过程 在时钟模块被调试完后,秒表模块就更容易调试了,因为两个模式的显示和 计时都大同小异。因此,调试过程中的主要问题出在秒表的控制上。 问

23、题 1:按控制按钮秒表没有反应 问题分析:可能是控制信号没有得到响应,检查程序发现,int_pad 的中断类 型号装入有错。 解决方案:将中断类型好改正后问题解决了。 问题 2:在秒表模式下开始计后,若切换到时钟模式,则显示会发生错误。 问题分析:肯能是两个模式有冲突的地方。经过检查程序发现,可能是因为 没有保护寄存器的原因。 解决方案:int_timer1 开始时将 ax/bx/cx/dx 分别压入栈中,在程序结束时 弹出。 问题 3:时钟模拟计时误差大。在时钟计时显示的时候,有时会停顿有时又 加的比较快。 问题分析:可能是因为 cpu 响应中断需要一定的时间,也可能是程序安排 不恰当 解决

24、方案:优化程序的结构,适当改变 8253 的计数初值。 3.2 实验结果实验结果 本程序能够满足题目的所有要求,其测试结果如下: 1. 将开关置于低电平,进入时钟模式。数码管显示当前时间,并每秒加 1。 2. 将开关置于高电平,进入秒表模式。数码管显示计数初值。 3. 在秒表模式下,按一下秒表控制按钮,开始计时,数码管不断刷新秒表计时。 4. 在秒表开始计数后,切换到时钟模式,时钟仍然在正常计时。 5.切换回秒表模式下第二次按下按钮,计时停止,显示最后计时结果。 6. 在秒表模式下第三次按下按钮,计时停止,结果清零。 7. 将时钟的初值设定为 23 时 59 分 40 秒,30 秒后观察结果。

25、 8. 将秒表的初值设定为 59 分 40 秒 000 毫秒,30 秒后观察结果。 20-13-59 00-00.000 00-00.198 20-14-11 00-51.715 00-00.000 00-00-10 59-59.999 参考文献 1 龚尚福.微机原理与接口技术m.西安:西安电子科技大学出版社,2003 2 王忠民.微型计算机原理m. 西安:西安电子科技大学出版社,2003 3 沈美明,温冬婵.ibm-pc 汇编语言程序设计m.北京:清华大学出版社, 2001 4 郑初华.汇编语言、微机原理及接口技术m. 西安:西安电子科技大学出 版社,2003 5 仇玉章.32 位微型计算机

26、原理与接口技术m. 北京:清华大学出版社, 2000 6 王富荣.微机原理与汇编语言实用教程m. 北京:清华大学出版社,2009 7 白中英.计算机组成原理m. 北京:科学出版社,2000 8 罗云彬. windows 环境下 32 位汇编语言程序设计m. 北京:电子工业出版 社,2002 附 录(源程序) c8255 equ 203h d8255c equ 202h c8253 equ 213h d82530 equ 210h d82531 equ 211h d82532 equ 212h c82590 equ 220h c82591 equ 221h c8279 equ 232h d827

27、9 equ 230h time0 equ 1000 time1 equ 307 code segment assume cs:code start: jmp y timer0 db 2,0,1,3,5,9 timer1 db 7 dup(0) pad db 0 tab db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;09 y: ;初始化各芯片 mov ax,8100h mov ds,ax cli call i8279 call i8259 call i8253 call i8255 sti big_lp:mov dx,202h;读 8255 c 口 in

28、al,dx cmp al,01h ;判断是什么模式 je mode1 call display0;时间模式,显示时间 jmp big_lp mode1:call display1;秒表模式,显示秒表 jmp big_lp i8253: ;210,211,212,213 分别为:计数器 0/计数器 1/计数器 2/控制端口 ;cpu 时钟频率为 307200hz ;初始化计数器 1,先送低八位,后送高八位,工作方式 3,二进制计数 mov dx,c8253 mov al,76h out dx,al ;使 out1 产生周期为 1ms 的方波 mov dx,d82531 mov ax,time1

29、out dx,al mov al,ah out dx,al ;初始化计数器 0,先送低八位,后送高八位,工作方式 3,二进制计数 mov dx,c8253 mov al,36h out dx,al ;clk0 接 out1,out0 产生周期为 1s 的方波 mov dx,d82530 mov ax,time0 out dx,al mov al,ah out dx,al pop bx pop cx pop dx pop ax ret i8259: ;端口地址为 220h 和 221h ;icw1,上升沿触发,单片,写 icw4 push ax push dx push cx push bx m

30、ov dx,c82590 mov al,13h;(00010011) out dx,al ;icw2,中断类型号为 30h,31h,32h mov dx,c82591 mov al,30h out dx,al ;icw4,正常 eoi,8086/8088 系统 mov al,01h out dx,al push ds mov ax,0 mov ds,ax mov bx,30h*4 mov ax,offset int_timer0 mov ds:bx,ax mov ax,cs mov bx,30h*4+2 mov ds:bx,ax mov bx,31h*4 mov ax,offset int_t

31、imer1 mov ds:bx,ax mov ax,cs mov bx,31h*4+2 mov ds:bx,ax mov bx,32h*4 mov ax,offset int_pad mov ds:bx,ax mov ax,cs mov bx,32h*4+2 mov ds:bx,ax pop ds pop bx pop cx pop dx pop ax ret i8279: ;数据端口 230h,控制端口 232h ;清除显示和显示寄存器 mov dx,c8279 mov al,0d2h out dx,al ;键盘显示命令,八个字符显示,左端输入方式 mov al,0 out dx,al re

32、t i8255: ;200,201,202,203 分别为:a 口/b 口/c 口/控制端口 ;只用到 pc0,输入 mov dx,c8255 mov al,9bh out dx,al ret int_timer0 proc ;1 秒产生一次中断,每次中断时间加 1 秒 push ax push dx push cx push bx push di lea di,timer0 mov bl,byte ptrdi+5 cmp bl,9 je c0;有进位 inc bl;1s 位加 1 mov byte ptrdi+5,bl jmp addend0 c0: mov byte ptrdi+5,0 m

33、ov bl,byte ptrdi+4;处理下一位 cmp bl,5 je c1;有进位 inc bl;10s 位加 1 mov byte ptrdi+4,bl jmp addend0 c1: mov byte ptrdi+4,0 mov bl,byte ptrdi+3;处理下一位 cmp bl,9 je c2;有进位 inc bl;1min 位加 1 mov byte ptrdi+3,bl jmp addend0 c2: mov byte ptrdi+3,0 mov bl,byte ptrdi+2;处理下一位 cmp bl,5 je c3;有进位 inc bl;10min 位加 1 mov b

34、yte ptrdi+2,bl jmp addend0 c3: mov byte ptrdi+2,0 mov bl,byte ptrdi+1 mov bh,byte ptrdi; cmp bh,2 jne c4 cmp bl,3 je c5;23h 的情况 inc bl;21h 位加 1 mov byte ptrdi+1,bl jmp addend0 c5: mov byte ptrdi,0; 新的一天 mov byte ptrdi+1,0 jmp addend0 c4: cmp bl,9 je c6;有进位 inc bl;01h 位加 1 mov byte ptrdi+1,bl jmp add

35、end0 c6: inc bh mov byte ptrdi,bh;10h 位加 1 jmp addend0 addend0:mov al,20h mov dx,c82590 out dx,al pop di pop bx pop cx pop dx pop ax iret int_timer0 endp display0: ;显示时间 push di lea bx,tab mov al,90h mov dx,232h out dx,al mov dx,d8279 lea di,timer0 mov al,byte ptrdi+5 xlat out dx,al mov al,byte ptrd

36、i+4 xlat out dx,al mov al,40h out dx,al mov al,byte ptrdi+3 xlat out dx,al mov al,byte ptrdi+2 xlat out dx,al mov al,40h out dx,al mov al,byte ptrdi+1 xlat out dx,al mov al,byte ptrdi xlat out dx,al pop di ret int_timer1 proc push ax push dx push cx push bx push di mov bl,pad cmp bl,0;复位 je t0 cmp b

37、l,1;第一次按键 je t1;第二次按键 mov al,20h mov dx,c82590 out dx,al pop di pop bx pop cx pop dx pop ax iret t0:;初始状态或第三次按键,秒表归零 lea di,timer1 mov byte ptrdi,0 mov byte ptrdi+1,0 mov byte ptrdi+2,0 mov byte ptrdi+3,0 mov byte ptrdi+4,0 mov byte ptrdi+5,0 mov byte ptrdi+6,0 mov al,20h mov dx,c82590 out dx,al pop

38、 di pop bx pop cx pop dx pop ax iret t1:;第一次按键,开始计时或增加 1 毫秒 lea di,timer1 mov bl,byte ptrdi+6 cmp bl,9 je r0;有进位 inc bl;0.001s 位加 1 mov byte ptrdi+6,bl jmp addend r0:mov byte ptrdi+6,0;上一位清零 mov bl,byte ptrdi+5;处理下一位 cmp bl,9 je r1;有进位 inc bl;0.01s 位加 1 mov byte ptrdi+5,bl jmp addend r1:mov byte ptr

39、di+5,0 mov bl,byte ptrdi+4;处理下一位 cmp bl,9 je r2;有进位 inc bl;0.1s 位加 1 mov byte ptrdi+4,bl jmp addend r2: mov byte ptrdi+4,0 mov bl,byte ptrdi+3;处理下一位 cmp bl,9 je r3;有进位 inc bl;1s 位加 1 mov byte ptrdi+3,bl jmp addend r3: mov byte ptrdi+3,0 mov bl,byte ptrdi+2;处理下一位 cmp bl,5 je r4;有进位 inc bl;10s 位加 1 mov byte ptrdi+2,bl jmp addend r4: mov byte ptrdi+2,0 mov bl,byte ptrdi+1;处理下一位 cmp bl,9 je r5;有进位 inc bl;1min 位加 1 mov byte ptrdi+1,bl jmp addend r5: mov byte ptrdi+1,0 mov bl,byte ptrdi;处理下一位 cmp bl,5 je addend

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论