`
qdujunjie
  • 浏览: 110347 次
  • 性别: Icon_minigender_1
  • 来自: Mars
社区版块
存档分类
最新评论

汇编语言计时器代码分析(19)

阅读更多

 

 

来自于《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

 

 

 代码完。

0
0
分享到:
评论

相关推荐

    汇编语言学习资料(代码)

    《汇编语言课程设计案例精编》源代码,案例1判断闰年程序、案例2产生随机数并运算的程序、案例3计算平台长度程序、案例4加减乘除四则运算 、案例4加减乘除四则运算 、案例4加减乘除四则运算 、案例7代码转换程序...

    用51单片机控制交通灯汇编语言编写.doc

    在编程时,我们需要编写汇编语言代码来驱动单片机的各个部分,包括初始化P1端口,设置定时器,以及处理中断事件。汇编语言虽然比高级语言更难理解,但对于单片机的底层控制来说,它可以提供更高的效率和精确性。 ...

    汇编程序各种应用实例集合

    包含多个汇编程序实例: 案例1判断闰年程序 案例2产生随机数并运算的程序 案例3计算平台长度程序 案例4加减乘除四则运算  案例5数字方阵程序 案例6数据加密程序 案例7代码转换程序 案例8键盘录入数据的转换与显示 ...

    汇编 电子密码锁设计题目

    - **定义**:汇编语言是一种低级程序设计语言,它直接对应于计算机的机器指令集,通常用于编写性能要求极高的程序或直接控制硬件的程序。 - **特点**:易于直接访问硬件资源,执行效率高,但代码的可读性和可移植性...

    MSP430F149例程19-新年倒计时

    【MSP430F149例程19 - 新年倒计时】是一个针对MSP430F149单片机设计的应用示例,主要用于展示如何利用该微控制器实现一个新年倒计时的功能。这个例程是开发者学习和实践MSP430系列单片机控制逻辑、时间管理和用户...

    2021-2022计算机二级等级考试试题及答案No.9213.docx

    4. 汇编语言:汇编程序由汇编语言编写,而不是多种语言混合编写。 5. Web通信协议:HTTP(超文本传输协议)用于在Web浏览器和服务器之间传输Web文档。 6. 数据库系统特点:数据库系统的主要特点是数据共享,同时...

    微机原理课设任务书

    2. **程序设计技术**:运用8086/8088指令系统编写汇编语言程序,考虑程序的效率和最小化代码。 3. **功能集成**:实现多种功能的连接,如计时器与交通灯控制的结合。 4. **软件验证**:确保程序的编辑、编译、连接及...

    2021-2022计算机二级等级考试试题及答案No.14645.docx

    9. 汇编程序:汇编程序是将汇编语言编写的源代码转换成机器语言的程序,不是混合多种语言编写。 10. 数据库系统特点:数据库系统通过数据模式和完整性约束减少了数据冗余,并提高了数据的一致性,但无法完全避免...

    交通灯智能控制设计————

    在8086系统中,汇编语言用于编写控制交通灯的底层代码,具有执行速度快、控制精细的特点。程序结构包括数据定义、子程序定义和主程序,通过指令实现对硬件设备的直接操作。 第三章 8086微处理器与8255接口芯片 3.1...

    第八届省赛-实时电子钟.zip

    2. **汇编语言或C语言编程**:单片机编程常用的语言,C语言提供了更高的抽象层次,而汇编语言则更接近硬件。 3. **定时器/计数器**:单片机中的关键组件,用于实现定时和计数功能,这里用于电子钟的时钟脉冲产生。 4...

    上海双石-ARM嵌入式系统设计及接口编程实验教程

    ARM汇编语言是基于ARM架构的低级编程语言,对于性能要求较高的场景非常关键。教程中的相关实验帮助学习者理解ARM指令集,掌握基本的汇编编程技巧。 6. Thumb汇编指令编程 Thumb指令集是ARM指令集的一个子集,设计...

    1章计算机基础知识选择题参照.pdf

    31. 计算机能直接识别汇编语言:错误。计算机能直接执行机器语言。 32. 所有软件都存于内存储器:错误。软件通常存于外存,按需加载到内存。 33. 编译方式非翻译执行一句:错误。编译是将源代码一次性翻译成目标...

    C语言8051LCD液晶屏显示

    该架构具备良好的扩展性和兼容性,支持多种编程语言,如汇编语言和C语言等。C8051系列微控制器则是Cygnal Integrated Products Inc.推出的一系列基于8051内核的高性能单片机,它们通常集成了多种外设资源,例如ADC...

    1章计算机基础知识选择题.pdf

    38. **计算机语言分类**:基本的计算机语言类型包括机器语言、汇编语言和高级语言。 39. **操作系统需求**:操作系统是微机的核心软件,没有它,微机无法执行任何任务。 40. **计算机语言与二进制**:机器语言是二...

    51单片机实验与实践教程

    C语言因其易读性和可移植性被广泛应用于51单片机的开发中,而汇编语言则在特定情况下(如对性能有极高要求的场合)仍然被使用。每种语言都有其适用场景和优缺点,初学者可以根据实际需求选择合适的方式进行编程。 -...

    2021-2022计算机二级等级考试试题及答案No.5047.docx

    5. 计算机能直接识别和处理的语言是机器语言,而非汇编语言。机器语言是由二进制代码组成的,可以直接被硬件执行。 6. 滚动条的滚动框拖动时,会触发 Scroll 事件,这是Windows应用程序中常见的事件处理。 7. ...

    计算机专业术语收录计算机专业术语收录

    10. **Assembler(汇编器)**: 将汇编语言源代码转换为机器语言的软件工具,是连接高级编程语言和机器底层执行指令的桥梁。 11. **Automation(自动化)**: 利用技术和设备自动完成工作过程,减少人工干预,提高...

    计算机考试题库精简版.pdf

    16. **机器语言和汇编语言**:机器语言是低级语言,汇编语言介于高级语言和机器语言之间,不是高级语言。 17. **磁盘容量**:磁盘的存储容量与直径大小无关,主要取决于磁道数量、磁道密度和扇区数量等因素。 18. ...

Global site tag (gtag.js) - Google Analytics