单片机指令系统习题(000001).pdf

上传人:Q****o 文档编号:56612431 上传时间:2022-11-02 格式:PDF 页数:12 大小:165.45KB
返回 下载 相关 举报
单片机指令系统习题(000001).pdf_第1页
第1页 / 共12页
单片机指令系统习题(000001).pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《单片机指令系统习题(000001).pdf》由会员分享,可在线阅读,更多相关《单片机指令系统习题(000001).pdf(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1 第四章汇编语言程序设计第一节汇编语言源程序的格式和伪指令(一)学习要求1、掌握汇编语言源程序格式和伪指令。2、掌握各种伪指令功能。(二)内容提要一:汇编语言源程序的格式1、语句格式汇编语言源程序是由汇编语句(即指令)组成的。汇编语言一般由四部分组成。其典型的汇编语句格式如下:标号:操作码操作数;注释START:MOV A,30H;A(30H)(1)标号段标号是用户定义的符号地址。(2)操作码段操作码段是每一语句中不可缺少的部分,也是语句的核心部分,用于指示计算机进行何种操作,汇编程序就是根据这一字段生成目标代码的。(3)操作数段指出了参与操作的数据或存放该数据的地址。通常有目的操作数和源操

2、作数之分。(4)注释段为了增强程序的可读性,可在某行指令的后面用分号起头,加上注释,用以说明该条指令或该段程序的功能、作用,以供编程人员参考。此注释内容程序汇编时CPU不予处理,不产生目标代码。二:伪指令1、定位伪指令ORG(Origin)格式:标号:ORG m m:16 位二进制数,代表地址。功能:指出汇编语言程序通过编译,得到的机器语言程序的起始地址。2、定义字节伪指令DB(Define Byte)格式:标号:DB X1,X2,Xn Xn:单字节二进制、十进制、十六进制数,或以,?括起来的字符串,数据符号。功能:定义程序存储器从标号开始的连续单元,用来存放常数、字符和表格。3、定义字伪指令

3、DW(Define Word)格式:标号:DW Y1,Y2,Yn Yn:双字节二进制、十进制、十六进制数,或以,?括起来的字符串,数据符号。功能:同DB,不同的是为16 位数据。4、汇编结束命令END 格式:标号:END 功能:END 是汇编语言源程序的汇编结束标志,在它后面所写的指令均不予处理。5、等值命令EQU 格式:字符名称EQU 数或汇编符号功能:将一个数或特定的汇编符号赋予规定的字符名称。先定义后使用。6、数据地址赋值命令DATA 格式:字符名称DATA表达式功能:将数据地址或代码地址赋予规定的字符名称2(三)习题与思考题1、汇编语言源程序的格式及含义是什么?2、什么叫伪指令?伪指令

4、与指令有什么区别?第二节汇编语言源程序汇编(一)学习要求(1)掌握汇编程序的过程。(2)了解机器汇编与人工汇编的区别。(二)内容提要用汇编语言编写的源程序称为汇编语言源程序。汇编通常由专门的汇编程序来进行,通过编译后自动得到对应于汇编源程序的机器语言目标程序,这个过程叫机器汇编。另外还可用人工汇编。一、汇编程序的汇编过程汇编过程是将汇编语言源程序翻译成目标程序的过程。汇编程序是两次扫描。第一次扫描是进行语法检查并建立该源程序使用的全部符号名字表。在这个表中,每个符号名字后面跟着一个对应的值。第一次扫描中如有错误则显示出错信息,扫描完,显示出错数目,然后返回编辑状态。这时可对源程序进行修改。如没

5、有错误可进行第二次扫描,最后生成目标程序的机器码并得到对应于符号地址(即标号地址)的实际地址值。第二次扫描还产生相应的列表文件,此文件中有与每条源程序相对应的机器码、地址和编辑行号以及标号地址的实际地址等,可作为程序调试时使用。二、人工汇编由程序员根据MCS-51 的指令集将汇编语言源程序的指令逐条人工翻译成机器码的过程叫人工汇编。人工汇编同样采用两次汇编方法。第一次汇编,首先查出各条指令的机器码,并根据初始地址和各条指令所占的字节数,确定每条指令所在的地址单元。第二次汇编,求出标号地址所代表的实际地址及相对应地址偏移量的具体补码值。例:对下列程序进行人工汇编ORG 1000H START:M

6、OV R7,#200 DLY1:NOP NOP NOP DJNZ R7,DLY1 RET 第一次汇编查指令集,确定每条指令的机器码和字节数。通过ORG 伪指令可依次确定各指令的首址。结果如下:地址指令码ORG 1000H 1000H 7F C8 START:MOV R7,#200 1002H 00 DLY1:NOP 1003H 00 NOP 1004H 00 NOP 1005H DF 地址偏移量rel DJNZ R7,DLY1 1007H 22 RET 第二次汇编计算出转移指令中的地址偏移量rel。当 DJNZ R7,DLY1 指令中的条件成立时,程序将发生转移,从执行这条指令后的当文档编码:

7、CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 H

8、I7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 Z

9、J1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编

10、码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1

11、 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7

12、 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文

13、档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F53 前地址转移到DLY1 标号地址上。因此,地址偏移量rel=1002H1007H=-05H,补码表示的偏移量为0FBH。将计算结果填入第一次汇编时待定的偏移量值处。人工汇编很麻烦而且容易出错,一般不采用。(三)习题与思考题1、机器汇编程序两次扫描的过程及作用是什么?2、人

14、工汇编与机器汇编的的区别是什么?第三节汇编语言的程序举例(一)学习要求(1)掌握顺序、循环、子程序、分支程序。(2)掌握延时程序的设计方法。(二)内容提要1、程序设计的基本步骤一般步骤为:(1)分析题意,明确要求;(2)建立思路,确定算法;(3)编制框图,绘出流程;(4)编写程序,上机调试;显然,算法和流程是至关重要的。程序结构有简单顺序、分支、循环和子程序等几种基本形式。2、画流程图画流程图是指用各种图形、符号、指向线等来说明程序设计的过程。国际通用的图形和符号说明如下:椭圆框:起止框,在程序的开始和结束时使用。矩形框:处理框,表示要进行的各种操作。菱形框:判断框,表示条件判断,以决定程序的

15、流向。指向线:流程线,表示程序执行的流向。圆圈:连接符,表示不同页之间的流程连接。各种几何图形符号如下图所示。一、简单程序的设计例 4-1 已知两个压缩BCD 码分别放在内部RAM 的 31H30H 和 33H 32H 等 4 个单元中,试编程求和,结果存入R4R3R2 中。分析:流程如图:程序如下:ORG 0000H LJMP MAIN ORG 0040H MAIN:MOV A,30H ADD A,32H DA A MOV R2,A MOV A,31H ADDC A,33H DAA 文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3

16、H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6

17、U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F

18、5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1

19、Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10

20、K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K

21、5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3

22、P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F54 MOV R3,A CLR A MOV ACC.0,C MOV R4,A HERE:SJMP HERE END 例 4-2利用查表指令将内部RAM 中 20H 单元的压缩BCD 码拆开,转换成相应的ASCII码,存入21H、22H 中,高位存在22H。分析:控制流程图(略),程序如下:START:MOV DPTR,#TABLE MOV A,20H ANL A,#0FH

23、MOVC A,A+DPTR MOV 21H,A MOV A,20H ANL A,#0F0H SWAP A MOVC A,A+DPTR MOV 22H,A SJMP TABLE:DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 二、分支程序设计1、单分支程序单分支结构程序使用转移指令实现,即根据条件对程序的执行进行判断,满足条件是转移执行,否则顺序执行。在 MCS-51 指令系统中条件转移指令有:(1)判 A 转移指令JZ、JNZ;(2)判位转移指令JB、JNB、JBC、JC、JNC;(3)比较转移指令CJNE;(4)减 1 不为 0 转移指令DJNZ;

24、例 4-3假定在外部RAM 中有 ST1、ST2 和 ST3 共 3 个连续单元,其中ST1、ST2 单元中分别存放着两个8 位无符号数,要求找出其中的大数并存入ST3 单元。分析:两个无符号数的大小比较可利用两数相减是否有借位来判断,流程图和程序如下所示:START:CLRC MOV DPTR,#ST1 MOVX A,DPTR MOV R7,A INC DPTR MOVX A,DPTR SUBB A,R7 JC BIG1 MOVX A,DPTR SJMP BIG2 文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I

25、10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E

26、3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7

27、L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N

28、8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F

29、2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:C

30、K7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI

31、7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F55 BIG1:XCH A,R7 BIG2:INC DPTR MOVX DPTR,A SJMP 2、多分支程序(1)嵌套分支结构例 4-4 设变量 X 存放于 30H 单元,函数值Y 存放 31H 单元。试按照式:1 X0 0 X=0 的要求给Y 赋值Y=-1 X0 分析:X 是有符号数,判断符号位是0 还是 1 可利用JB 或 JNB 指令。判断X 是否等于0则直接可以使用累加器A 的判

32、0 指令。流程、程序如右:START:MOV A,30H JZ OVER JNB ACC.7,LAB1 MOV A,#0FFH SJMP OVER LAB1:MOV A,#1 OVER:MOV 31H,A SJMP(2)多重分支结构利用 MCS-51 单片机的散转指令JMP A+DPTR,可方便地实现多重分支控制,因此,又称为散转程 序。假定 多 路 分支 的 最大 序 号 为n,则分支的结构如图所示。例 4-5根据条件0、1、2、n,分别转向处理程序PRG0、PRG1、PRGn,条件 K 设在 R2 中。START:MOV DPRT,#TABLE MOV A,R2 ADD A,R2 JNC

33、NEXT INC DPH NEXT:JMP A+DPTR TABLE:AJMP PRG0 AJMP PRGn 文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F

34、5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1

35、Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10

36、K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K

37、5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3

38、P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I

39、10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F56 PRG0:PRGn:三、循环程序设计1、循环程序的结构循环程序包括以下四个部分:置循环初值循环体循环控制变量修改循环终止控制常用于循环控制的指令有:D

40、JNZ、CJNE、JC、JNC 等控制类指令。2、单循环终止循环控制采用计数的方法,即用一个寄存器作为循环次数计数器,每次循环后计数加 1 或减 1,达到终止值后退出循环。例 4-6 计算 50 个 8 位二进制数(单字节)之和。要求:50 个数存放在30H 开头的内部RAM 中,和放在R6R7 中。分析:采用DJNZ 循环体的流程框图如下页所示,在参考程序中,R0 为数据地址指针,R2 为减法循环计数器。在使用DJNZ 控制时,循环计数器初值不能为0,当为0 时,第一次进入循环执行到DJNZ 时,减 1 使 R2 变为 FFH,循环次数成了256,显然不合题意。START:MOV R6,#0

41、 MOV R7,#0 MOV R2,#50 MOV R0,#30H LOOP:MOV A,R7 ADD A,R0 MOV R7,ACLR AADDC A,R6 MOV R6,AINC R0 DJNZ R2,LOOP SJMP$3、多重循环如果在一个循环程序中嵌套了其他的循环程序,称为多重循环程序。在用软件实现延时时显得特别有用。例 4-7 设计 1 秒延时子程序,假设fosc=12MHz。分析:软件延时与指令的执行时间关系密切,在使用12MHz 晶振时,一个机器周期的时间为 1,us,执行一条DJNZ 指令的时间为2us,我们可以采用三重循环的方法写出延时1秒的子程序流程、程序如右图所示:DE

42、LAY:MOV R7,#10;文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5

43、F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P

44、1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I1

45、0K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3

46、K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L

47、3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8

48、I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F5文档编码:CK7L3P1Q3H1 HI7N8I10K6U7 ZJ1F2E3K5F57 DL3:MOV R6,#200;DL2:MOV R5,#250;DL1:DJNZ R5,DL1;DJNZ R6,DL2;DJNZ R7,DL3;RET 4、按条件转移控制的循环例 4-8把内部 RAM 中从 ST1 地址开始存放的

49、数据传送到以ST2 开始的存储区中,数据块长度未知,但已知数据块的最后一个字节内容为00H,而其它字节均不为0。并设源地址与目的地址空间不重复。分析:显然,我们可以利用判断每次传送的内容是否为0 这一条件来控制循环。也可用CJNE 来比较与0 是否相等设计。利用判A 转移控制的循环流程图如右图所示。START:MOV R0,#ST1 MOV R1,#ST2 LOOP:MOV A,R0 JZ ENT MOV R1,A INC R0 INC R1 SJMP LOOP ENT:RET 四、查表程序设计用于查表的指令有两条:MOVC A,APC;MOVC A,ADPTR;当使用 DPTR 作为基址寄存

50、器时查表比较简单,查表的步骤分三步1)基址(表格首地址)送DPTR 数据指针;2)变址值(在表中的位置是第几项)送累加器A;3)执行查表指令MOVC A,ADPTR,进行读数,查表结果送回累加器A。当使用 PC 作为基址寄存器时,由于PC 本身是一个程序计数器,与指令的存放地址有关,查表时其操作有所不同。查表的步骤也分三步:1)变址值(在表中的位置是第几项)送累加器A;2)偏移量(查表指令的下一条指令的首地址到表格首地址之间的字节数)+A A;(修正)3)执行查表指令MOVC A,A PC。例 4-9 二位十六进制数与ASCII 码的转换程序。设数值在R2 中,结果低位存在R2中,高位存在R3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com