单片机第4章习题答案.docx
完整word版第4章单片机原理课后答案

习题1. C51特有的数据类型有哪些?答:C51特有的数据类型有位型bit、特殊位型sbit、8位特殊功能寄存器型sfr和16位特殊功能。
sfr16寄存器型2. C51中的存储器类型有几种,它们分别表示的存储器区域是什么?答:C51中的存储器类型有6种,分别表示的存储器区域是:data:直接寻址的片内RAM低128B,访问速度快bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问idata:间接寻址访问的片内RAM,允许访问全部片内RAMpdata:用Ri间接访问的片外RAM低256Bxdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAMcode:程序存储器ROM 64KB空间3. 在C51中,bit位与sbit位有什么区别?答:bit位类型符用于定义一般的位变量,定义的位变量位于片内数据存储器的位寻址区。
定义时不能指定地址,只能由编译器自动分配。
sbit位类型符用于定义位地址确定的位变量,定义的位变量可以在片内数据存储器位寻址区,也可为特殊功能寄存器中的可位寻址位。
定义时必须指明其位地址,可以是位直接地址,也可以是可位寻址的变量带位号,还可以是可位寻址的特殊功能寄存器变量带位号。
4. 在C51中,通过绝对地址来访问的存储器有几种?答:绝对地址访问形式有三种:宏定义、指针和关键字“_at_”。
5. 在C51中,中断函数与一般函数有什么不同?答:中断函数是C51的一个重要特点,C51允许用户创建中断函数。
中断函数用interruptm修饰符,m的取值为0~31,对应的中断情况如下:0——外部中断01——定时/计数器T02——外部中断13——定时/计数器T14——串行口中断5——定时/计数器T2中断函数需要注意如下几点。
(1) 中断函数不能进行参数传递(2) 中断函数没有返回值(3) 在任何情况下都不能直接调用中断函数(4) 如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同(5) C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容(6) C51编译器从绝对地址8m+3处产生一个中断向量(7) 中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明6. 按给定的存储类型和数据类型,写出下列变量的说明形式。
单片机微型计算机原理及接口技术课后习题答案第4章

单片机微型计算机原理及接口技术课后习题答案第4章4-2 试述指令MOV A,R0和MOV A,@R0的区别两条指令的目的操作数相同,两条指令的区别在于源操作数来源不同:MOV A,R0 指令的源操作数就是R0寄存器的内容;而MOV A,@R0 指令的源操作数是位于存储器单元内,且存储器单元的地址是R0寄存器的内容。
4-3 试述指令MOV A,20H和MOV A,#20H的区别MOV A,20H 源操作数是直接寻址,20H表示源操作数所在存储器单元的地址。
MOV A,#20H 源操作数是立即数寻址,#20H是立即数,也就是源操作数。
4-4 说明一下指令中源操作数所在的存储器类型。
(1)MOV A,#30H; 立即数#30H,就是源操作数,存在于指令中,所以位于程序存储器。
(2)MOV A,30H; 30H是源操作数所在数据存储单元的地址,所以源操作数位于数据存储器。
(3)MOVC A,@A+DPTR;源操作数是变址寻址, 助记符MOVC表示源操作数位于程序存储器。
(4)MOVX A,@DPTR; 源操作数是寄存器间接寻址, 助记符MOVX表示源操作数位于外部数据存储器。
4-5 判断下列指令书写是否正确:(1)MOV A,B; ✔(2)MOV A,#3000H ; ✘,因为A是8位寄存器,而#3000H是16位数值,没法全部存到A里(3)INC,#20H ; ✘只能INC A/direct/Rn/@Ri/DPTR(4)MOV 5,A ; ✔,注意目的操作数是直接寻址方式,不是立即寻址(5)MOV 30H,40H; ✔(6)MOV B,@DPTR ; ✘,@DPTR寻址用于MOVX指令,不能用于MOV指R(7)CJNE 30H,#80H,NEXT ; ✘,CJNE指令格式只能是CJNE A/Rn/@Ri,#data,rel或CJNE A,direct,rel(8)POP A ; ✘只能是直接寻址方式POP direct,正确的是POP ACC(9)PUSH ACC; ✔(10)SJMP 2000H ; ✘rel的范围是-128~127(用补码表示其值)共256B范围4-6 设ACC=12H,B=64H,SP=60H,30H中存放的是78H,试分析下列程序执行后,ACC、B、30H、SP中的内容分别为多少,并画出堆栈示意图。
单片机第4章习题答案(桂电)

