本文代码来自于《Intel汇编语言程序设计》 (第四版)第11章-----------32位windows编程。
秒表程序使用了一个TimeStart来启动秒表,还有一个TimeStop返回自TimeStart启动以来的毫秒数。
程序本身其实很简单,以下为代码:
TITLE Calculate Elapsed Time
; Demonstrate a simple stopwatch timer, using
; the Win32 GetTickCount function.
INCLUDE Irvine32.inc
TimerStart PROTO,
pSaveTime : PTR DWORD
TimeStop PROTO,
pSaveTime : PTR DWORD
.data
msg BYTE "milliseconds have elapsed" , 0dh , 0ah , 0
timer1 DWORD ?
.code
main PROC
INVOKE TimerStart , ; 开始计时
ADDR timer1 ; 传入一个指向DWORD类型的指针
INVOKE Sleep , 5000 ; 暂停5秒
INVOKE TimerStop, ; 结束计时
ADDR timer1 ; 传入一个指向DWORD类型的指针
call WriteDec ; 打印一共花费的毫秒数
mov edx,OFFSET msg
call WriteString
exit
main ENDP
;----------------------------------------------------------------------------
TimerStart PROC uses eax esi,
pSavedTime : PTR DWORD
; starts a stopwatch timer.
; Receives : pointer to a variable that will hold
; the current time.
; Returns : nothing
;----------------------------------------------------------------------------
INVOKE GetTickCount ; 得到了时间值,保存在eax中
mov esi,pSavedTime ; 得到传入的参数地址
mov [esi],eax ; 将得到的时间值保存在传入的DWORD类型指针所指向的地址中
ret
TimerStart ENDP
;----------------------------------------------------------------------------
TimerStop PROC uses esi,
pSavedTime : PTR DWORD ; 接收一个指向DWORD类型的指针作为参数
; Stops the current stopwatch timer.
; Receives : pointer to a variable holding the saved time
; Returns : EAX = number of elapsed milliseconds
; Remarks : Accurate to about 10ms ; 系统的精确度在XP是10ms
;----------------------------------------------------------------------------
INVOKE GetTickCount ; 又得到了时间,将得到的时间值保存到了eax中
mov esi,pSavedTime ; 将接收到指针赋值到esi中
sub eax,[esi] ; 使用eax的值减去目前[esi]中的值记得到自TimerStart以来的时间差
ret
TimerStop ENDP
END main
注意在main之前,有TimerStart 和TimerStop 两个函数原型的定义,汇编语言和其他语言不同,必须在使用之前定义,这样main中使用到这两个函数时才会知道,否则程序会认为找不到这两个函数。
分享到:
相关推荐
51单片机秒表计时汇编程序代码,这个是之前好奇汇编语言,简单写了个秒表计时器程序,仿真没问题,焊接电路烧录代码也能正常运行,但汇编真的挺难读懂的,比c语言易读性差很多,所以后续也就不再碰汇编代码了。...
51单片机实现简单的秒表(含原理图,代码)——C语言实现
单片机(汇编语言)秒表课程设计设计全文共14页,当前为第1页。单片机(汇编语言)秒表课程设计设计全文共14页,当前为第1页。 单片机(汇编语言)秒表课程设计设计全文共14页,当前为第1页。 单片机(汇编语言)秒表课程...
生产实习计划书数字秒表实现与设计 源程序代码
数字秒表课程设计 详细的程序代码 可以做这方面的课程设计参考 希望对你有用
本文件为微机原理与汇编语言课程设计;内含电子表、秒表、音乐播放器等代码,并附汇编编译器DosBox,安装即可运行,代码运行成功无错误。作为微机原理与汇编课程设计参考,欢迎下载。
单片机实验程序全套(汇编)_北交大_大二
汇编语言与微机原理课程设计中各种小程序的源代码及设计格式。有电子秒表,电子琴,电子锁,模拟交通灯等等。还有一些设计讲解。
运用汇编语言所编写的一个简单的倒计时秒表程序
单片机秒表计时器F310 汇编语言 ;使用资源 30H-31H 存放10进制BCD码的16位 ;40H-43H显存 R0拆分指针 R1存储记录时间的指针 R3 R4 延时子程序 ;44H-77H存储记录时间 ;按键功能 ;F键实现记录当前时刻的功能 ;KINT...
实现功能如下,代码设计原理图设计论文均已完善并完美通过答辩,完美运行,只需3积分非常实惠,快来下载吧~ 包售后哦~有什么不懂的地方均可以来问...5、采用C51语言或汇编语言编写代码,在keil中完成程序的编辑和调试。
设计工作量 1、汇编或C51语言程序设计; 2、程序调试; 3、在自己焊接好的单片机开发板上调试通过; 4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、调试过程,参考文献、设计总结等。 进度...
20 附1:源程序代码 21 附2:系统原理图 25 1 概述 1.1单片机简介 单片机是性能价格比高、体积小、对国民经济渗透力大、最有前途的微控制器。单片 机自20世纪70年代初研制成功并发展至今,已进入第四代。它主要是在...
16 附1:源程序代码…………………………………………………………………17 附2:系统原理图…………………………………………………………………20 1 概述 1.1 设计任务 设计一个单片机控制的秒表系统。利用单片机...
51单片机程序 59秒计时器(利用定时器延时,中断法)-C语言版.zip
3.10.3 初见汇编语言 3.10.4 初识指令 3.10.5 立即数 3.11 ■应用体验——发光二极管的交替 发光 3.11.1 控制交替发光的原理 3.11.2 体验交替发光 3.12 ■元器件插曲之七:开关 3.12.1 开关基础知识 3.12.2 常用...
51单片机基础应用设计C语言实例(400例)合集: 10-LED循环左移 100-24c02记忆开机次数 101-24c02存储上次使用中状态 102-DS1302 时钟原理 103-DS1302可调时钟 ...214-红外遥控键值解码12864液晶显示(汇编语言)
51 单片机设计跑马灯的程序用(c 语言)编写 P1 口接 8 个发光二极管共阳,烧入下面程序 #include unsigned char i; unsigned char temp; unsigned char a,b; void delay(void) { unsigned char m,n,s; for(m=20;m>0...