单片机面试

2019-04-15 18:27发布

1.MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少? 答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。 1、单片机是将微处理器、一定容量的 RAM 和ROM以及 I/O 口、定时器等电路集成在一块芯片上而构成的微型计算机。 8、当CPU访问片外的存储器时,其低八位地址由 P0口提供,高八位地址由 P2口提供,8位数据由 P0口提供。 9、在I/O口中,P0口在接LED时,必须提供上拉电阻,P3口具有第二功能。 19、是非题:工作寄存器区不允许做普通的RAM单元来使用。F 20、是非题:工作寄存器组是通过置位PSW中的RS0和RS1来切换的。T 21、是非题:特殊功能寄存器可以当作普通的RAM单元来使用。F 22、是非题:访问128个位地址用位寻址方式,访问低128字节单元用直接或间接寻址方式。T 23、是非题:堆栈指针SP的内容可指向片内00H~7FH的任何RAM单元,系统复位后,SP初始化为00H。F 24、数据指针DPTR是一个16位的 特殊功能寄存器 寄存器。 25、是非题:DPTR只能当作一个16位的特殊功能寄存器来使用。F 26、是非题:程序计数器PC是一个可以寻址的特殊功能寄存器。F 28、当系统处于正常工作状态且振荡稳定后,在RST引脚上加一个 高 电平并维持 2 个机器周期,可将系统复位。 29、是非题:单片机89C51复位后,其PC指针初始化为0000H,使单片机从该地址单元开始执行程序。T 31、是非题:单片机系统上电后,其内部RAM的值是不确定的。T 36、以下哪一条指令的写法是错误的(C)。 A、MOV DPTR,#3F98H   B、MOV R0,#0FEH   C、MOV 50H,#0FC3DH   D、INC R0 37、以下哪一条指令的写法是错误的(D)。 A、INC DPTR     B、MOV R0,#0FEH     C、DEC   A     D、PUSH   A 38、以下哪一条指令的写法是错误的(B)。 A、MOVC A,@A+DPTR    B、MOV R0,#FEH     C、CPL   A     D、PUSH   ACC 39、是非题:在51系列单片机的指令系统中,其加法、减法、乘法和除法必须有累加器A的参与才能完成。T 46、单片机89C51的5个中断源分别为 INT0 、INT1 、T0 、T1以及TXD/RXD   。 47、单片机89C51的中断要用到4个特殊功能寄存器,它们是TCON、SCON、 IE 以及IP。 48、在89C51中,外部中断由IT0(1)位来控制其两种触发方式,分别是 电平 触发方式和  边沿 触发方式。 50、是非题:在89C51中,当产生中断响应时,所有中断请求标志位都由硬件自动清零。F 51、中断处理过程分为3个阶段,即中断响应、中断处理以及中断返回。 52、简述51系列单片机中断响应的条件。 ●有中断源发出中断请求; ●中断总允许位EA=1,即CPU开中断; ●申请中断的中断源的中断允许位为1,即中断没有屏蔽; ●无同级或更高级中断正在被服务; ●当前的指令周期已经结束; ●若现在指令为RETI或者是访问IE或IP指令,则该指令以及紧接着的另一条指令已执行完。 53、是非题:在51系列单片机中,中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。T 56、是非题:在执行子程序调用或执行中断服务程序时都将产生压栈的动作。T 65、是非题:在51系列单片机的指令中,既有带借位的减法指令,又有不带借位的减法指令。F 69、单片机89C51具有并行 通信和串行 通信两种通信方式。 79、单片机89C51中的串行通信共有4种方式,其中方式 0 是用作同步移位寄存器来扩展I/O口的。 99、MCS-51 单片机的RS1,RS0=01 时,当前寄存器R0—R7 占用内部RAM(B)单元。
A、 00H—07H   B、 08H—0FH    C、 10H—17H D、 18H—1FH
101、MCS-51 单片机有片内RAM 容量(   A )。
   A. 128B B、 4KB   C、 8KB D、 256B