第4章习题答案1.MCS-51系列单片机能提供几个中断源、几个中断优先级?各个中断源的优先级怎样确定?在同一优先级中,各个中断源的优先顺序怎样确定?答:MCS-51系列单片机能提供5个中断源,2个中断优先级。
各个中断源的优先级是由特殊功能寄存器IP来确定,IP中和各个中断源对应位为1时,此中断源为高优先级,否则为低优先级。
在同一优先级中,各个中断源的优先顺序是由自然优先级来确定的。
2.简述MCS-51系列单片机的中断响应过程。
答:MCS-51系列单片机的中断响应过程是按照以下顺序执行的:开中断-----中断请求------中断判断-------中断响应-------中断返回。
3.MCS-51系列单片机的外部中断有哪两种触发方式?如何设置?对外部中断源的中断请求信号有何要求?答:MCS-51系列单片机的外部中断有电平触发和边沿触发两种方式。
是由特殊功能寄存器TCON中IT0,IT1的状态确定的,如:IT0为1时外部中断0为边沿触发方式,当INT0外部引脚出现下降沿时向CPU提出中断请求,否则为电平触发方式,当INT0外部引脚出现低电平时向CPU提出中断请求。
4.MCS-51单片机中断响应时间是否固定?为什么?答:MCS-51单片机中断响应时间不固定,因为当中断源向CPU提出中断请求时,CPU 正在执行的指令的指令周期是不一样的。
5.MCS-51单片机如果扩展6个中断源,可采用哪些方法?如何确定它们的优先级?答:一般可采取中断加查询方式,软件先查询到的为高优先级,最后查询到的为低优先级。
6.试用中断技术设计一发光二极管LED闪烁电路,闪烁周期为2s(方波)。
答:用定时器实现ORG 0000HAJMP STARTORG 00B0HAJMP INT-T0START MOV TMOD, #01HMOV TH0,#3CHMOV TL0,#0B0HMOV R0,#10SETB ET0SETB EASETB TR0SJMP $INT-T0:MOV TH0, #3CHMOV TL0,#0B0HDJNZ R0,END-PCPL P1.0MOV R0,#10END-P RETIEND7.当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?答:当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,当新中断源中断级别比正在执行中断源的中断级别高时可响应新的中断请求,否则不能响应新的中断请求。
单片机第4章习题答案

第4章习题答案一、填空题1.机器语言2.机器汇编、手工汇编3.AREA1=1000H、BUF=1004H、TIME=01H、ACK=1006H4.(A)=4FH、(R0)=4BH、(R1)=E5H、(21H)=D8H、(22H)=4BH、(2FH)=E5H二、简答题1.什么叫伪指令?伪指令与指令有什么区别?答:所谓伪指令又称为伪操作,它不象机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编时,由汇编程序处理的操作,它们可以完成如数据定义、分配存储器、指示程序结束等功能。
2.汇编语言的格式是怎样的?汇编语言语句格式为:标号:操作码操作数;注释3.MCS-51系列单片机有哪些伪指令?它们的用途是什么?(1)编起始地址命令ORG功能:规定此命令之后的程序或数据的存放起始地址。
(2)定义字节伪指令格式:[标号:] DB X1,X2, (X)功能:从指定地址开始,存放若干字节数据。
(3)字定义伪指令格式:[标号:] DW Y1,Y2,…,Yn功能:从指定地址开始,存放若干字数据。
(4)汇编结束伪指令END功能:该伪指令指出结束汇编,即使后面还有指令,汇编程序也不处理。
(5)赋值伪指令格式:标号 EQU 表达式功能:将表达式的值(数据或地址)赋给标号。
(6)位定义伪指令格式:[标号] BIT 位地址功能:将位地址赋给标号。
4.汇编语言程序设计分为哪几个步骤?答:汇编语言程序设计一般要经过以下几个步骤:(1)分析问题,明确任务(2)确定算法(3)画出程序流程图(4)编写源程序(5)汇编和调试5.结构化程序设计有哪几种常用的程序结构?答:顺序结构、分支结构、循环结构和子程序结构6.子程序调用时,参数的传递方法有哪几种?答:常用的参数传递方法有:工作寄存器或累加器、指针寄存器、堆栈和程序段等。
7.分析下列程序的功能。
X DATA 30HY DATA 32HMOV A,XJNB ACC.7,TRUECPL AADD A,#01HTRUE:MOV Y,A答:该段程序的功能是:当30H单元的最高位不为0时,则把30H单元的内容送32H 单元,当30H单元的最高位为0时,则把30H单元的内容求反加1后送32单元。
单片机第四章习题答案

