第五章 汇编语言程序设计方法
- 格式:doc
- 大小:183.50 KB
- 文档页数:20
汇编语言的编程步骤与调试方法汇编语言是一种底层的程序设计语言,直接操作计算机硬件。
在编写汇编语言程序时,需要经过一系列的编程步骤和调试方法,以确保程序的正确性和可靠性。
下面是关于汇编语言的编程步骤和调试方法的一些详细介绍。
一、编程步骤:1.定义程序目标:明确程序的功能、输入和输出。
2.设计算法和逻辑:将目标转化为汇编语言指令,设计算法和逻辑流程。
3.选择寄存器和指令:根据算法和逻辑需求,选择合适的寄存器和指令。
4.编写指令:根据算法和逻辑需求,使用正确的指令来编写汇编语言程序。
5.汇编编译:使用汇编编译器将汇编代码翻译成机器代码。
6.汇编连接:使用链接程序将机器代码和其他必要的文件(如库文件)连接成可执行文件。
7.调试和测试:进行调试和测试,确保程序的正确性和可靠性。
8.优化和改进:根据测试结果,对程序进行优化和改进。
二、调试方法:1.插入调试指令:在程序中插入一些特定的调试指令,可以输出一些关键的变量或标志位,以便观察程序的执行路径和结果。
2.单步执行:逐条执行程序代码,并观察每条指令的执行结果和影响,以及寄存器和存储器的变化情况。
3.观察寄存器和存储器:利用调试器观察程序执行过程中的寄存器和存储器的变化情况,以确定代码逻辑是否正确。
4.打印和日志输出:通过在程序中插入打印和日志输出的语句,可以观察关键变量和代码的执行情况,以帮助调试。
5.内存和寄存器状态检查:检查程序执行过程中的内存和寄存器状态,特别是对一些关键变量和标志位进行监视,以便发现问题所在。
6.脱机调试:将程序转储至仿真器或虚拟机,并在其中进行无风险的调试,以排查错误。
三、汇编程序调试常见问题及解决方法:1.程序崩溃或死循环:检查程序中循环和分支语句的逻辑判断条件是否正确,以及循环内的寄存器和内存操作是否正确。
2.内存访问错误:查看程序访问的内存地址和存储器的范围是否正确,并检查程序中的指针操作是否正确。
3.寄存器使用错误:检查程序中使用的寄存器是否正确选择和使用,尤其是在多个函数调用的情况下,需要注意寄存器的保存和恢复。
《汇编语言程序设计》教案附:习题参考答案《汇编语言程序设计》(第4版)钱晓捷主编前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。
它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。
3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。
(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。
(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。
(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。
(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。
(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。
(7).第九章说明BIOS和DOS系统功能调用的使用方法。
(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。
附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (1)1.1进位计数制与不同基数的数之间的转换 (1)1.2二进制数和十六进制数的运算 (2)1.3计算机中数和字符的表示 (3)1.4几种基本的逻辑运算 (3)第 2 章 80X86计算机组织 (4)2.180X86微处理器 (4)2.2基于微处理器的计算机系统构成 (4)2.3中央处理机 (5)2.4存储器 (6)2.5外部设备 (7)第 3 章 80X86的指令系统和寻址方式 (8)3.180X86的寻址方式 (8)3.2程序占有的空间和执行时间 (10)3.380X86的指令系统 (10)第 4 章汇编语言程序格式 (27)4.1汇编程序功能 (27)4.2伪操作 (27)4.3汇编语言程序格式 (31)4.4汇编语言程序的上机过程 (34)第 5 章循环与分支程序设计 (37)5.1循环程序设计 (37)5.2分支程序设计 (38)5.3如何在实模式下发挥80386及其后继机型的优势 (38)第 6 章子程序结构 (40)6.1子程序的设计方法 (40)6.2子程序的嵌套 (41)6.3子程序举例 (41)第 7 章高级汇编语言技术 (43)7.1宏汇编 (43)7.2重复汇编 (44)7.3条件汇编 (45)第 8 章输入/输出程序设计 (46)8.1I/O设备的数据传送方式 (46)8.2程序直接控制I/O方式 (47)8.3中断传送方式 (47)第 9 章 BIOS和DOS中断 (50)9.1键盘I/O (50)9.2显示器I/O (52)9.3打印机I/O (53)9.4串行通信口I/O (54)第 10 章图形与发声系统的程序设计 (55)10.1显示方式 (55)10.2视频显示存储器 (55)10.3EGA/VGA图形程序设计 (56)10.4通用发声程序 (57)10.5乐曲程序 (58)第 11 章磁盘文件存取技术 (59)11.1磁盘的记录方式 (59)11.2文件代号式磁盘存取 (60)11.3字符设备的文件代号式I/O (61)11.4BIOS磁盘存取功能 (62)附录:《IBM—PC汇编语言程序设计》习题参考答案 (63)第一章.习题 (63)第二章.习题 (64)第三章.习题 (65)第四章.习题 (79)第五章.习题 (84)第六章.习题 (104)第七章.习题 (118)第八章.习题 (125)第九章.习题 (130)第十章.习题 (134)第十一章.习题 (145)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。
《汇编语言程序设计》课程教学大纲学时:32 学分:2理论学时:24 实验学时:8面向专业:电科、电信、通信课程代码:B2700009先开课程:C语言程序设计课程性质:必修执笔人:王艳春审定人:陈龙猛、张金政第一部分:理论教学部分一、说明1、课程的性质、地位和任务本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。
掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。
汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。
因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。
通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。
2、课程教学和教改基本要求课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。
通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。
学习这门课程,应达到以下几个要求:①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧;②具有阅读,分析汇编语言程序的能力;③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行过程及debug工具的调试手段。
课堂授课采用多媒体教学,采用由浅入深、循序渐进学习步骤,主要讲解设计思想、实现技巧,通过提问题引导学生思考,提高学生的学习兴趣,从而加深学生对理论课的理解,提高学生的动手能力。
二、教学内容与课时分配第一章基础知识(2学时)1.1 机器语言及汇编语言的产生1.2 汇编语言的组成1.3 存储器1.4 指令和数据1.5 存储单元及CPU对存储器的读写1.6 三大总线1.7 主板、接口卡及各类存储器芯片1.8 内存地址空间教学的重点与难点:指令和数据在内存或磁盘上没有区别;内存地址空间。
汇编语⾔学习知识程序设计实验⽬录⽬录 (1)实验⼀利⽤DEBUG熟悉常⽤指令的使⽤ (2)⼀、实验⽬的 (2)⼆、⽰例 (2)三、实验题 (2)实验⼆汇编程序和连接程序的使⽤ (6)⼀、实验⽬的。
(6)⼆、⽰例。
(6)三、实验题。
(8)实验三顺序结构程序设计 (11)⼀、实验⽬的 (11)⼆、⽰例 (11)三、实验题 (12)四、实验报告 (15)实验四循环结构程序设计 (16)⼀、实验⽬的 (16)⼆、⽰例 (16)三、实验题 (18)实验五分⽀结构程序设计 (21)⼀、实验⽬的 (21)⼆、⽰例 (21)三、实验题 (22)实验六⼦程序设计 (29)⼀、实验⽬的 (29)⼆、实验题 (29)实验⼀利⽤DEBUG熟悉常⽤指令的使⽤⼀、实验⽬的熟悉指令系统,掌握常⽤指令的⽤法;通过实验加深对各种寻址⽅式的理解;能熟练使⽤DEBUG中的命令对指令进⾏反汇编,观察并了解机器代码。
⼆、⽰例请分别⽤⼀条汇编语⾔指令完成如下功能:(过程略)。
1.⽤寄存器BX和SI的基址变址寻址⽅式把存储器的⼀个字节与AL寄存器的内容相加,并把结果送到AL中。
ADD AL,[BX][SI]2.⽤位移量为0520H的直接寻址⽅式把存储器中的⼀个字与3412H相加,并把结果送回该存储单元。
ADD WORF PTR [0520H],3412H三、实验题1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执⾏完后AX寄存器的内容。
要求输⼊指令,相应存储单元的内容要事先设置,单步P执⾏,观察执⾏结果。
(设置存储器的值)①.MOV AX,1200H②.MOV AX,BX③.MOV AX,[1200H]④.MOV AX,[BX]⑤.MOV AX,1100[BX]⑥.MOV AX,[BX][SI]⑦.MOV AX,1100[BX][SI]⑧ .MOV AX,[BP+SI+04]2、上机调试、验证教材习题3.15。
《计算机组成原理与汇编语言程序设计》习题解答第二章计算机中的信息表示1、(101010.01)2=1×25+1×23+1×21+1×2-2=42.25=(01000010.00100101)BCD2、(37.2)8=3×81+7×80+2×8-1=31.25=(00110001.0010.0101)BCD3、(AC.E)16=A×161+C×160+E×16-1=172.875=(000101110010.100001110101)BCD4、(75.34)10=(1001011.1)2=(113.4)8=(4B.8)165、13/128=0.1015625=(0.0001101)26、原码:(1) 00000000 (2) 10000000 (3) 0.1010000 (4) 1.1010000 (5) 00001010 (6)10001010补码:(1) 00000000 (2) 不存在(3) 0.1010000 (4) 1.0110000 (5) 00001010(6)111101107、原码x=0.1010,真值x=+0.1010(0.1010)8、原码x=1.0110,真值x=-0.01109、10 原码补码真值(1)非零最小正数 0.000000000000001 0.000000000000001 2-15(2)最大正数 0.111111********* 0.111111********* 1-2-15(3)绝对值最小负数 1.000000000000001 1.111111********* -2-15(4)绝对值最大负数 1.111111********* 1.000000000000001 -(1-2-15)11、浮点数代码(补码表示) 真值(1)非零最小正数 100000,0.1000000000 2-2^5(2-1)(2)最大正数 011111,0.111111111 22^5-1(1-2-9)(3)绝对值最小负数 100000,1.100000000 2-2^5(-2-1)(4)绝对值最大负数 011111,1.000000000 22^5-1(-1)15、(1) 1200H (2) A307H 1001H (3) 1200H 1002H (4) F03CH第四章典型CPU及指令系统举例3、(1)10101011+01010101:OF=0,ZF=1,SF=0,CF=1(2)11011010+11101101:OF=0,ZF=0,SF=1,CF=1(3)01010101-00111110:OF=0,ZF=0,SF=0,CF=1(4)10110011-01100010:OF=1,ZF=0,SF=0,CF=17、(1) 0007H (2) 3400H8、05062H9、100个字节=64H个字节。
计算机组成原理与汇编语言程序设计课后习题及解答徐洁,俸远祯电子工业出版社第1章习题一1.什么是程序存储工作方式?答:计算机的工作方式——存储程序工作方式。
即事先编写程序,再由计算机把这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。
2.采用数字化方法表示信息有哪些优点?用数字化方法表示信息的优点:(1)抗干扰能力强, 可靠性高。
(2)依靠多位数字的组合,在表示数值时可获得很宽的表示范围以及很高的精度。
(3)数字化的信息可以存储、信息传送也比较容易实现。
(4)可表示的信息类型与范围及其广泛,几乎没有限制。
(5)能用逻辑代数等数字逻辑技术进行信息处理,这就形成了计算机硬件设计的基础。
3.如果有7×9点阵显示出字符A的图像,请用9个七位二进制代码表示A的点阵信息。
4.数字计算机的主要特点是什么?1. (1)能在程序控制下自动连续地工作;(2|)运算速度快;(3)运算精度高;(4)具有很强的信息存储能力;(5)通用性强,应用领域及其广泛。
5.衡量计算机性能的基本指标有哪些?答:衡量计算机性能的基本指标:(1)基本字长——参加一次运算的数的位数;(2)数据通路宽度——数据总线一次能并行传送的位数;(3)运算速度——可用①CPU的时钟频率与主频,②每秒平均执行指令数,③典型四则运算的时间来表示。
(4)主存储器容量——可用字节数或单元数(字数)×位数来表示。
(6)配备的外围设备及其性能。
(7)系统软件配置。
7.系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。
系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。
例如WINDOWS98操作系统,C 语言编译程序等,数据库管理系统。
8.对源程序的处理有哪两种基本方式?对源程序的处理通常有两种处理方式:解释方式和编译方式。
第2章习题二1.将二进制数(101010.01)2 转换为十进制数及BCD码。
解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD2.将八进制数(37.2)8转换为十进制数及BCD码.解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD3.将十六进制数(AC.E)转换为十进制数及BCD码.解: (AC.E)16 =(172.875)10 = (000101110010.100001110101)BCD4.将十进制数(75.34)10转换为8位二进制数及八进制数、十六进制数。
50 第五章 汇编语言程序设计方法 本章课题:汇编语言程序设计方法 教学内容:1)、汇编语言程序设计 2)、顺序与循环程序设计方法 3)、分支程序设计方法 4)、查表程序设计方法 5)、子程序设计方法 6)、综合程序设计方法 教学目的:通过本章的学习应掌握汇编语言程序设计方法,具备较复杂程序设计能力。 本章重点:汇编语言程序设计方法 本章难点:分支程序设计方法 教 案:
第一节 汇编语言程序设计 1、程序设计语言 1)、机器语言 直接用二进制数表示指令和数据的最原始的程序设计语言。 2)、汇编语言 用助计符来表示的面向机器的程序设计语言。用汇编语言编制的程序须要用“人工汇编”或“机器汇编”将其翻译成机器语言,才能被机器认识。 3)、高级语言 高级语言是一种面向过程而独立于计算机硬件结构的通用计算机语言。如FORTRAN、PASCAL、C语言等。 注意:①机器语言直接面对机器,实时性好,但难以编出较复杂的程序,现基本上被汇编语言代替; ②汇编语言是目前单片机初学者采用的一种编程方法,它具有实时性强,对较复杂的程序也能编制。 51
③高级语言它面向过程易于编制复杂程序,具有通用性好,程序简单,但它要求占用较大的内存空间,实时性差,目前从事单片机的开发和研究工作须掌握这种方法。 2、汇编语言的规范 1)、汇编语言源程序的格式 标号:操作码 目的操作数,源操作数;注释 2)、汇编语言伪指令 ①ORG----起始地址伪指令; 功能:用来规定目标程序或数据的起始地址。 格式:[标号:] ORG 16位地址 说明:在一个程序中允许有多个ORG指令,以规定不同程序段的起始位置。 ②END-----汇编结束伪指令; 功能:用来告诉汇编程序,此源程序到此结束。 格式:[标号:] END 说明:在一个程序中有且只有一个END指令。 例如: ORG 1000H START:MOV A,B JNB ACC.7,DONE CPL A DONE:MOV B,A END ③EQU----赋值伪指令; 格式: 字符名称 EQU 数或汇编符号 功能:将右边值赋给左边用户定义的字符 说明:a、由EQU赋的字符可以作数值、数据地址、代码地址。 b、由EQU伪指令所定义的符号必须先定义后使用。 例如:SDGFG EQU 58H ;表示SDGFG=58H ④DB----定义字节伪指令; 格式:[标号:] DB 8位(二进制)数据表。 52
功能:用于告诉汇编程序从指定的地址单元开始,定义若干个字节存储单元的内容。 说明:a、数据表可以是二进制数也可以是ASCⅡ编码,数据之间用逗号分开,ASCⅡ要加单引号,如C,要写成‘C’。 b、它只适应程序存储器。 例如: ORG 1000H FIRST:DB 73H,20H,45H,67H,01H MOV A,#55H DB 34H,67H,89H,70H 执行后的结果如图1所示 ⑤、DW------定义值伪指令; 功能:用来告诉汇编程序从指定的地址单元开始,定义 若干个16位数据(二进制)。 格式:[标号:] DW 字常数或ASCⅡ字符 说明:a、字常数可以是8位也可以是更多位。 b、尽管在存储数据的形式上与DB相同但使用不一样,DB后面只能跟8位的数据或ASCⅡ字符。 C、它只适应程序存储器。 d、单个DW、DB定义的数表个数不得超过80个,多于80个数据应用多个指令完成 例如: ORG 1000H PIOI:DW 5678H,1234H,2379H 结果如图2所示。 ⑥、TA-----数据地址赋值伪指令; 格式:字符名称 DATA 表达式 功能:它的功能是给标号段中的标号赋以数值。 说明:a、本语句与EQU相似,但本语句可以先用后定义; b、在程序中它常用来定义数据地址。 ⑦、BIT-----位地址赋值伪指令;
1000H 73H 1001H 20H 1002H 45H 1003H 67H 1004H 01H 1005H 74H 1006H 55H 1007H 34H 1008H 67H 1009H 89H 100AH 70H
地址: 数据 1000H 56H 1001H 78H 1002H 12H 1003H 34H 1004H 23H 1005H 79H
图1 由DB建立的数据表 图2由DW建立的数据表 53
格式:字符名称 BIT位地址 功能:用于告诉汇编程序,把位地址赋予规定的字符名称,用于位处理程序中。 例如: X0 BIT P1.0 3、汇编语言程序设计方法 1)、程序设计过程 ①建立数学模型 ②选择适当的算法 ③编制程序流程图 ④汇编语言程序设计 ⑤汇编语言程序调试 2)、程序流程图 ①程序流程图的作用 能直观形象地表示各部分的逻辑关系及程序结构,它是设计程序特别是复杂程序的重要工具。 ②程序流程图的组成 端点框 表示程序的开始或结束,用 表示,可在内填上相应文字。 流程线 表示程序的组向,用方向键 表示。 处理框 表示一种处理功能 ;框内用文字说明。用不 表示。 判断框 用 表示,该框用于指示一个判定点,从这点产生分支,在框内就注明测试条件,而测试结果应注明在各分支流程线上。 连接框 连接框用 表示,它表示流程中止而并非流程结束。通常用来辟免流程线交叉,在流程图中标识相同的连接框表示流程相连。 子程序框 54
用 表示,该框表示调用子程序。在该框内填入相应的子程序名称或入口地址。 ③程序流程图的设计 程序流程图的设计将在具体的程序设计方法中针对具体的例子加以介绍。
第二节 顺序与循环程序设计方法 1、 顺序程序设计 1)、顺序结构程序设计方法 建立数学模型 画程序流程图 编写汇编程序 2)、应用举例 例1:设有16位二进制数存放在R0、R1中(R0存放高位),试编写实现16位二进制数“取反加1”的操作程序。 解法1: 程序流程如图3所示,程序如下: ORG 1000H START:MOV A,R1 CPL A ADD A, #01H MOV R1, A MOV A,R0 CPL A ADDC A, #00H MOV R0, A END 解法2:通过将R0、R1分别送DPTR的高低字节,然后利用 INC DPTR实现加1,取反后再用:CPL A这样的指令实现。 例2:设在8031单片机内部RAM的40H单元中存放8位二进制数,要求将其转换成相应BCD码并由高位的顺序存入内部RAM以60H为首址的3个连续单元中,试编写相应程序:
开始 低位取反加1 高位取反加C 结束 图3 程序流程图 55
解:本题的关键是如何将二进制数转换成BCD码。 由数学变换知:8位二进制/100=BCD码的百位数 余数/10= BCD码的十位数 余数= BCD个位数 程序如下: ORG 1000H BINBCD: MOV R0, #60H MOV A, 40H MOV B, #100 DIV AB ;整数存于A中 MOV @R0, A INC R0 MOV A, #10 XCH A, B DIV AB MOV @R0, A INC R0 XCH A, B MOV @R0, A END 思考题:对于任意一个16进制表示的数,如AB9EF087,存放在以20H为首址的单元中,如何将其转化成BCD码? 2、 循环程序设计方法 1)、循环结构程序的组成 ①初始化部分:它是用来设置循环初始化状态,如设置地址指针、循环计数器初值等。 ②循环处理部分:它是重复执行的数据处理程序。 ③循环控制部分:它通过检测循环次数或循环结束条件从而控制程序循环继续与否。 ④结束部分:它是对结果分析处理和存放结果。 56
2)、循环程序设计方法 (1)单循环程序设计方法 ①循环次数是已知的循环程序设计 先分析要解决的问题,建立解决问题的数学模型,然后编写出对应的程序,按已知条件设置程序循环次数。 ②循环次数未知的循环程序设计 先分析要解决的问题,建立解决问题的数学模型,确定待测定循环的参数,在编程过程中,选取合适的判别语句控制程序的循环。 (2) 多循环程序设计方法 多循环程序设计除必须满足单循环程序设计的规则外,尚须符合循环不允许交叉的规定。 3)、应用举例 单循环程序设计举例: 例1:已知80C51单片机使用6MHZ晶振,要求设计一个软件延时程序,延时时间为10ms。 分析:晶振为6MHZ的单片机一个机器周期为2us, 如果采用循环方法,控制程序循环次数,就可以实现定时功能。如图4为程序流程。如程序如下: 周期数 ORG 2000H 1 MOV R0,#0AH;毫秒数 1 DL2:MOV R1,#MT 1 DL1:NOP 1 NOP 2 DJNZ R1,DL1 2 DJNZ R0,DL2 END 定时值的确定: (1+1+2)×2us×MT=1000us
开始1ms延时R0-1 R0R0=0?
10 R0
结束YN图4 程序流程图