104、在执行下列指令后,A=___60H___,R0=__45H____,(60H)=___45H___。
MOV    A,# 45H
MOV    R0,# 60H
MOV    @R0,A
XCH    A, R0
106、设RAM 中(2456H)=66H,(2457H)=34H,ROM 中(2456H)=55H,(2457H)=64H。请分析下面程序执行后各寄存器的内容。 (A)=___64H___,(DPTR)=__2356H____。
MOV A,#1
MOV DPTR,#2456H
MOVC A,@A+DPTR
107、MCS-51 单片机的定时器/计数器工作方式0 是(    C )。
A、8 位计数器结构 B、16 位计数器结构   C、13 位计数器结构 D、2 个8 位计数器结构
108、执行下列程序后,(A)=__35H____,(B)=__16H____。
MOV A,#9FH
MOV B,#36H
ANL    B,A
SETB C
ADDC A,B
109、MCS-51 单片机的外部中断0 中断入口地址为(   C   )。
A、 000BH B、 001BH C、0003H D、 0013H
寻址方式 寻址空间 立即数寻址 程序存储器ROM 直接寻址 片内RAM128B、特殊功能寄存器 寄存器寻址 工作寄存器R0-R7ABCDPTR 寄存器间接寻址 片内RAM128B、片外RAM 变址寻址 程序存储器(@A+PC,@A+DPTR 相对寻址 程序存储器256B范围(PC+偏移量) 位寻址 片内RAM20H-2FH字节地址、部分SFR 1.MOV    A,40H  ;直接寻址   (40H)→A MOV   R0,A    ;寄存器寻址   (A)→R0 MOV   P1,#0F0H  ;立即数寻址   0F0→P1 MOV   @R0,30H  ;直接寻址 (30H) →(R0) MOV   DPTR,#3848H  ;立即数寻址   3848H→DPTR MOV   40H,38H    ;直接寻址 (38H) →40H MOV   R0,30H     ;直接寻址 (30H) →R0 MOV   P0,R0      ;寄存器寻址   ( R0 )→P0 MOV   18H,#30H  ;立即数寻址   30H→18H MOV   A,@R0    ;寄存器间接寻址 ((R0)) →A MOV   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 2. MOV A,DATA ;直接寻址 2字节1周期 MOV A,#DATA ;立即数寻址 2字节1周期 MOV DATA1,DATA2 ;直接寻址 3字节2周期 MOV 74H,#78H ;立即数寻址 3字节2周期 2-1  MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:MCS-51单片机在一块芯片中集成了CPURAMROM、定时/计数器、多功能I/O 和中断控制等基本功能部件。 单片机的核心部分是CPUCPU是单片机的大脑和心脏。 程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据 暂存和缓冲、标志位等。 定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时 ,它是定时器;当它对外部事件进行计数时,它是计数器。 I/O 接口的主要功能包括:缓冲与锁存数据、地址译码、信息格式转换、传递状态(外 设状态)和发布命令等。 中断控制可以解决 CPU 与外设之间速度匹配的问题,使单片机可以及时处理系统中许 多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。 2-5  简述MCS-51单片机片内RAM区地址空间的分配特点。 答:片内数据存储器分为工作寄存器区、位寻址区和数据缓冲器区等3个区域。 工作寄存器使用内部RAM中地址为00H1FH32个单元, 并分成4个工作寄存器组,每个组有8个工作寄存器,名称为R0R7。 对于内部 RAM 中地址为 20H2FH 16 个单元,CPU 不仅具有字节寻址功能,而且还具有位寻址功能。这 16 个单元共 128 位,每一位都赋予 1 个位地址,位地址范围是00H7FH30H7FH是数据缓冲区,即用户RAM区,共80个单元。 2-7  单片机复位后,各特殊功能寄存器中的初始化状态是什么? 答: 特殊功能寄存器  初始状态  特殊功能寄存器  初始状态      ACC  00H  TMOD  00H      PC  0000H  TCON  00H      PSW  00H  TL0  00H      SP  07H  TH0  00H      DPTR  0000H  TL1  00H      P0~P3  0FFH  TH1  00H      IP  xx000000B  B  00H      IE  0x000000B  SCON  00H      PCON  0xxx0000B  SBUF  不定 2-8  MCS-51单片机的21个特殊功能寄存器中,哪些具有位寻址能力? 答:MCS-51 单片机中的程序状态字寄存器(PSW),B 寄存器,累加器(ACC) ,端口 P0 P3,控制寄存器中用于中断控制的中断优先级控制寄存器(IP)和中断允许控制寄存 器(IE) ,用于设置定时/计数器和串行口工作方式的定时/计数器控制寄存器(TCON 、串行口控制寄存器(SCON)具有位寻址能力。 2-15  什么时候需要复位操作?对复位信号有何要求? 答:复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。 上电复位利用电容器的充电实现。在时钟电路工作后,在 RST 端连续给出 2 个机器周 期的高电平就可完成复位操作。MCS-51 单片机的上电加按键复位电路当复位按键按下 3-1  什么是寻址方式?MCS-51指令系统有哪些寻址方式?相应的寻址空间在何处? 答:在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据所在的 地址单元。如何找到参与运算的这个数据或数据所在的地址就称为寻址方式。 MCS-51 指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻 址、基址加变址寻址、相对寻址和位寻址等七种。 对程序存储器只能采用立即寻址和基址加变址寻址方式;对特殊功能寄存器只能采用直 接寻址方式,不能采用寄存器间接寻址,对 8032/8052 等单片机内部 RAM 的高 128 字节(80H~FFH),只能采用寄存器间接寻址,不能使用直接寻址方式;对位操作指令 只能对位寻址区操作;外部扩展的数据存储器只能用MOVX指令访问, 而内部RAM 128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。 3-2  访问内部RAM单元可以采用哪些寻址方式?访问外部RAM单元可以采用哪些寻址方 式?访问特殊功能寄存器(SFR)可以采用哪些寻址方式? 答:对特殊功能寄存器只能采用直接寻址方式,单片机内部RAM的高128个字节 (80H~FFH ,只能采用寄存器间接寻址,外部扩展的数据存储器只能用MOVX指令访问,而内部 RAM的低128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。 3-3  访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。 答:访问外部数据存储器可以用以下指令实现: MOVX A, @Ri    ((Ri))A,寄存器Ri指向的片外RAM地址中的内容送到累加器A MOVX @Ri, A    A((Ri)),累加器中内容送到寄存器Ri指向的片外RAM地址中 MOVX A, @DPTR;((DPTR))A,数据指针指向的片外RAM地址中的内容送到累加器A MOVX @DPTR, A   A((DPTR)),累加器中内容送到数据指针指向的片外RAM地址中 访问程序存储器可以用以下指令实现: MOVC A, @A+DPTR   ((A+DPTR))A,表格地址单元中的内容送到累加器A MOVC A, @A+PC PC+1PC((A+PC))A,表格地址单元中的内容送到累加器A 3-4  试用下列3种寻址方式编程,将立即数0FH送入内部RAM30H单元中。 (1) 立即寻址方式;(2) 寄存器寻址方式;(3) 寄存器间接寻址方式 答: 1)立即寻址方式:   MOV  30H, #0FH 2)寄存器寻址方式: MOV  R5, #0FH    MOV 30H, R5 3)寄存器间接寻址方式:MOV @R1, #0FH    MOV 30H, @R1 3-6  加法和减法指令影响哪些标志位?怎么影响的? 答:在带进位的加法运算中,会影响进位位Cy,最终要将A中的值和其后面的值以及进位 Cy中的值相加,最终结果存在A 在带进位减法指令中,要将累加器A的内容与第二操作数及进位标志相减,结果送回到 累加器A中。在执行减法过程中,如果位7D7)有借位,则进位标志Cy置“1”,否则 0”;如果位3D3)有借位,则辅助进位标志AC置“1”,否则清“0”;如位6有借位 而位 7 没有借位,或位 7 有借位而位 6 没有借位,则溢出标志 OV 置“1”,否则清“0”。 若要进行不带借位的减法操作,则必须先将Cy清“0”。 3-8  试编写一段程序,将内部数据存储器30H3lH单元内容传送到外部数据存储器1000H1001H单元中。 答: MOV A, 30H MOV DPTR, #1000H MOV @DPTR, A MOV A, 31H MOV DPTR, #1000H MOV @DPTR, A 3-9  试编写一段程序,将外部数据存储器40H单元中的内容传送到0l00H单元中。 答: MOV DPTR, #0040H MOV A, @DPTR MOV 0100H, A 6-2  MCS-51 单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的 又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少? 答:MCS-51单片机提供了5个中断源,有2级中断优先级别。中断标志由特殊功能寄存器 TCONSCON的相应位锁存。   中断标志的撤消分为: 1)定时/计数器中断请求的撤消 中断请求被响应后,硬件会自动清TF0TF1 2)外部中断请求的撤消 1)跳沿方式外部中断请求的撤消是自动撤消的。 2)电平方式外部中断请求的撤消,除了标志位清“0”之外,还需在中断响应后把中断 请求信号引脚从低电平强制改变为高电平。 3)串行口中断请求的撤消 响应串行口的中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标 志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行口中断请求的 撤消只能使用软件的方法。   CLR  TI  ;TI标志位   CLR  RI  ;RI标志位 各中断源对应的中断矢量地址分别为: 中断源  中断矢量 外部中断0  0003H 定时器T0中断  000BH 外部中断1  0013H 定时器T1中断  001BH 串行口中断  0023H 定时器中断T2(仅52系列有) 002BH 6-4 试分析以下几种中断优先级的排列顺序(级别由高到低)是否可能?若可能,则应如何 设置中断源的中断级别?否则,请简述不可能的理由。 (1) 定时器T0中断,定时T1中断,外中断1NT0,外中断INT1,串行口中断; (2) 串行口中断,外中断1NT0,定时器T0中断,外中断INT1,定时器T1中断; (3) 外中断INT0、定时器T1中断,外中断INT1,定时器T0中断,串行口中断。 1)可以,将定时器T0中断,定时T1设置为高优先级中断,将外中断1NT0,外中断 INT1,串行口中断 2)可以,将串行口中断设置为高优先级中断,将外中断 1NT0,定时器 T0 中断,外 中断INT1,定时器T1中断设置为低优先级中断; 3)不行,因为 MCS-51 单片机有 2 级中断优先级别,同级中断还存在按次序决定的 第二优先级结构,由高到低依次为外中断 1NT0、定时器 T0 中断、外中断 INT1、定时 T1中断、串行口中断。 7-2  如果采用晶振的频率为 3MHz,定时/计数器工作方式 012 下,其最大的定时时间为多少? 答:内部定时脉冲周期=机器周期=12/3Mhz=4us 工作方式0Tmax=8192*4us=32.768ms 工作方式1Tmax=65536*4us=262.144ms 工作方式2Tmax=256*4us=1.024ms 7-10  定时/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为 6MHz,求允许测量的最大脉冲宽度是多少? 答:采用定时器工作方式1可得到最大量程,最大脉冲宽度:65536*12/6M=131.072ms 2—9】什么是堆栈?堆栈有哪些功能? 设计时,为什么还要对SP重新赋值? 堆栈指针SP的作用是什么?  【答】堆栈是在片内数据RAM区中,数据按照“先进后出”或“后进先出”原则进行管理的区域。堆栈功能有两个:保护断点和保护数据。在子程序调用和中断操作时这两个功能特别有用。在80C51单片机中,堆栈在子程序调用和中断时会把断点地址自动进栈和出栈。进栈和出栈的指令(PUSH、POP)操作可用于保护现场和恢复现场。由于子程序调用和中断都允许嵌套,并可以多级嵌套,而现场的保护也往往使用堆栈,所以一定要注意给堆栈以一定的深度,以免造成堆栈内容的破坏而引起程序执行的“跑飞”。     堆栈指针SP在80C51中存放当前的堆栈栈顶所指存储单元地址的一个8位寄存器。80C51单片机的堆栈是向上生成的,即进栈时SP的内容是增加的;出栈时SP的内容是减少的。     系统复位后。80C51的SP内容为07H。若不重新定义,则以07H为栈底,压栈的内容从08H单元开始存放。但工作寄存器R0~R7有4组,占有内部RAM地址为00H~1FH,位寻址区占有内部RAM地址为20H~2FH。若程序中使用了工作寄存器1~3组或位寻址区,则必须通过软件对SP的内容重新定义,使堆栈区设定在片内数据RAM区中的某一区域内(如30H),堆栈深度不能超过片内RAM空间。 2一13】程序存储器指令地址、堆栈地址和外接数据存储器地址各使用什么指针?为什么? 【答】程序存储器指令地址使用程序计数器PC指针,PC中存放的是下一条将要从程序存储器中取出的指令的地址。程序计数器PC变化的轨迹决定程序的流程。PC最基本的工作方式是自动加1。在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序流向发生变化。在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送人PC,程序流向发生变化。    堆栈地址使用堆栈指针.SP。SP在80C51中存放当前的堆栈栈顶所指存储单元地址,是一个8位寄存器,对数据按照“先进后出”原则进行管理。外接数据存储器地址使用数据指针DPTR。DPTR是一个16位特殊功能寄存器,主要功能是作为片外数据存储器或I/0寻址用的地址寄存器,这时会产生RD或wR控制信号,用于单片机对外扩的数据存储器或I/0的控制。数据指针DPTR也可以作为访问程序存储器时的基址寄存器,此时是寻址程序存储器中的表格、常数等单元,而不是寻址指令。 2一19】80C51单片机的4个I/O口在使用上有哪些分工和特点? 【答】4个I/O口的分工和特点如下: ① P0口是一个多功能的8位口,可按字节访问也可按位访问。 用作I/0口。相当于一个真正的双向口:输出锁存,输入缓冲,但输入时须先将口置l;每根口线可以独立定义为输入或输出。 用作地址/数据复用总线。作数据总线使用时,输入/输出8位数据D0~D7;作地址总    线用时,输出低8位地址AO~A7。  ② P1口是一个8位口,可按字节访问也可按位访问,因此,P1口不仅可以8位一组进行  输入、输出操作,还可以逐位分别定义各口线为输入线或输出线。输入时有条件,即需要先输出1,将该口设为输入状态。一般作I/o口用。 ③ P2口是一个多功能的8位口,可按字节访问也可按位访问。在单片机采用并行扩展方式时,P2口作为地址总线的高8位D8~D15。 ④ P3口是一个多功能的8位口,可按字节访问,也按可位访问。可作为I/0口使用,为准双向口。既可以字节操作,也可以位操作;既可以8位口操作,也可以逐位定义口线为输入线或输出线。 P3可替代输入、输出功能。 替代输入功能:     P3.0一一RXD,串行输入口。     P3.2一一IN'I、0,外部中断O的请求。     P3.3一一INTl,外部中断1的请求。     P3.4一TO,定时器/计数器O外部计数脉冲输入。     P3.5一一T1,定时器/计数器1外部计数脉冲输入。     替代输出功能:     P3.1一一TXD,串行输出口。     P3.6一一wR,外部数据存储器写选通,输出,低电平有效。     P3.7~RD,外部数据存储器读选通,输出,低电平有效。 3—4】简述80C51的指令寻址方式,并举例说明。 【答】执行任何一条指令都需要使用操作数,寻址方式就是在指令中给出的寻找操作数或操作数所在地址的方法。     80C5l系列单片机的指令系统中共有以下7种寻址方式。     ①立即寻址。在指令中直接给出操作数。出现在指令中的操作数称为“立即数”,为了与直接寻址指令中的直接地址相区别,在立即数前面必须加上前缀“#”。     例如:MOV DPTR,#1234H    ;1234H为立即数,直接送DPTR     ②直接寻址。在指令中直接给出操作数单元的地址。     例如:   MOV A,55H    ;55H是操作数单元的地址,55H单元内的数据才是操作数,取出后送累加器A     ③寄存器寻址。在指令中将指定寄存器的内容作为操作数。因此,指定了寄存器就能得 到操作数。寄存器寻址方式中,用符号名称来表示寄存器。     例如:  INC R7    ;R7的内容为操作数,加1后再送回R7     ④寄存器间接寻址。在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才 是操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址 方式中,寄存器中存放的则是操作数的地址。     寄存器间接寻址须以寄存器符号名称的形式表示。为了区别寄存器寻址和寄存器间接寻 址,在寄存器间接寻址中,应在寄存器的名称前面加前缀“@”。     例如: ORL  A.@Ro;  当R0寄存器的内容是60H时,该指令功能是以RO寄存器的内容60H为地址,将60H地址单元的内容与累加器A中的数相“或”,其结果仍存放在A中。     ⑤相对寻址。在指令中给出的操作数为程序转移的偏移量。相对寻址方式是为实现程序的相对转移而设立的,为相对转移指令所采用。     在相对转移指令中,给出地址偏移量(在80C51系列单片机的指令系统中,以“rel”表示,为8位带符号数),把PC的当前值加上偏移量就构成了程序转移的目的地址。而PC的当前值是指执行完转移指令后的PC值,即转移指令的PC值加上转移指令的字节数。转移的目的地址可用如下公式表示:     目的地址=(转移指令所在地址+转移指令字节数)+rel     例如:SJMP 80H    ;80H为程序转移的偏移量,即一128。当前PC值减去128后即为转移地址     ⑥变址寻址。以DPTR或PC作基址寄存器,累加器A作变址寄存器,以两者内容相加形成的16位程序存储器地址作为操作数地址。又称“基址寄存器+变址寄存器间接寻址”。变址寻址方式只能对程序存储器进行寻址。     例如: MOVC A,@A+DPTR    ;功能是把DPTR和A的内容相加,所得到的程序存储器地址单元的内容送A     ⑦位寻址。80C51系列单片机有位处理功能,可以对数据位进行操作,因此,就有相应的位寻址方式。位寻址的寻址范围:     ●片内RAM中的位寻址区。     ·可位寻址的特殊功能寄存器位。     例如:MOV c,80H    ;功能是把位寻址区的80H位(即P0.0)状态送累加位C 3—14】已知(30H)=40H,(40H)=10 H,(10H)=00H,(P1)=CAH,请写出执行以下程序段后有关单元的内容。  【答】有关单元的内容如下:     MOV    R0,#30H    ;(RO)=30H     MOV    A,@R0    ;(A)=40H     MOV    Rl,A    ;(R1)=40H     MOV    B,@R1    ;(B)=1OH     MOV    @R1,P1    ;(40H)=CAH     MOV    A,@RO    ;(A)=40H     MOV    10H,#20H    ;(10H)=20H     MOV    30H,10H    ;(30H)=20H 执行以上程序段后,有关单元的内容分别为:(30H)=20H,(40H)=CAH,(10H)=20H,(P1)=CAH。 3-1】已知(A)=7AH,(RO)=30H,(30H)=A5 H,(PSW)=80H。请填写各条指令单独执行后的结果。 【答】结果如下: (1)  XCH  A,R0    ;(A)=30H,(R0):7AH (2)  XCH  A,30H    ;(A)=A5H,(30H)=7AH,(PSW)=81H (3)  XCH    A,@R0    ;(A)=R5H,(30H)=7AH,(PSW)=81H (4)  XCHD   A,@R0    ;(A)=75H,(30H)=AAH,(PSW)=81H (5)  SWAP  A    ;(A)=A7H (6)  ADD  A,R0    ;(A)=AAH,(PSW)=04H (7)  ADD  A,30H    ;(A)=1FH,(PSW)=81H (8)  ADD  A,#30H    ;(A)=AAH,(PSW)=04H (9)  ADDC  A,30H    ;(A)=20H,(PSW)=01H (10)  SUBB  A,30H    ;(A)=D4H,(PSW)=84H (11)  SUBB  A,#30H    ;(A)=49H,(PSW)=01H 3-15】已知(R1)=20 H,(20 H)=AAH,请写出执行完下列程序段后A的内容。         【答】各指令的执行结果如下:     MOV    A,#55H    ;(A)=55H ANL    A,#0FFH    ;(A)=55H ORL    20H,A    ;(20H)=FFH XRL    A,@R1    ;(A)=AAH CPL    A    ;(A)=55H  执行完程序段后,A的内容为5 5 H。 3—17】已知两个十进制数分别在内部RAM中的40 H单元和50H单元开始存放(低位在前),其字节长度存放在内部RAM的30 H单元中。编程实现两个十进制数求和,求和结果存放在40 H开始的单元中。     ORG 0000H     SJMP    MAIN     ORG 0030H     MAIN:     MOV    R0,#40H    ;被加数首址.又作两个十进制数和的首址     MOV    R1,#50H    ;加数首址     MOV    R2,30H    ;字节长度     CLR    C     PP:  MOV    A,@R1    ;取加数     ADDC    A,@R0    ;带进位加     DA    A    ;二一十进制数调整     MOV    @R0,A    ;存和         INC    R0    ;修正地址     INC    R1     DJNZ    R2,PP    ;多字节循环加     AJMP    $     END 4-17】根据8100 H单元中的值X,决定P1口引脚输出为:         加上必要的伪指令,并对源程序加以注释。     【答】程序如下:     ORG 0000H     SJMP    BEGIN     ORG 0030H     BEGIN:    MOV DPTR,#8100H     MOVX    A,@DPTR     MOV    R2,A     JB    ACC.7,SMALLER;有符号数<0     SJMP    UNSIGNED    ;无符号数≥0     SMALLER:DEC    A    ;X<0,输出-X(先减1,再取反)     CPL    A     MOV    P1,A     SJMP   OK     UNSIGNED:CJNE    A,#00H,BIGGER    ;不等于0即大于0     MOV P1,#80H    ;X等于0,输出80H     SJMP    OK     BIGGER:  CLR    C    ;X大于0,输出A×2     RLC    A    ;A×2     MOV    P1,A     OK:    SJMP    $         END 例如:输入55 H,P1口引脚输出AAH;输入00 H,P1口引脚输出80 H;输入F1(一1 5的补码),P1口引脚输出0FH。 5-4】什么是