第 4 章 单片机内部功能模块习题解答1. 什么是中断?中断有何优点?中断是指计算机在执行程序的过程中,由于计算机系统外界或内部发生某一紧急事件,要求CPU 暂时中止当前的工作转去处理所发生的紧急事件,待处理完后再回到原来被中止的地方,继续原来的工作的过程。
在计算机中引入中断技术具有以下优点:(1)可以提高CPU 的工作效率;(2)便于实时处理;(3)便于故障处理,提高系统的稳定性。
2. MCS-51单片机的中断系统有哪些功能部件组成?分别作什么用?MCS-51单片机的中断系统有4个与中断有关的特殊功能寄存器(TCON 、SCON ),中断允许控制寄存器IE ,中断优先级寄存器IP 和中断顺序查询逻辑等组成。
其功能分别为:TCON 用于寄存定时器T0、T1的溢出中断和外部0INT 、1INT 的中断请求及设置外部中断的触发方式;SVON 的低2位用于作串行发送和接收中断标志;IE 用于设置各中断源允许和禁止;IP 用于设置各中断源的优先级别;中断查询逻辑用于确定中断响应的次序。
3. MCS-51单片机有几个中断源?各中断标志如何产生,又如何清除?MCS-51有五个中断源,它们是:(1)外部中断0(0INT )中断,低电平有效。
通过P3.2引脚引入。
(2)外部中断1(1INT )中断,低电平有效。
通过P3.3引脚引入。
(3)定时/计数器0(T0)溢出中断。
(4)定时/计数器1(T1)溢出中断。
(5)串行口中断,当串行口完成一帧数据的发送和接收时,便请求中断。
中断标志位产生与复位:(1)外部中断0(0INT )中断标志:当外部中断0引脚0INT 上的电平由1变为0时,IE0由硬件置“1”,外部中断0请求中断。
在CPU 响应该中断时由硬件清0。
(2)外部中断1(1INT )中断标志:当外部中断1引脚1INT 上的电平由1变为0时,IE1由硬件置“1”,外部中断1请求中断。
在CPU 响应该中断时由硬件清0。
《单片机原理及接口技术(第2版)张毅刚》第4章习题及答案

