MCS-51作业讲解
- 格式:ppt
- 大小:363.00 KB
- 文档页数:78
指令系统作业一、基础知识1.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A、R0和内部RAM中50H、51H、52H单元的内容为何值?MOV A,59HMOV R0,AMOV A,#00HMOV @R0,AMOV A,#25HMOV 51H,AMOV 52H,#70H2.执行下列程序后,A和B寄存器的内容是多少?MOV SP,#3AHMOV A,#20HMOV B,#30HPUSH ACCPUSH BPOP ACCPOP B3.假定外部RAM2000H单元的内容为80H,那么执行下列程序后,A的内容是多少?MOV P2,#20HMOV R0,#00HMOVX A,@R04.假定累加器A的内容为30H。
1000H:MOVC A,@A十PC执行指令后,把程序存储器的哪个单元的内容送累加器A中?5.假定DPTR的内容为8100H,累加器的内容为40H,执行下列指令后,送入的是程序存储器的哪个元的内容?MOVC A,@A十DPTR6.假定(SP)=60H,(ACC)=30H,(B)=70H,(60H)=0FDH,执行下列程序后,SP、60H、61H、62H的内容各是多少?PUSH ACCPUSH B7.假定(SP)=62H,(60H)=0FDH,(61H) =50H,(62H)=7AH,执行下列程序后SP、60H、61H、62H及DPTR的内容各是多少?8.假定(A)=85H,(R0)=20H,(20H) =0AFH,下列执行指令后累加器A的内容及Cy、AC、OV、P的内容是多少?9.假定(A)=85H,(20H)= 0FEH,(Cy)= 1,执行下列指令后累加器A的内容及Cy、AC、OV、P的内容是多少?ADD A,20H10.假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)= 40H,(40H)=00H,执行下列指令后,上述寄存器和存储单元的内容是多少?INC AINC R3INC 30HINC @ R011.假定(A)=56H,(R5)=67H,执行下列指令后A和Cy的内容是多少?A DD A, R5DA A12.假定(A)=0FH,(R7)=19H,(30H)=00H,(R1)= 40H,(40H)=0FFH,执行下列指令后,上述寄存器和存储单元的内容是多少?DEC ADEC R7DEC 30HDEC @R113.分析下列指令序列,写出它所实现的逻辑表达式。
单片机原理及应用与C51程序设计(第三版)第8章作业习题1. 什么是MCS-51单片机的最小系统?答:所谓最小系统,是指一个真正可用的单片机的最小配置系统。
对于单片机内部资源已能够满足系统需要的,可直接采用最小系统。
2. 简述半导体存储器的分类?答:半导体存储器按读写工作方式可分为两种:只读存储器ROM(Read Only Memory)和随机读写存储器RAM(Random Access Memory)。
只读存储器ROM 有MROM-掩膜型ROM, PROM-可编程ROM, EPROM-可擦除的PROM, E2PROM -电擦除的PROM, Flash Memory-快擦型存储器; 随机读写存储器RAM有静态RAM-SRAM, 动态RAM-DRAM, 非易失性RAM-NVRAM。
3. 简述存储器扩展的一般方法。
答:存储器芯片与单片机扩展连接具有共同的规律。
即不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。
另外,电源线接电源线,地线接地线。
4. 什么是部分译码法?什么是全译码法?它们各有什么特点?用于形成什么信号?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。
部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。
全译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线全部参加译码。
这种译码方法中存储器芯片的地址空间是唯一确定的,但译码电路要相对复杂。
译码形成存储器芯片的片选信号线CE。
5. 采用部分译码为什么会出现地址重叠情况,它对存储器容量有何影响?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。
参加译码的地址线对于选中某一存储器芯片有一个确定的状态,而与不参加译码的地址线无关。
也可以说,只要参加译码的地址线处于对某一存储器芯片的选中状态,不参加译码的地址线的任意状态都可以选中该芯片。
第七章作业讲解7-31)8255各口地址(有重叠)PA口0XXX XXXX XXXX XX00 BPB口0XXX XXXX XXXX XX01 BPC口0XXX XXXX XXXX XX10 B控制寄存器0XXX XXXX XXXX XX11 B若选X=1,则各端口地址对应为7FFCH、7FFDH、7FFEH、7FFFH 方式控制字为90H程序ORG 0000HLJMP MAINORG 0100HMAIN: MOV DPTR,#7FFFHMOV A,#90HMOVX @DPTR,ALOOP: MOV DPTR,#7FFCHMOVX A,@DPTRCPL AINC DPTRMOVX @DPTR,ASJMP LOOPEND7-58155各口地址(有重叠)P2 P0RAM:控制寄存器: 0XXX XXX0 0000 0000 B (7E00H)………………………………. (7EXXH) 控制寄存器: 0XXX XXX0 1111 1111 B (7EFFH)IO口寄存器:控制寄存器: 0XXX XXX1 XXXX X000 B (7F00)PA口: 0XXX XXX1 XXXX X001 B (7F01)PB口: 0XXX XXX1 XXXX X010 B (7F02)PC口: 0XXX XXX1 XXXX X011 B (7F03)TL寄存器: 0XXX XXX1 XXXX X100 B (7F04)TH寄存器: 0XXX XXX1 XXXX X101 B (7F05)1)命令字应该为0000 1110B=0EH(PA口为方式0输入,PB和PC均为方式0输出)诊断程序编制方法:先对B口写XXH,检查A口读入是否为XXH,。
正确则循环点亮C口发光管。
程序:ORG 0000HLJMP MAINORG 0030HMAIN: MOV DPTR,#7F00H ;命令口MOV A,#0EHMOVX @DPTR,AMOV DPTR,#7F02H ;写B口MOV A.#XXHMOVX @DPTR,AMOV DPTR,#7F01H ;读A口MOVX A,@DPTRCJNE A,#XXH,ERRMOV DPTR,#7F03H ;C口循环点亮LED灯NOMAL: M OV R7,#06HMOV A,#01HLOOP: MOVX @DPTR,A;LCALL DELAYRL ADJNZ R7,LOOPSJMP NOMALERR: MOV DPTR,#7F03HMOV A.#3FHMOVX @DPTR,ASJMP FINISHDELAY: MOV R7,#0FFHDJNZ R7,$RETFINISH : END2)RAM:控制寄存器: 0XXX XXX0 0000 0000 B (7E00H)………………………………. (7EXXH)控制寄存器: 0XXX XXX0 1111 1111 B (7EFFH)诊断程序编制方法:依次对256个字节循环检测(先对某RAM单元写入XXH,再读取该单元是否为XXH。
MCS-51 单片机定时器/计数器常见习题解答1、根据定时器/计数器0 方式1 逻辑结构图,分析门控位GATE 取不同值时,启动定时器的工作过程。
答:当GATE=0:软件启动定时器,即用指令使TCON 中的TR0 置1 即可启动定时器0。
GATE=1:软件和硬件共同启动定时器,即用指令使TCON 中的TR0 置1 时,只有外部中断INT0 引脚输入高电平时才能启动定时器0。
2、当定时器/计数器的加1 计数器计满溢出时, 溢出标志位TF1 由硬件自动置1,简述对该标志位的两种处理方法。
答:一种是以中断方式工作,即TF1 置1 并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1 清0;另一种以查询方式工作,即通过查询该位是否为1 来判断是否溢出,TF1 置1 后必须用软件使TF1 清0。
3、设MCS-51 单片机fosc=12MHz,要求T0 定时150µs,分别计算采用定时方式0、方式1 和方式2 时的定时初值。
答:方式0 的定时初值:IF6AH方式1 的定时初值:FF6AH方式2 的定时初值:6AH4、设MCS-51 单片机fosc=6MHz,问单片机处于不同的工作方式时,最大定时范围是多少?答:方式0 的最大定时范围:131,072µs方式1 的最大定时范围:16,384µs方式2 的最大定时范围:512µs5、设MCS-51 的单片机晶振为6MHZ,使用T1 对外部事件进行计数,每计数200 次后,T1 转为定时工作方式,定时5ms 后,又转为计数方式,如此反复的工作,试编程实现。
答:#includebit F0=0;void main() {TMOD=0x60; TL1=56;TH1=56;TR1=1;ET1=1;EA =1; While(1);}void serve() interrupt 3 {if (!F0){ TMOD=0x10;TL1=63036%16;TH1=63036/16;F0=~F0;}else{TMOD=0x60;TL1=56;TH1=56;F0=~F0;}}6、用方式0 设计两个不同频率的方波,P1.0 输出频率为200Hz,P1.1 输出频率为100Hz,晶振频率12MHz。
第一章MCS-51 硬件结构1.1引言单片计算机是把CPU(中央处理单元)、一定容量的存储器和若干输入、输出接口等部件集成在一块硅片上的微型计算机,简称单片机。
自1976年美国Intel公司推出第一代单片机系列MCS-48以来,单片机技术蓬勃发展,质量和性能逐年提高,应用领域日益扩大。
目前世界上各大半导体公司所开发并生产的单片机系列,各具特色,阵容强大,品种齐全。
已有几十个系列,数百余品种,可满足各类系统设计的需求。
单片机一问世,就以体积小、功能全、应用便捷和价格低等优点赢得了市场的的欢迎和用户青睐。
目前单片机正在过程控制、数据收集、智能仪表、机电一体化、家用电器以及网络技术等领域中发挥着重要的控制作用。
所有单片机也称微控制器。
微控制器1.2MCS-51 系列早期的MCS-51微控制器具有以下基本特点:(1)8位CPU;(2)片内带振荡器,振荡频率f osc范围1.2~12MHz ,可有时钟输出;(3)128字节片内数据存储器(MCS-52及以上有256字节片内数据存储器);(4)程序存储器寻址范围:64K字节;(5)片外数据程序存储器寻址范围:64K字节;(6)21个字节专用特殊功能寄存器(SFR)(52子序列有26字节,SFR是51系列单片机的重要内部结构,其他51子序列单片机都基于SFR扩展更为强大的功能);(7)4个8位并行I/O接口:P0、P1、P2、P3;(8)1个全双工串行I/O接口,可多机通信;(9)2个(52子序列,3个)16位定时器/计数器;(10)中断系统有5个(52子序列,6个)中断源,可编程为两个优先级;(11)111条指令,含乘法和除法指令;(12)具有独特的位寻址、位处理能力(13)片内采用单总线结构;(14)用单一+5V电源;(15)此外,89C51及89C52还分别有4K或8K字节EEPROM作为程序存储器。
而52子序列是51单片机的最早衍生品,其片内数据存储器增至256个字节;在SFR内增加了一个16位定时器/计数器T2,其功能更为强大和实用,并增加了一个与T2相关的中断源;其他性能均与51子序列相同。
MCS-51单片机大作业通过学习51单片机资料完成以下作业题:1、简述电子计算机的冯诺依曼结构与哈弗结构,指出两种结构的本质区别。
(1)冯诺依曼结构:冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
如图1所示:图1冯诺依曼结构冯诺依曼结构特点:●采用存储程序方式,指令和数据混合存储在同一个存储器中。
即数据和程序在内存中是没有区别的,它们都是内存中的数据,当EIP指针指向哪CPU就加载哪段内存中的数据,如果是不正确的指令格式,CPU就会发生错误中断. 指令和数据都可以送到运算器进行运算,即由指令组成的程序是可以修改的。
●存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。
●指令由操作码和地址组成。
操作码指明本指令的操作类型,地址码指明操作数和地址。
操作数本身无数据类型的标志,它的数据类型由操作码确定。
●通过执行指令直接发出控制信号控制计算机的操作。
指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。
指令计数器只有一个,一般按顺序递增,但执行顺序可按运算结果或当时的外界条件而改变。
●以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器。
●数据以二进制表示。
(2)哈弗结构简述:哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。
哈佛结构是一种并行体系结构。
如图2所示:图2,哈弗结构哈弗结构处理器的主要特点是:●使用两个独立的存储器模块,如图程序存储器和数据存储器,分别存储指令和数据,每个存储模块都不允许指令和数据并存,每个存储器独立编址、独立访问;●使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
程序指令存储和数据存储分开,可以在硬件上读取指令代码和传输数据时使用不同的传输线宽度。
MCS-51指令详解说明:为了使MCS-51单片机初学者快速入门,迅速掌握单片机指令含意、操作码、操作数及对应地址,汇编语言怎样编写等,现按指令操作码按顺序编写。
ORG 0000HNOP ; 空操作指令AJMP L0003 ; 绝对转移指令L0003: LJMP L0006 ; 长调用指令L0006: RR A ; 累加器A内容右移(先置A为88H)INC A ; 累加器A 内容加1INC 01H ; 直接地址(字节01H)内容加1INC @R0 ; R0的内容(为地址) 的内容即间接RAM加1;设R0=02H,02H=03H,单步执行后02H=04HINC @R1 ; R1的内容(为地址) 的内容即间接RAM加1;设R1=02H,02H=03H,单步执行后02H=04HINC R0 ; R0的内容加1 (设R0为00H,单步执行后查R0内容为多少)INC R1 ; R1的内容加1(设R1为01H,单步执行后查R1内容为多少)INC R2 ; R2的内容加1 (设R2为02H,单步执行后查R2内容为多少)INC R3 ; R3的内容加1(设R3为03H,单步执行后查R3内容为多少)INC R4 ; R4的内容加1(设R4为04H,单步执行后查R4内容为多少)INC R5 ; R5的内容加1(设R5为05H,单步执行后查R5内容为多少)INC R6 ; R6的内容加1(设R6为06H,单步执行后查R6内容为多少)INC R7 ; R7的内容加1(设R7为07H,单步执行后查R7内容为多少)JBC 20H,L0017; 如果位(如20H,即24H的0位)为1,则转移并清0该位L0017: ACALL S0019 ; 绝对调用S0019: LCALL S001C ; 长调用S001C: RRC A ; 累加器A的内容带进位位右移(设A=11H,C=0; 单步执行后查A和C内容为多少)DEC A ; A的内容减1DEC 01H ; 直接地址(01H)内容减1DEC @R0 ; R0间址减1,即R0的内容为地址,该地址的内容减1DEC @R1 ; R1间址减1DEC R0 ; R0内容减1DEC R1 ; R1内容减1DEC R2 ; R2内容减1DEC R3 ; R3内容减1DEC R4 ; R4内容减1DEC R5 ; R5内容减1DEC R6 ; R6内容减1DEC R7 ; R7内容减1JB 20H,L002D ; 如果位(20H,即24H的0位)为1则转移L002D: AJMP L0017 ; 绝对转移RET ; 子程序返回指令RL A ; A左移ADD A,#01H ; A的内容与立即数(01H)相加ADD A,01H ; A的内容与直接地址(01H内容)相加ADD A,@R0 ; A的内容与寄存器R0的间址内容相加ADD A,@R1 ; A的内容与寄存器R1的间址内容相加ADD A,R0 ; A的内容与寄存器R0的内容相加ADD A,R1 ; A的内容与寄存器R1的内容相加ADD A,R2 ; A的内容与寄存器R2的内容相加ADD A,R3 ; A的内容与寄存器R3的内容相加ADD A,R4 ; A的内容与寄存器R4的内容相加ADD A,R5 ; A的内容与寄存器R5的内容相加ADD A,R6 ; A的内容与寄存器R6的内容相加ADD A,R7 ; A的内容与寄存器R7的内容相加JNB 30H,L0041 ; 直接位(30H)为0相对转移L0041: ACALL S0100 ; 绝对调用RETI ; 中断返回指令RLC A; 带进位位左移ADDC A,#02H ; A带进位位与立即数(#02H)相加ADDC A,02H ; A带进位位与直接地扯(02H内容)相加ADDC A,@R0 ; A带进位位与R0间扯内容相加ADDC A,@R1 ; A带进位位与R1间扯内容相加ADDC A,R0 ; A带进位位与R0内容相加ADDC A,R1 ; A带进位位与R1内容相加ADDC A,R2 ; A带进位位与R2内容相加ADDC A,R3 ; A带进位位与R3内容相加ADDC A,R4 ; A带进位位与R4内容相加ADDC A,R5 ; A带进位位与R5内容相加ADDC A,R6 ; A带进位位与R6内容相加ADDC A,R7 ; A带进位位与R7内容相加JC L0095 ; 进位为1转移NOPAJMP L0017 ; 绝对转移ORL 02H,A ; 直接地址内容与A或ORL 02H,#02H; 直接地址内容与立即数或ORL A,#44H ; A与立即数或ORL A,02H ; A与直接地址内容或ORL A,@R0 ; A与R0间址内容或ORL A,@R1 ; A与R1间址内容或ORL A,R0 ; A与R0内容或ORL A,R1 ; A与R1内容或ORL A,R2 ; A与R2内容或ORL A,R3 ; A与R3内容或ORL A,R4 ; A与R4内容或ORL A,R5 ; A与R5内容或ORL A,R6 ; A与R6内容或ORL A,R7 ; A与R7内容或JNC L0017 ; 进位为0转移ACALL L0017 ; 绝对调用ANL 02H,A ; 直接地址与A与ANL 02H,#02H; 立即数与直接地址与ANL A,#02H ; A与立即数与ANL A,02H ; A与直接地址与ANL A,@R0 ; A与R0间址与ANL A,@R1 ; A与R1间址与ANL A,R0 ; A与R0与ANL A,R1 ; A与R1与ANL A,R2 ; A与R2与ANL A,R3 ; A与R3与ANL A,R4 ; A与R4与ANL A,R5 ; A与R5与ANL A,R6 ; A与R6与ANL A,R7 ; A与R7与JZ L0084 ; A为零转移L0084: AJMP L0017 ; 绝对转移XRL 01H,A ; 直接地址与A异或XRL 02H,#01H; 直接地址与立即数异或XRL A,#01H ; A与立即数异或XRL A,01H ; A与直接地址异或XRL A,@R0 ; A与R0间址址异或XRL A,@R1 ; A与R1间址址异或XRL A,R0 ; A与R0异或XRL A,R1 ; A与R1异或XRL A,R2 ; A与R2异或XRL A,R3 ; A与R3异或XRL A,R4 ; A与R4异或L0095: XRL A,R5 ; A与R5异或XRL A,R6 ; A与R6异或XRL A,R7 ; A与R7异或JNZ L0084 ; A不为零转L009A: ACALL L0084 ; 绝对调用ORL C,01H ; 直接位或到进位JMP @A+DPTR ; 相对于DPTR间接转MOV A,#01H ; 立即数送AMOV 01H,#02H ; 立即数送直接地址MOV @R0,#01H ; 立即数送间址R0MOV @R1,#02H ; 立即数送间址R1MOV R0,#01H ; 立即数送R0MOV R1,#01H ; 立即数送R1MOV R2,#01H ; 立即数送R2MOV R3,#01H ; 立即数送R3MOV R5,#01H ; 立即数送R5MOV R6,#01H ; 立即数送R6MOV R7,#01H ; 立即数送R7SJMP L00BA ; 短转移L00BA: AJMP L0095 ; 绝对转移ANL C,02H ; 直接地址与进位与ORG 00C0H ;MOV 02H,01H ; 直接地址送直接地址MOV 01H,@R0 ; 间址R0送直接地址MOV 01H,@R1 ; 间址R1送直接地址MOV 01H,R0 ; R0送直接地址MOV 01H,R1 ; R1送直接地址MOV 01H,R2 ; R2送直接地址MOV 01H,R3 ; R3送直接地址MOV 01H,R4 ; R4送直接地址MOV 01H,R5 ; R5送直接地址MOV 01H,R6 ; R6送直接地址MOV 01H,R7 ; R7送直接地址NOPMOV DPTR,#1234H; 建立数据指针地址为1234HACALL L00BA ; 绝对调用MOV 03H,C ; 进位送03H位(即20H的03位)MOVC A,@A+DPTR ; 由A+DPTR寻扯的程序存贮器字节送ASUBB A,#01H ; A减去立即数和进位位SUBB A,02H ; A减去直接地址内容和进位位SUBB A,@R0 ; A减去R0间接RAM和进位位SUBB A,@R1 ; A减去R1间接RAM和进位位SUBB A,R0 ; A减去R0和进位位SUBB A,R1 ; A减去R1和进位位SUBB A,R2 ; A减去R2和进位位SUBB A,R3 ; A减去R3和进位位SUBB A,R4 ; A减去R4和进位位SUBB A,R5 ; A减去R5和进位位SUBB A,R6 ; A减去R6和进位位SUBB A,R7 ; A减去R7和进位位ORL C,/00H ; 直接位的反或到进位AJMP L0084 ; 绝对转移MOV C,03H ; 直接位数送进位INC DPTR ; 数据指针加1MUL AB ; A乘以BNOP ; A5H为二字节空操作指令NOPMOV @R0,05H ; 直接字芯送R0间接RAMMOV @R1,05H ; 直接字芯送R1间接RAMMOV R1,05H ; 直接字芯送R1S0100: MOV R2,05H ; 直接字芯送R2MOV R3,05H ; 直接字芯送R3MOV R4,05H ; 直接字芯送R4MOV R5,05H ; 直接字芯送R5MOV R6,05H ; 直接字芯送R6MOV R7,05H ; 直接字芯送R7ANL C,/04H ; 直接位的反与到进位ACALL S0100 ; 绝对调用CPL 04H ; 直接位取反CPL C ; 进位取反CJNE A,#01H,L0139 ; 立即数与A比较,不相等则转移CJNE A,01H,L0139 ; 直接字节与A比较,不相等则转移CJNE @R0,#01H,L0139 ; 立即数与R0间接RAM比较,不相等则转移CJNE @R1,#01H,L0139 ; 立即数与R1间接RAM比较,不相等则转移CJNE R0,#01H,L0139 ; 立即数与R0比较,不相等则转移CJNE R1,#01H,L0139 ; 立即数与R1比较,不相等则转移CJNE R2,#01H,L0139 ; 立即数与R2比较,不相等则转移CJNE R3,#01H,L0139 ; 立即数与R3比较,不相等则转移CJNE R4,#01H,L0139 ; 立即数与R4比较,不相等则转移CJNE R5,#01H,L0139 ; 立即数与R5比较,不相等则转移CJNE R6,#01H,L0139 ; 立即数与R6比较,不相等则转移CJNE R7,#01H,L0139 ; 立即数与R7比较,不相等则转移PUSH 00H ; 直接字节进栈,SP加1L0139: AJMP L0084 ; 绝对转移CLR 04H ; 直接位清零CLR C; 清零进位SWAP A ; A左环移四位(A的二个半字节交换)XCH A,05H ; 交换A和直接字节XCH A,@R0 ; 交换A和R0间接RAMXCH A,@R1 ; 交换A和R1间接RAMXCH A,R0 ; 交换A和R0XCH A,R1 ; 交换A和R1XCH A,R2 ; 交换A和R2XCH A,R3 ; 交换A和R3XCH A,R4 ; 交换A和R4XCH A,R5 ; 交换A和R5XCH A,R6 ; 交换A和R6XCH A,R7 ; 交换A和R7POP 00H ; 直接字节出栈,SP减1ACALL L0139 ; 绝对调用SETB 03H ; 置位直接位SETB C ; 置位进位DA A ; A的十进制加法调熊DJNZ 01H,L0139 ; 直接字节减1,不为零则转移XCHD A,@R0 ; 交换A和R0间接RAM的低4位XCHD A,@R1 ; 交换A和R1间接RAM的低4位L0158: DJNZ R0,L0139 ; R0减1,不为零则转移DJNZ R1,L0158 ; R1减1,不为零则转移DJNZ R2,L0158 ; R2减1,不为零则转移DJNZ R3,L0158 ; R3减1,不为零则转移DJNZ R4,L0158 ; R4减1,不为零则转移DJNZ R5,L0158 ; R5减1,不为零则转移DJNZ R6,L0158 ; R6减1,不为零则转移DJNZ R7,L0158 ; R7减1,不为零则转移MOVX A,@DPTR ; 外部数据(16位地址)送AL0169: NOPAJMP L0139 ; 绝对转移MOVX A,@R0 ; R0间址即外部数据(8位地址)送AMOVX A,@R1 ; R1间址即外部数据(8位地址)送ACLR A; 清零AMOV A,05H ; 直接字节送AMOV A,@R0 ; R0间接RAM送AMOV A,@R1 ; R1间接RAM送AMOV A,R0 ; R0送AMOV A,R1 ; R1送AMOV A,R2 ; R2送AMOV A,R3 ; R3送AMOV A,R4 ; R4送AMOV A,R5 ; R5送AMOV A,R6 ; R6送AMOV A,R7 ; R7送AMOVX @DPTR,A ; A送外部数据(16位地址)ACALL L0169 ; 绝对调用MOVX @R0,A ; A送R0间址即外部数据(8位地址)MOVX @R1,A ; A送R1间址即外部数据(8位地址)CPL A ; A取反MOV 05H,A ; A送直接字节MOV @R0,A ; A送R0间址即间接RAMMOV @R1,A ; A送R1间址即间接RAMMOV R0,A ; A送R0MOV R1,A ; A送R1MOV R2,A ; A送R2MOV R3,A ; A送R3MOV R4,A ; A送R4MOV R5,A ; A送R5MOV R6,A ; A送R6MOV R7,A ; A送R7END。