单片机原理及接口技术课后习题答案三
- 格式:wps
- 大小:78.00 KB
- 文档页数:9
第3章 MCS-51系列单片机的指令系统3-1解答:指令是规定计算机进行某种操作的命令,一台计算机所能执行的指令集合称为该计算机的指令系统。
计算机内部只识别二进制数,因此,能别计算机直接识别、执行的指令时使用二进制编码表示的指令,这种指令别称为机器语言指令。
以助记符表示的指令就是计算机的汇编语言指令。
3-2解答:[标号:] <操作码> [操作数] [;注释]3-3解答:MCS-51系列单片机提供了7种寻址方式:(1)立即寻址:操作数在指令中直接给出,立即数前面有“#”。
(2)直接寻址:在指令中直接给出操作数地址。
对应片内低128个字节单元和特殊功能寄存器。
(3)寄存器寻址:以寄存器的内容作为操作数。
对应的寄存器有:R0~R7、A、AB寄存器和数据指针DPTR。
(4)寄存器间接寻址:以寄存器的内容作为RAM地址,该地址中的内容才是操作数。
对应片内RAM的低128个单元采用R0、R1作为间址寄存器,片外RAM低256个单元可用R0、R1作为间址寄存器,整个64KB空间可用DPTR作为间址寄存器。
(5)变址寻址:以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数地址。
对应片内、片外的ROM空间。
(6)相对寻址:只在相对转移指令中使用。
对应片内、片外的ROM空间。
(7)位寻址:对可寻址的位单独进行操作。
对应位寻址区20H~2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。
3-4解答:直接寻址方式。
3-5解答:寄存器间接寻址方式。
3-6解答:立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。
3-7解答:变址寻址方式3-8解答:对于8052单片机内部RAM的高128B,必须采用寄存器间接寻址方式进行访问。
3-9解答:外部数据传送指令有6条:MOVX A,@DPTR MOVX @DPTR,AMOVX A,@Ri MOVX @Ri,AMOVC A,@A+DPTR MOVC A,@A+PC(1)MOVX A,@R1 MOVX A,@DPTR都是访问片外RAM,但二者寻址范围不同。
单片机原理与接口技术第三版课后答案【篇一:单片机原理及接口技术课后答案李朝青 (第三版)】lass=txt>第一章1.单片机具有哪些特点(1)片内存储容量越来越大。
(2抗干扰性好,可靠性高。
(3)芯片引线齐全,容易扩展。
(4)运行速度高,控制功能强。
(5)单片机内部的数据信息保存时间很长,有的芯片可以达到100年以上。
2. 89c51单片机内包含哪些主要逻辑功能部件?答:80c51系列单片机在片内集成了以下主要逻辑功能部件:(l)cpu(中央处理器):8位(2)片内ram:128b(3)特殊功能寄存器:21个(4)程序存储器:4kb(5)并行i/o口:8位,4个(6)串行接口:全双工,1个(7)定时器/计数器:16位,2个(8)片内时钟电路:1个3.什么是微处理器(cpu)、微机和单片机?答:微处理器本身不是计算机,但它是小型计算机或微机的控制和处理部分。
微机则是具有完整运算及控制功能的计算机,除了微处理器外还包括存储器、接口适配器以及输入输出设备等。
单片机是将微处理器、一定容量的ram、rom以及i/o口、定时器等电路集成在一块芯片上,构成的单片微型计算机。
4. 微型计算机怎样执行一个程序?答:通过cpu指令,提到内存当中,再逐一执行。
5.什么是嵌入式系统?他有哪些类型?为什么说单片机是典型的嵌入式系统?答; 嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
它有嵌入式微处理器、嵌入式微控制器、嵌入式dsp处理器、嵌入式片上系统等。
嵌入式系统的出现最初是基于单片机的。
它从体系结构到指令系统都是按照嵌入式应用特点专门设计的,能最好的满足面对控制对象,应运系统的嵌入、现场的可靠运行以及非凡的控制品质要求。
因此,她是典型的嵌入式系统。
第二章1.89c51单片机内包含哪些主要逻辑功能部件?答:80c51系列单片机在片内集成了以下主要逻辑功能部件:(l)cpu(中央处理器):8位(2)片内ram:128b(3)特殊功能寄存器:21个(4)程序存储器:4kb(5)并行i/o口:8位,4个(6)串行接口:全双工,1个(7)定时器/计数器:16位,2个(8)片内时钟电路:1个2.89c51的ea端有何用途?3. 89c51的存储器分哪几个空间?如何区别不同空间的寻址?答:rom(片内rom和片外rom统一编址)(使用movc)(数据传送指令)(16bits地址)(64kb)片外ram(movx)(16bits地址)(64kb)片内ram(mov)(8bits地址)(256b)4. 简述89c51片内ram的空间分配。
单片微机原理与接口技术-基于STC15系列单片机(第2版)习题部分第1章一、填空题1. 125= 01111101B= 7d H=( 0001 0010 0101)8421BCD码=(0110001 0110010 0110101)ASCII码。
2. 微型计算机由CPU、存储器、I/O 接口以及连接他们的总线组成。
3. 微型计算机的CPU是通过地址总线、数据总线、控制总线与外围电路进行连接与访问的,其中,地址总线用于CPU寻址,地址总线的数据量决定CPU的最大寻址能力;数据总线用于CPU与外围器件爱存储器、I/O接口)交换数据,数据总线的数量决定CPU一次交换数据能力;控制总线用于确定CPU与外围器件的交换数据的类型。
4. I/O 接口的作用是CPU与输入/输出设备的连接桥梁,相当于一个数据转换器。
5. 按存储性质分,微型计算机存储器分为_ _程序存储器______和数据存储器两种类型。
6. 16位CPU是指数据总线的位数为16位。
7 若CPU地址总线的位数为16,那么CPU的最大寻址能力为64K 。
8. 微型计算机执行指令的顺序是按照在程序存储中的存放顺序执行的。
在执行指令时包含取指、指令译码、执行指令三个工作过程。
9. 微型计算机系统由微型计算机和输入/输出设备组成。
10. 微型计算机软件的编程语言包括高级语言、汇编语言和机器语言三种类型。
二、选择题1.当CPU的数据总线位数为8位时,标志着CPU一次交换数据能力为D。
A. 1位B. 4 位C. 16位D. 8位2. 当CPU地址总线为8位时,标志着CPU的最大寻址能力为 C 。
A. 8个空间B. 16个空间C. 256个空间D. 64K个空间3. 微型计算机程序存储器空间一般由 A 构成。
A. 只读存储器B. 随机存取存储器4. 微型计算机数据存储器空间一般由 B 构成。
A. 只读存储器B. 随机存取存储器三、判断题1. 键盘是微型计算机的基本组成部分。
第三章1、指令:CPU根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言汇编语言:用助记符、符号和数字来表示指令的程序语言高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言2、见第1题3、操作码[目的操作数] [,源操作数]4、寻址方式寻址空间立即数寻址程序存储器ROM直接寻址片内RAM低128B、特殊功能寄存器寄存器寻址工作寄存器R0-R7、A、B、C、DPTR 寄存器间接寻址片内RAM低128B、片外RAM 变址寻址程序存储器(@A+PC,@A+DPTR)相对寻址程序存储器256B范围(PC+偏移量)位寻址片内RAM的20H-2FH字节地址、部分SFR5、SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址6、MOV A,40H ;直接寻址(40H)→AMOV R0,A ;寄存器寻址(A)→R0MOV P1,#0F0H ;立即数寻址0F0→P1MOV @R0,30H ;直接寻址(30H)→(R0)MOV DPTR,#3848H ;立即数寻址3848H→DPTRMOV 40H,38H ;直接寻址(38H)→40HMOV R0,30H ;直接寻址(30H)→R0MOV P0,R0 ;寄存器寻址(R0)→P0MOV 18H,#30H ;立即数寻址30H→18HMOV A,@R0 ;寄存器间接寻址((R0))→AMOV P2,P1 ;直接寻址(P1)→P2最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H 注意:→左边是内容,右边是单元7、用直接寻址,位寻址,寄存器寻址8、MOV A,DATA ;直接寻址2字节1周期MOV A,#DATA ;立即数寻址2字节1周期MOV DATA1,DATA2 ;直接寻址3字节2周期MOV 74H,#78H ;立即数寻址3字节2周期如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A9、MOV A,@R0 ;((R0))=80H→AMOV @R0,40H ;(40H)=08H→(R0)MOV 40H,A ;(A)=80→40HMOV R0,#35H ;35H→R0最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H10、用直接寻址,位寻址,寄存器寻址11、只能采用寄存器间接寻址(用MOVX指令)12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)高128字节:直接寻址,位寻址,寄存器寻址13、采用变址寻址(用MOVC指令)14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。
单片机原理及接口技术课后答案第一题:简述单片机的工作原理单片机是一种集成电路,内部拥有中央处理器、内存、输入/输出端口等多种功能模块。
单片机的工作原理主要分为三个步骤:取指、执行和存储。
在取指阶段,单片机通过地址总线从存储器中获取指令,并将其存储在指令寄存器中。
指令寄存器中的指令会被解码器解码,确定具体的操作。
在执行阶段,CPU根据指令寄存器中的指令执行相应的操作。
这包括运算操作、逻辑操作、移位操作等。
执行的结果会被存储在通用寄存器中。
在存储阶段,CPU将操作结果存储在内存或者其他寄存器中。
同时,如果需要将结果输出到外设,CPU会通过输出端口将数据传输到相应的外设。
通过这些步骤的循环执行,单片机可以完成各种任务,实现各种功能。
第二题:简述单片机的输入/输出接口技术单片机的输入/输出接口技术主要通过引脚、端口和中断实现。
单片机的引脚连接外部电路,用于与外部设备交互。
引脚可以通过软件控制为输入或输出模式,并可以通过特定的寄存器进行读写操作。
单片机的端口是对引脚的集合,通过对端口模式和端口数据的设置,可以实现对多个引脚的控制。
例如,可以将一个端口的多个引脚设置为输出模式,并通过给端口数据赋值来同时控制这些引脚的电平状态。
中断是单片机实现输入/输出的一种重要方式。
当外部事件(例如按键按下、定时器溢出等)发生时,单片机将会中断当前的工作,执行中断服务程序来处理该事件。
中断可以提高系统的响应速度和灵活性。
通过以上的输入/输出接口技术,单片机可以方便地与外部设备进行通信和数据交换,实现各种功能和应用。
第三题:简述单片机的串行通信接口单片机的串行通信接口是一种用于与其他设备进行数据传输的接口。
常见的串行通信接口有SPI和I2C。
SPI(Serial Peripheral Interface)是一种同步的串行接口,使用四根线(时钟线、数据线、选择线和数据传输方向线)进行数据传输。
SPI可以实现高速的全双工通信,并且可以与多个外部设备进行连接,通过选择线来选择通信的目标设备。
单片机原理及接口李朝青1.89C51单片机内包含哪些主要逻辑功能部件?答:80C51系列单片机在片内集成了以下主要逻辑功能部件:(DCPU冲央处理器):8位(2)片内RAM:128B⑶特殊功能寄存器:21个⑷程序存储器:4KB(5)并行1/0口:8位,4个(6)串行接□:全双工,1个⑺定时器/计数器:16位,2个(8)片内时钟电路:1个2.89C51的EA端有何用途?答:/EA端接高电平时,CPU只访问片内flash Rom并执行内部程序, 存储器。
/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。
/EA端保持高电平时,CPU执行内部存储器中的指令。
3・89C51的存储器分哪几个空间?如何区别不同空间的寻址?答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)片外RAM( MOVX)( 16bits 地址)(64KB)片内RAM( MOV)( 8bits 地址)(256B)4.简述89C51片内RAM的空间分配。
答:片内RAM有256B低128B是真正的RAM区高128B是SFR(特殊功能寄存器)区5.简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。
答:片内RAM区从00H〜FFH( 256B)其中20H〜2FH(字节地址)是位寻址区对应的位地址是00H〜7FH6・如何简捷地判断89C51正在工作?答:用示波器观察8051的XTAL2端杲否有脉冲信号输出(判断震荡电路工作是否正常?)ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6 分频用示波器观察ALE是否有脉冲输出(判断8051芯片的好坏?)观察PSEN(判断8051能够到EPROM或ROM中读取指令码?)因为/PSEN接外部EPROM( ROM)的/OE端子OE=Output Enable(输出允许)7.89C51如何确定和改变当前工作寄存器组?答:PSW(程序状态字)(Program Status Word)中的RS1 和RSO 能够给出4中组合用来从4组工作寄存器组中进行选择PSW 属于SFR( Special Function Register)(特殊功能寄存器)8.89C51 P0 □用作通用I /O □输入时,若经过TTL9C”门输入数据,应注意什么?为什么?答:9・读端□锁存器和”读引脚”有何不同?各使用哪种指令?答:读锁存器(ANLP0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(MOV A,Pl这条指令就是读引脚的,意思就是把端Dpi输入数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常见这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD 算术及逻辑运算ORL、CPL、ANL. ADD、ADDC、SUBB、INC、DEC控制转移CJNE. DJNZ都属于读锁存器。
单片机微型计算机原理及接口技术课后习题答案3章3-1简述模型机的工作过程(就以书上举例,叙述过程,本题内容较多,明白道理即可,不需详细记住)计算机的指令执行过程分为读取指令→分析指令→执行指令→保存结果在进行计算前,应做如下工作:①用助记符号指令(汇编语言)编写程序(源程序)②用汇编软件(汇编程序)将源程序汇编成计算机能识别的机器语言程序③将数据和程序通过输入设备送入存储器中存放读取指令阶段(就以书上举例,理解过程即可):①CPU将程序计数器PC中的内容XXH送地址寄存器AR②程序计数器PC的内容自动加1,为取下一条指令做好准备③地址寄存器AR将XXH通过地址总线AB送至存储器地址译码器译码,选中XXH 单元。
④CPU发出“读”指令⑤所选中的XXH单元中的内容由存储器送至数据总线DB上⑥经数据总线DB,CPU将读出的XXH单元中的内容送至数据寄存器DR⑦数据寄存器DR将其送至指令寄存器IR,经过译码,CPU通过控制器发出执行该条指令的控制命令。
执行指令阶段(就以书上举例,理解过程即可)与读取类似(这里从略)3-2 STC15F2K60S2单片机的存储器分为哪几个空间?中断服务程序的入口地址分别是什么?32个通用寄存器各对应哪些RAM单元?STC15F2K60S2单片机的存储器分为四个空间,分别为程序Flash存储器,数据Flash 存储器,内部数据存储器和扩展数据存储器。
中断服务程序的入口地址分别为:0003H 外部中断0中断服务程序的入口地址000BH 定时/计数器0中断服务程序的入口地址0013H 外部中断1中断服务程序的入口地址001BH 定时/计数器1中断服务程序的入口地址0023H 串行通信口1中断服务程序的入口地址002BH ADC中断服务程序的入口地址0033H 低电压检测中断服务程序的入口地址003BH PCA中断服务程序的入口地址0043H 串行通信口2中断服务程序的入口地址004BH SPI中断服务程序的入口地址0053H 外部中断2中断服务程序的入口地址005BH 外部中断3中断服务程序的入口地址0063H 定时/计数器2中断服务程序的入口地址0083H 外部中断4中断服务程序的入口地址32个通用寄存器分为寄存器组0,1,2,3,每个组8个8位的工作寄存器(R0~R7),均存在于内部数据存储器的低128字节内,范围为00H-1FH寄存器组0 R0~R7对应00H-07H寄存器组1 R0~R7对应08H-0FH寄存器组2 R0~R7对应10H-17H寄存器组3 R0~R7对应18H-1FH3-3 位地址29H,61H,7FH,E0H,F1H,各对应哪些单元的哪些位?29H——RAM位寻址区字节地址25H,对应D1位61H——RAM位寻址区字节地址2CH,对应D1位7FH——RAM位寻址区字节地址2FH,对应D7位E0H——高128字节/特殊功能寄存器SFR区,寄存器ACC(字节地址E0H)的D0位;F1H——高128字节/SFR,寄存器B(字节地址F0H)的D1位。
单片机原理及接口技术课后习题答案李朝青课后习题答案2009-11-22 15:11 阅读673 评论0字号:大中小第三章1、指令:CPU根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言汇编语言:用助记符、符号和数字来表示指令的程序语言高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言2、见第1题3、操作码[目的操作数] [,源操作数]4、寻址方式寻址空间立即数寻址程序存储器ROM直接寻址片内RAM低128B、特殊功能寄存器寄存器寻址工作寄存器R0-R7、A、B、C、DPTR寄存器间接寻址片内RAM低128B、片外RAM变址寻址程序存储器(@A+PC,@A+DPTR)相对寻址程序存储器256B范围(PC+偏移量)位寻址片内RAM的20H-2FH字节地址、部分SFR5、SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址6、MOV A,40H ;直接寻址(40H)→AMOV R0,A;寄存器寻址(A)→R0MOV P1,#0F0H ;立即数寻址0F0→P1MOV @R0,30H ;直接寻址(30H)→(R0)MOV DPTR,#3848H ;立即数寻址3848H→DPTRMOV 40H,38H ;直接寻址(38H)→40HMOV R0,30H ;直接寻址(30H)→R0MOV P0,R0 ;寄存器寻址(R0)→P0MOV 18H,#30H ;立即数寻址30H→18HMOV A,@R0 ;寄存器间接寻址((R0))→AMOV P2,P1 ;直接寻址(P1)→P2最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H注意:→左边是内容,右边是单元7、用直接寻址,位寻址,寄存器寻址8、MOV A,DATA ;直接寻址2字节1周期MOV A,#DATA ;立即数寻址2字节1周期MOV DATA1,DATA2 ;直接寻址3字节2周期MOV 74H,#78H ;立即数寻址3字节2周期如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A9、MOV A,@R0 ;((R0))=80H→AMOV @R0,40H ;(40H)=08H→(R0)MOV 40H,A ;(A)=80→40HMOV R0,#35H ;35H→R0最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H10、用直接寻址,位寻址,寄存器寻址11、只能采用寄存器间接寻址(用MOVX指令)12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)高128字节:直接寻址,位寻址,寄存器寻址13、采用变址寻址(用MOVC指令)14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。
用DA A指令调整(加06H,60H,66H)15、用来进行位操作16、ANL A,#17H ;83H∧17H=03H→AORL17H,A;34H∨03H=37H→17HXRL A,@R0 ;03H⊕37H=34HCPL A;34H求反等于CBH所以(A)=CBH17、(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址(2)CLR ACC.7CLR ACC.6CLR ACC.5CLR ACC.4(3)CLR ACC.6CLR ACC.5CLR ACC.4CLR ACC.318、MOV 27H,R7MOV 26H,R6MOV 25H,R5MOV 24H,R4MOV 23H,R3MOV 22H,R2MOV 21H,R1MOV 20H,R019、MOV 2FH,20MOV 2EH,21MOV 2DH,2220、CLR CMOV A,#5DH ;被减数的低8位→AMOV R2,#B4H ;减数低8位→R2SUBB A,R2 ;被减数减去减数,差→AMOV 30H,A;低8位结果→30HMOV A,#6FH ;被减数的高8位→AMOV R2,#13H ;减数高8位→R2SUBB A,R2 ;被减数减去减数,差→AMOV 31H,A;高8位结果→30H注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位21、(1)A≥10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1LJMP LABEL;相等转LABELL1:JNC LABEL ;(A)大于10,转LABEL或者:CLR CSUBB A,#0AHJNC LABEL(2)A>10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1RET ;相等结束L1:JNC LABEL;(A)大于10,转LABELRET ;(A)小于10,结束或者:CLR CSUBB A,#0AHJNC L1RETL1:JNZ LABELRET(3)A≤10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1L2:LJMP LABEL;相等转LABELL1:JC L2 ;(A)小于10,转L2RET或者:CLR CSUBB A,#0AHJC LABELJZ LABELRET22、(SP)=23H,(PC)=3412H参看书上80页23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H参看书上79页24、不能。
ACALL是短转指令,可调用的地址范围是2KB。
在看这个题的时候同时看一下AJMP指令。
同时考虑调用指令ACALL和LCALL指令和RET指令的关系。
25、MOV R2,#31H ;数据块长度→R2MOV R0,#20H ;数据块首地址→R0LOOP:MOV A,@R0 ;待查找的数据→ACLR C ;清进位位SUBB A,#0AAH ;待查找的数据是0AAH吗JZ L1 ;是,转L1INC R0 ;不是,地址增1,指向下一个待查数据DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找MOV 51H,#00H ;等于0,未找到,00H→51HRETL1:MOV 51H,#01H ;找到,01H→51HRET26、MOV R2,#31H ;数据块长度→R2MOV R0,#20H ;数据块首地址→R0LOOP:MOV A,@R0 ;待查找的数据→AJNZ L1 ;不为0,转L1INC 51H ;为0,00H个数增1L1:INC R0 ;地址增1,指向下一个待查数据DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找RET27、MOV DPTR,#SOURCE ;源首地址→DPTRMOV R0,#DIST ;目的首地址→R0LOOP:MOVX A,@DPTR ;传送一个字符MOV @R0,AINC DPTR ;指向下一个字符INC R0CJNE A,#24H,LOOP ;传送的是“$”字符吗?不是,传送下一个字符RET28、MOV A,R3 ;取该数高8位→AANL A,#80H ;取出该数符号判断JZ L1 ;是正数,转L1MOV A,R4 ;是负数,将该数低8位→ACPL A;低8位取反ADD A,#01H ;加1MOV R4,A;低8位取反加1后→R4MOV A,R3 ;将该数高8位→ACPL A;高8位取反ADDC A,#00H ;加上低8位加1时可能产生的进位MOV R3,A;高8位取反加1后→R3L1:RET29、CLR C ;清进位位CMOV A,31H ;取该数低8位→ARLC A;带进位位左移1位MOV 31H,A;结果存回31HMOV A,30H ;取该数高8位→ARLC A;带进位位左移1位MOV 30H,A;结果存回30H30、MOV R2,#04H ;字节长度→R2MOV R0,#30H ;一个加数首地址→R0MOV R1,#40H ;另一个加数首地址→R1CLR C ;清进位位LOOP:MOV A,@R0 ;取一个加数ADDC A,@R1 ;两个加数带进位位相加DA A;十进制调整MOV @R0,A;存放结果INC R0 ;指向下一个字节INC R1 ;DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找RET31、MOV R2,#08H ;数据块长度→R2MOV R0,#30H ;数据块目的地址→R0MOV DPTR,#2000H ;数据块源地址→DPTRLOOP:MOVX A,@ DPTR ;传送一个数据MOV @R0,AINC DPTR ;指向下一个数据INC R0 ;DJNZ R2,LOOP ;数据块长度减1,没传送完,继续传送RET32、(1)MOV R0,0FH ;2字节,2周期4字节4周期(差)MOV B,R0 ;2字节,2周期(2)MOV R0,#0FH ;2字节,1周期4字节3周期(中)MOV B,@R0 ;2字节,2周期(3)MOV B,#0FH ;3字节,2周期3字节2周期(好)33、(1)功能是将片内RAM中50H~51H单元清0。
(2)7A0A(大家可以看一下书上,对于立即数寻址的话,后面一个字节存放的是立即数)7850(第一个字节的后三位是寄存器,前一个条指令是010也就是指的R2,在这里是R0,所以应该是78,后一个字节存放的是立即数)DAFC (这里涉及到偏移量的计算,可以参考书上56页)34、INC @R0 ;(7EH)=00HINC R0 ;(R0)=7FHINC @R0 ;(7FH)=39HINC DPTR ;(DPTR)=10FFHINC DPTR ;(DPTR)=1100HINC DPTR ;(DPTR)=1101H35、解:(1000H)=53H (1001H)=54H (1002H)=41H(1003H)=52H (1004H)=54H (1005H)=12H(1006H)=34H (1007H)=30H (1008H)=00H(1009H)=70H36、MOV R0,#40H ;40H→R0MOV A,@R0 ;98H→AINC R0 ;41H→R0ADD A,@R0 ;98H+(41H)=47H→AINC R0MOV @R0,A;结果存入42H单元CLR A;清AADDC A,#0 ;进位位存入AINC R0MOV @R0,A;进位位存入43H功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H37、MOV A,61H ;F2H→AMOV B,#02H ;02H→BMUL AB ;F2H×O2H=E4H→AADD A,62H ;积的低8位加上CCH→AMOV 63H,A;结果送62HCLR A;清AADDC A,B ;积的高8位加进位位→AMOV 64H,A;结果送64H功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将结果的高8位放在64H单元。