《单片机原理及接口技术(第2版)张毅刚》第4章习题及答案《单片机原理及接口技术》(第2版)人民邮电出版社第4章 AT89S51单片机的中断系统思考题及习题41.外部中断1的中断入口地址为 ,定时器1的中断入口地址为。
答:0013H;001BH2.若(IP)=00010100B,则优先级最高者为,最低者为。
答:外部中断1,定时器T13.中断服务子程序与普通子程序有哪些相同和不同之处?答:RETI指令在返回的同时自动清除相应的不可寻址的优先级触发器,以允许下次中断,而RET指令则没有这个操作。
除了这一点两条指令不同外,其它操作都相同。
4.下列说法正确的是。
答:DA. 各中断源发出的中断请求信号,都会标记在AT89S51的IE寄存器中B. 各中断源发出的中断请求信号,都会标记在AT89S51的TMOD 寄存器中C. 各中断源发出的中断请求信号,都会标记在AT89S51的IP寄存器中D. 各中断源发出的中断请求信号,都会标记在AT89S51的TCON 与SCON寄存器中5.AT89S51单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推迟对外部中断请求的响应?答:在一个单一中断的系统里,AT89S51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。
在下述三种情况下,AT89S51将推迟对外部中断请求的响应:(1)AT89S52正在处理同级或更高优先级的中断。
(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。
(3)正在执行的指令是RETI或是访问IE或IP的指令。
如果存在上述三种情况之一,AT89S52将丢弃中断查询结果,将推迟对外部中断请求的响应。
6.中断查询确认后,在下列各种AT89S51单片机运行情况下,能立即进行响应的是。
A. 当前正在进行高优先级中断处理B. 当前正在执行RETI指令C. 当前指令是DIV指令,且正处于取指令的机器周期D. 当前指令是MOV A,R3答:D7.AT89S51单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送,使程序执行转向中的中断地址区。
单片机 第四章答案

LP1: JBC TF0 ,LP2
JB P3.2 , LP1
INC R0
;低电平到,停止定时器1,存储单元地址加1
SJMP LP0
;低电平到,停止定时器1 宽度
LP2: INC @R0
;存储溢出次数加1ms
MOV TH0,#0FCH ;定时1ms
MOV TL0,#18H SJMP LP1
INT1
INT1 为高时T1 开始计数
中断程序结构框架
20.利用定时/计数器T0从P1.0输出周期为1s,脉宽为20ms的正 脉冲信号,晶振频率为12MHz。试设计程序。参照【例4-6】
解:因方式2是8位计数器,其最大定时时间为:256×1 s = 256 s,为实现1 s延时,
可选择定时时间为200 s,再循环5000次。定时时间选定后,可确定计数值为200,则定
时器0的初值为:X = M 计数值=256 200 = 56 。采用定时器0,方式2工作,因此,
TMOD =02H。
ORG 0000H
MOV TMOD,#02H ;置定时器0为方式2
MOV TH1,#56
;置定时器初值
MOV TL1,#56
CLR P1.0 MAIN: MOV R5,#50
;置20 ms计数循环初值 1s
②计算定时500us初值:方式0:X = 213 - 500 = 7692 = 1E0CH
ORG START:MOV
CLR CLR MOV MOV MOV SETB LOOP: JNB CLR MOV MOV INC CJNE MOV CPL JNB CPL SJMP END
0000H TMOD, #00H
ORG 0000H
START:MOV TMOD, #02H;定时器T0工作方式2
单片机课后习题第3,4章参考答案.doc

第3章AT89S51的指令系统参考答案1.答:(1)错(2)错(3)对(4)错(5)错(6)错(7)错(8)对(9)错(10)对(11)对(12)错。
2.答:(A)对(B)对(C)错(D)错。
3.答:A, PC, DPTRo4.答:只能使用直接寻址方式。
5.答:操作码,操作数,操作码。
6.答:1031Ho7.答:程序,数据。
8.答:地址。
9.答:A的内容与B的内容互换。
11・答:(A) ANL A, #87H10.答:(A) =50H, (SP) =50H, (51H) =30H, (52H) =5()H, (PC) =5O3OH(B) ANL A, #0C3H12.答:(A) =0CBHo(C) ORL A, #0CH13.答:(A) =00H, (R3) =0AAHo14.答:(DPH) =3CH, (DPL) =5FH, (SP) =50H16.答:MOV R7, A15.答:(SP) =62H, (61H) =30H, (62H) =70H oPUSH AccMOV A, BMOVX @DPTR, A17.答:(D)o18.答:(C)o19.答:基本型的51子系列单片机,由于其片内RAM的地址范围为OOH—7FH,而80H -FFH为特殊功能寄存器区,而对特殊功能寄存器寻址,只能使用直接寻址方式。
对片内RAM寻址,当使用寄存器间接寻址是采用R0或R1作为间接寻址的,因此R0或RI的内容不能超过7FHo 增强型的52子系列单片机,片内RAM的地址范围为0OH-FFH,因此作为间接寻址寄存器的R0或R1的内容就不受限制。
第4章AT89S51汇编语言程序的设计与调试参考答案1.答:伪指令是程序员发给汇编程序的命令,只有在汇编前的源程序中才有伪指令,即在汇编过程中的用来控制汇编过程的命令。
所谓“伪”是体现在汇编后,伪指令没有相应的机器代码产生。
常用伪指令及其功能如下:ORG (ORiGin)汇编起始地址命令;END(END of assembly)汇编终止命令;EQU (EQUate) 标号赋值命令;DB (Define Byte)定义数据字节命令;DW (Define Word)定义数据字命令;DS (Define Storage)定义存储区命令;BIT位定义命令2.答:手工汇编:通过查指令的机器代码表(表3-2),逐个把助记符指令“翻译”成机器代码, 再进行调试和运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章习题答案
一、填空题
1.机器语言
2.机器汇编、手工汇编
3・ AREA1 二1000H、BUF二1004H、TIME二0111、ACK=1006H
4.(A)二4FH、(R0)二4BH、(R1)二E5H、(21H)二D8H、(22H) =4BH、(2FH) =E5H
二、简答题
1.什么叫伪指令?伪指令与指令有什么区别?
答:所谓伪指令又称为伪操作,它不象机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编吋,由汇编程序处理的操作,它们可以完成如数据定义、分配存储器、指示程序结束等功能。
2.汇编语言的格式是怎样的?
汇编语言语句格式为:
标号:操作码操作数;注释
3.MCS-51系列单片机有哪些伪指令?它们的用途是什么?
(1)编起始地址命令ORG
功能:规定此命令之后的程序或数据的存放起始地址。
(2)定义字节伪指令格式:[标号:]DB X1,X2,…,X n
功能:从指定地址开始,存放若干字节数据。
(3)字定义伪指令格式:[标号:]DW Yl, Y2,…,Yn
功能:从指定地址开始,存放若干字数据。
(4)汇编结束伪指令END
功能:该伪指令指出结束汇编,即使后面还有指令,汇编程序也不处理。
(5)赋值伪指令格式:标号EQU表达式
功能:将表达式的值(数据或地址)赋给标号。
(6)位定义伪指令格式:[标号]BIT位地址
功能:将位地址赋给标号。
4.汇编语言程序设计分为哪几个步骤?
答:汇编语言程序设计一般要经过以下几个步骤:
(1)分析问题,明确任务
(2)确定算法
(3)画出程序流程图
(4)编写源程序
(5)汇编和调试
5.结构化程序设计有哪几种常用的程序结构?
答:顺序结构、分支结构、循环结构和子程序结构
6.子程序调用时,参数的传递方法有哪几种?
答:常用的参数传递方法有:工作寄存器或累加器、指针寄存器、堆栈和程序段等。
7.分析下列程序的功能。
X DATA 30H
Y DATA 3211
MOV A, X
JNB ACC. 7, TRUE
CPL A
ADD A,
TRUE:MOV Y, A
答:该段程序的功能是:当30H单元的最高位不为0时,则把30H单元的内容送32H 单元,当30H单元的最高位为0时,则把30H单元的内容求反加1后送32单元。
8.下列程用段汇编后,从3000H单元开始的各有关存储单元的内容是什么?
ORG 3000H
TABl EQU 3234H
TAB2 EQU 4000H
DB 'START'
DW TABl,TAB2,9000H
答:从3000H 单元开始各单元的内容为:53H、54H、41H、52H、54H、32H、34H、40H、00H、90H、00H
三、应用题
1.
ORG 010011
0100H: E530 MOV A, 3011
0102II: 30E703 JNB ACC. 7, JING
0105II: F4 CPL A
0106II: 2401 ADD A, #01H
0108H: F532 JING: MOV 3211, A
010AII: 80FE SJMP $
2.编成将片内RAM50IK 51H单元中的两个无符号中较小的数存于6011单元中。
0RG 100011
START: CLR C
MOV A, 50H
SUBB A, 5111
JC NEXT
MOV A,51H
NEXT: MOV A, 5011
MOV 6011, A
SJMP $
END
3. 从片内RAM 的2211单元开始有一无符号数据块,其长度在20H 单元,找出数据块中的最 小值,并存于片内RAM 的2111单元。
ORG 200011
CLR A
MOV R7, 2011
MOV RO, #2211
LOOP : CLR C
SUBB
A, @R0 JC NEXT
MOV A, @R0
NEXT: INC RO
叮NZ R7, LOOP
MOV 2111, A
SJMP
$ END
4. 试编一程序将内部RAM301I 〜3FH 单元数据传送到外部RAM 首址为OFOOH 的单元中去。
5. 有两块数据分别在内部RAM 2011〜2911、3011〜3911,现将两块数据对换,试编程。
ORG 200011
MOV R0, #2011
MOV R1,#3OI1
MOV R7, 0AI1
MOV A, @R0
XCH A, @R1
MOV @R0, A
INC R0
LOOP: ORG 200011
MOV R0, #3011
MOV R7,#10H
MOV DPTR, tfOFOOH
MOVX
A, @R0 MOVX
©DPTR, A INC
R0 INC
DPTR SJMP
$
END
LOOP:
INC R1
DJNZ R7, LOOP
SJMP $
END
6.编程实现:
「X X<10
Y= V X210WXV15
L 2X X215
设X变量存于3011单元,y值存于3HI单元。
ORG 1000H
CLR c
MOV A, 30H
CJNE A, #10, NEXT 1
NEXT1: JC NEXT2 ;x<10
CJNE A,#15,NEXT3
NEXT3: JC NEXT4 ;10Wx〈15
RLC A
SJMP NEXT2
NEXT!: MOV B, A
MUL AB
NEXT2: MOV 3111, A
SJMP $
END
7.编程将内部RAM 30H中的压缩BCD码转换成ASCII码,并存入31H和32H单元。
ORG 1000H
MOV R0, #3111
MOV A, 30H
ANL A, #0FH
ORL A, #30H
MOV @R0, A
INC RO
MOV A, 30H
ANL A, #FOH
SWAP A
ORL A,#30H
MOV @R0, A
SJMP $
END
8.在片外2000H 开始的单元屮有100个有符号数,编程统计其屮正数、负数、零的个数。
设在寄存器RO. R1和R2中分别存放正数、负数和零的个数。
9. 从内部RAM 2411单元开始存放有30个用ASCII 码表示的字符和数据,现耍找B 字符, 如果找
到字符就转移到其处理程序,若找不到B 直至找完则停机。
试编程。
解:字符B 的ASCII 码值为66。
ORG 2000H
MOV R0, #2411
MOV R7,#30
MOV A, @R0
LOOP: CJNE A, #66,NEXT1
ACALL CHULI
NEXT1: INC R0 LOOP: NEXT1: NEXT3: ORG 300011
MOV R7,#100
MOV DPTR, #2000H
CLR A
MOV R0, A
MOV Rl, A
MOV R2, A
MOVC A, @A+DPTR
CJNE A, #00, NEXT
1
TNC R2
SJMP NEXT3
JC NEXT2
INC R0
SJMP NEXT3
INC A
DJNZ R7, LOOP
SJMP $
END
DJNE R7, LOOP
SJMP $
END
10. 设有30个无符号数,依次存放在以BLOCK 为首地址的片外RAM 中,要求按照由小到大 排序,并存入原存储区屮。
11. 试编程将内部RAM 26H 单元位2、4、6取反后送P] 口。
ORG 1000H
MOV A, 26H
XRL A, 00010100
MOV Pl, A
SJMP $
END
12. 若单片机的晶振频率为6MIIz,试编写一段延时子程序,其延时时间为500mso ORG 2000H
MOV R3,#10
DELI:
MOV R4,#200 DEL2:
MOV R5, #60 DEL3: DJNZ R5, DEL3
SORT: L00P1: ORG 1000H
MOV R1,#BLOCK
MOV R7, #30
CLR
F0 MOV A, @R1
MOV R2, A INC
R1 CLR
C SUBB
A, @R1 JC
L00P2 SETB F0
MOV A, R2
XCH A, @R1
DEC R1
L00P2: XCH A, @R1
INC R1
DJNZ R7, L00P1
JB F0, SORT
SJMP
$
END
NOP
DJNZ R4,DEL2 DJNZ R3, DELI RET。