来自于《Intel汇编语言程序设计》(第四版)第11章----------32位windows编程。
程序内容为,每经过100毫秒就在屏幕上显示一个点,当大于5000毫秒时退出。
代码如下:
TITLE Calculate Elapsed Time ( TimingLoop.asm )
; This program uses GetTickCount to calculate the number
; of milliseconds that have elapsed since the program
; started.
INCLUDE Irvine32.inc
TIME_LIMIT = 5000
.data
startTime DWORD ?
dot BYTE ".",0
.code
main PROC
INVOKE GetTickCount ; get milliseconds
mov startTime , eax
L1: mov edx , OFFSET dot ; display a dot
call WriteString
INVOKE Sleep , 100 ; sleep for 100ms
INVOKE GetTickCount
sub eax , startTime ; check the elapsed time
cmp eax , TIME_LIMIT
jb L1
L2: exit
main ENDP
END main
程序里用到了两个新函数:GetTickCount 和 Sleep。
GetTickCount 函数原型如下:
GetTickCount PROTO ; 返回值在EAX中
GetTickCount 用来返回系统启动以来所经过的毫秒数,因为计数值是一个双字,所以系统连续运行49.7天之后,计数值将归0.
Sleep 函数原型如下:
Sleep PROTO,
dwMilliseconds : DWORD
用来暂停参数指定的毫秒数。
注释一下程序:
TITLE Calculate Elapsed Time ( TimingLoop.asm )
; This program uses GetTickCount to calculate the number
; of milliseconds that have elapsed since the program
; started.
INCLUDE Irvine32.inc
TIME_LIMIT = 5000 ; 设定了截止时间5000毫秒
.data
startTime DWORD ?
dot BYTE ".",0
.code
main PROC
INVOKE GetTickCount ; 调用GetTickCount 得到程序开始的时间(系统启动以来的时间),保存在eax中
mov startTime , eax ; 将现在的时间保存在变量中
L1: mov edx , OFFSET dot ; display a dot
call WriteString
INVOKE Sleep , 100 ; 间隔100毫秒
INVOKE GetTickCount ; 再次得到现在的时间
sub eax , startTime ; 减去程序开始时的时间
cmp eax , TIME_LIMIT ; 看是否大于截止时间
jb L1 ; 如果小于则继续执行
L2: exit
main ENDP
END main
代码完。
分享到:
相关推荐
《汇编语言课程设计案例精编》源代码,案例1判断闰年程序、案例2产生随机数并运算的程序、案例3计算平台长度程序、案例4加减乘除四则运算 、案例4加减乘除四则运算 、案例4加减乘除四则运算 、案例7代码转换程序...
在编程时,我们需要编写汇编语言代码来驱动单片机的各个部分,包括初始化P1端口,设置定时器,以及处理中断事件。汇编语言虽然比高级语言更难理解,但对于单片机的底层控制来说,它可以提供更高的效率和精确性。 ...
包含多个汇编程序实例: 案例1判断闰年程序 案例2产生随机数并运算的程序 案例3计算平台长度程序 案例4加减乘除四则运算 案例5数字方阵程序 案例6数据加密程序 案例7代码转换程序 案例8键盘录入数据的转换与显示 ...
- **定义**:汇编语言是一种低级程序设计语言,它直接对应于计算机的机器指令集,通常用于编写性能要求极高的程序或直接控制硬件的程序。 - **特点**:易于直接访问硬件资源,执行效率高,但代码的可读性和可移植性...
【MSP430F149例程19 - 新年倒计时】是一个针对MSP430F149单片机设计的应用示例,主要用于展示如何利用该微控制器实现一个新年倒计时的功能。这个例程是开发者学习和实践MSP430系列单片机控制逻辑、时间管理和用户...
4. 汇编语言:汇编程序由汇编语言编写,而不是多种语言混合编写。 5. Web通信协议:HTTP(超文本传输协议)用于在Web浏览器和服务器之间传输Web文档。 6. 数据库系统特点:数据库系统的主要特点是数据共享,同时...
2. **程序设计技术**:运用8086/8088指令系统编写汇编语言程序,考虑程序的效率和最小化代码。 3. **功能集成**:实现多种功能的连接,如计时器与交通灯控制的结合。 4. **软件验证**:确保程序的编辑、编译、连接及...
9. 汇编程序:汇编程序是将汇编语言编写的源代码转换成机器语言的程序,不是混合多种语言编写。 10. 数据库系统特点:数据库系统通过数据模式和完整性约束减少了数据冗余,并提高了数据的一致性,但无法完全避免...
在8086系统中,汇编语言用于编写控制交通灯的底层代码,具有执行速度快、控制精细的特点。程序结构包括数据定义、子程序定义和主程序,通过指令实现对硬件设备的直接操作。 第三章 8086微处理器与8255接口芯片 3.1...
2. **汇编语言或C语言编程**:单片机编程常用的语言,C语言提供了更高的抽象层次,而汇编语言则更接近硬件。 3. **定时器/计数器**:单片机中的关键组件,用于实现定时和计数功能,这里用于电子钟的时钟脉冲产生。 4...
ARM汇编语言是基于ARM架构的低级编程语言,对于性能要求较高的场景非常关键。教程中的相关实验帮助学习者理解ARM指令集,掌握基本的汇编编程技巧。 6. Thumb汇编指令编程 Thumb指令集是ARM指令集的一个子集,设计...
31. 计算机能直接识别汇编语言:错误。计算机能直接执行机器语言。 32. 所有软件都存于内存储器:错误。软件通常存于外存,按需加载到内存。 33. 编译方式非翻译执行一句:错误。编译是将源代码一次性翻译成目标...
该架构具备良好的扩展性和兼容性,支持多种编程语言,如汇编语言和C语言等。C8051系列微控制器则是Cygnal Integrated Products Inc.推出的一系列基于8051内核的高性能单片机,它们通常集成了多种外设资源,例如ADC...
38. **计算机语言分类**:基本的计算机语言类型包括机器语言、汇编语言和高级语言。 39. **操作系统需求**:操作系统是微机的核心软件,没有它,微机无法执行任何任务。 40. **计算机语言与二进制**:机器语言是二...
C语言因其易读性和可移植性被广泛应用于51单片机的开发中,而汇编语言则在特定情况下(如对性能有极高要求的场合)仍然被使用。每种语言都有其适用场景和优缺点,初学者可以根据实际需求选择合适的方式进行编程。 -...
5. 计算机能直接识别和处理的语言是机器语言,而非汇编语言。机器语言是由二进制代码组成的,可以直接被硬件执行。 6. 滚动条的滚动框拖动时,会触发 Scroll 事件,这是Windows应用程序中常见的事件处理。 7. ...
10. **Assembler(汇编器)**: 将汇编语言源代码转换为机器语言的软件工具,是连接高级编程语言和机器底层执行指令的桥梁。 11. **Automation(自动化)**: 利用技术和设备自动完成工作过程,减少人工干预,提高...
16. **机器语言和汇编语言**:机器语言是低级语言,汇编语言介于高级语言和机器语言之间,不是高级语言。 17. **磁盘容量**:磁盘的存储容量与直径大小无关,主要取决于磁道数量、磁道密度和扇区数量等因素。 18. ...