单片机原理与运用 第三章答案
- 格式:docx
- 大小:55.13 KB
- 文档页数:22
第一章习题参考答案1-1:何谓单片机?与通用微机相比,两者在结构上有何异同?答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。
单片机与通用微机相比在结构上的异同:(1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。
例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。
CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。
单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。
例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。
(2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU 对数据的存取速度。
现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。
单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。
(3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。
用户通过标准总线连接外设,能达到即插即用。
单片机应用系统的外设都是非标准的,且千差万别,种类很多。
单片机的I/O 接口实际上是向用户提供的与外设连接的物理界面。
用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。
第三章 作业参考答案3-10. 己知 (A)=7AH , (R0)=34H , (34H)=A5H ,请(1) MOV A , R0 ;(A)=34H(2) MOV A , @R0 ;(A)=A5H (3) MOV A , 34H ;(A)=A5H(4) MOV A , #34H ;(A)=34H 3-12. 1 设 (R0)=32H , (A)=48H , 片内 RAM 中 (3 A 的内容。
, (40H )=61H 。
请指出在执行下列程序段后 上述各单元内容的变化。
A,@R0 @R0,40H 40H,A R0,#40H MOV MOVMOVMOV 即:执行完程序段后, 3-13 ; (A)=(32H)=60H ; ( 32H ) =61H ; (40H)=(A)=60H ; (R0)=40H (R0)=40H, (A)=60H, 片内 RAM 中,(32H ) =61H, (40H)=60H 已知(A)=83H , ANL 答: 3-14 A,47H47H,AA,@R0 SWAP A 执行完程序段后, ORL XRL (R0)=47H , (47H)=34H 。
请写出执行完下列程序段后 A 的内容。
;(A)=83H A 34H=00H;(47H)=34H V 00H=34H ;(A)= 00H 34H=34H ;(A)=43H=43H MOV SP,#30H ;(SP)=30HMOV 30H,#55HMOV 40H,#66HPUSH 30H ;(SP)=31H, 堆栈区中( 31H) =55H PUSH 40H ;(SP)=32H, 堆栈区中( 32H) =66HPOP 30H; 先将堆栈区中 32H 单元的内容送入 30H;SP 值减 1 ,即: (SP)=31HPOP 40H ;先将堆栈区中 31H 单元的内容送入 40HA ) (SP)=30H, 单元,使( 30H ) 单元,使( 40H ) ;SP 值减 1,即: (SP)=30H 内部 RAM 中, (30H)=66H, (40H)=55H.最终, 编程实现两个 16 位二进制数的减法。
第3章 AT89S51的指令系统参考答案及解析:1.解析:总体可根据指令表P61解答(1)错P48 3.3 MOV direct,@Ri,i=0或1。
(2)错P54 6 减1指令中不包括数据指针DPTR。
(3)对P52数据指针DPTR自增1。
(4)错P54清0指令只对累加器A操作,不能对寄存器操作。
(5)错P55求反指令同样只对累加器A操作,不能对寄存器操作。
(6)错P47-48 寄存器间不可传送数据,若想传送可通过累加器A。
(7)错P48 进栈指令PUSH后加8位数据寄存器的地址或SFR的地址,若想使用PUSH加数据指针。
DPTR,则要说明使用的部分,即DP0H(DP1H)或DP0L(DP1L)。
(8)对P59 P25 数据位传送指令可对SFR进行寻址,SFR可寻址的字节地址为0H或8H。
(9)错P59根据Acc.3可知,该指令为位操作数据传送指令,但其中一个操作数必须为进位标志C。
(10)对P61外部RAM(8位地址)传送到A。
(11)对P59 (26H).0内容传送到仅为标志位。
(12)错P55 RLC只对累加器A操作。
2.答:(A)对(B)对(C)错(D)错解析:(A)对P45 4. 立即数寻址方式就是直接在指令中给出操作数。
(B)对指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成是从取指令、分析指令到执行完所需的全部时间。
(C)错P44 2.指令中直接给出操作数的单元地址。
(D)错P45 3.寄存器Ri作为间接寻址器前接@。
3.答:A,PC,DPTR解析:P45 5.基址寄存器加变址寄存器间址寻址方式是以DPTR或PC作为基址寄存器,以累加器A 作为变址寄存器,并以两者的内容相加形成16为地址作为目的地址进行寻址的方式。
4.答:直接寻址方式和位寻址方式解析:P46 表3-1 直接寻址和位寻址的寻址空间都包含SFR。
5.答:操作码,操作数,操作码解析:P43 3.2一条指令通常由两部分组成:操作码和操作数。
习题三1.在MCS-51单片机中,寻址方式有几种?其中对片内RAM 可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式?答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。
片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。
片外RAM寻址有:寄存器间接寻址方式。
2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR 间接寻址有什么区别?答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。
3.在位处理中,位地址的表示方式有哪几种?答:1.直接位地址(00H~0FFH)。
例如:20H2.字节地址带位号。
例如:20H.3表示20H单元的3位。
3.特殊功能寄存器名带位号。
例如:P0.1表示P0口的1位。
4.位符号地址。
例如:TR0是定时/计数器T0的启动位。
4.写出完成下列操作的指令。
(1)R0的内容送到R1中。
MOV A,R0MOV R1,A(2)片内RAM的20H单元内容送到片内RAM的40H单元中。
MOV 40H,20H(3)片内RAM的30H单元内容送到片外RAM的50H单元中。
MOV A,30HMOV R0,#50HMOVX @R0,A(4)片内RAM的50H单元内容送到片外RAM的3000H 单元中。
MOV A,50HMOV DPTR,#3000HMOVX @DPTR,A(5)片外RAM的2000H单元内容送到片内RAM的20H 单元中。
MOV DPTR,#2000HMOVX A,@DPTRMOV 20H,A(6)片外RAM的1000H单元内容送到片外RAM的4000H 单元中。
MOV DPTR,#1000HMOVX A,@DPTRMOV DPTR,#4000HMOV @DPTR,A(7)ROM的1000H单元内容送到片内RAM的50H单元中。
单片机原理及应用第三章习题答案第一题:题目:什么是中断?中断是指在程序执行过程中,由于发生了某个特定事件,导致当前的程序需要暂时中断执行,转而去处理其他紧急或优先级更高的事件。
中断可以提高系统的实时性和响应速度。
第二题:题目:请简述中断的分类及其优缺点。
中断可以分为外部中断和内部中断。
外部中断:外部中断是通过外部设备触发的中断,例如按键输入、定时器溢出等。
外部中断的优点是能够及时响应外部事件,缺点是响应时间有一定延迟,并且可能会引起系统的不稳定性。
内部中断:内部中断是通过程序内部指令触发的中断,例如软件中断、硬件错误等。
内部中断的优点是响应时间几乎可以忽略,缺点是需要消耗较多的系统资源。
第三题:题目:简述中断的处理过程。
中断的处理过程一般包括以下几个步骤:1. 中断请求发生:外部设备或程序内部触发中断请求。
2. 中断响应:CPU接收到中断请求后,保存当前程序的执行状态,暂停当前程序的执行,并跳转到中断服务程序。
3. 中断服务程序执行:中断服务程序是为了处理中断事件而编写的程序,它会根据中断类型执行相应的操作,例如处理外部设备的输入、更新系统状态等。
4. 中断处理完成:中断服务程序执行完后,将恢复之前保存的执行状态,继续执行被中断的程序。
第四题:题目:请简述常见的中断优先级判断方式。
常见的中断优先级判断方式有两种:硬件优先级判断和软件优先级判断。
硬件优先级判断:硬件优先级判断是通过硬件电路来实现的,每个中断信号都有一个对应的硬件中断优先级,优先级高的中断信号将打断当前正在执行的中断信号。
软件优先级判断:软件优先级判断是通过编程的方式来实现的,每个中断信号都有一个对应的中断优先级,在中断服务程序中通过程序代码来判断当前是否有更高优先级的中断请求。
第五题:题目:请说明中断向量表的作用。
中断向量表是一个存储中断处理程序入口地址的数据结构,它将每个中断编号与对应的中断服务程序的入口地址进行映射。
当一个中断请求发生时,中断向量表将根据中断编号找到对应的中断服务程序的入口地址,从而实现中断的处理。
3-11若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。
试分析执行下列程序段后上述各单元内容的变化。
MOV A,@R1 ;(A)=60H 其余不变MOV @R1,40H ;(30H)=40H 其余不变MOV 40H,A ; (40H) =60H 其余不变MOV R1,#7FH ;(R1)=7FH 其余不变3-12下列程序段汇编后,从3000H开始的各有关存储单元的内容将是什么?地址是3000H的单元存放‘S’的ascii码53H地址是3001H的单元存放‘T’的ascii码54H地址是3002H的单元存放‘A’的ascii码41H地址是3003H的单元存放‘R’的ascii码52H地址是3004H的单元存放‘T’的ascii码54H地址是3005H的单元存放34H地址是3006H的单元存放32H地址是3007H的单元存放00H地址是3008H的单元存放40H地址是3009H的单元存放00H地址是300AH的单元存放90H3-13若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY、AC、和OV的值。
(1)MOV A,@R0 ; (A)=2CH 其余不变(2)ANL 40H,#0FH ;(40H)=0CH(3)ADD A,R4; AC=1,OV=0,CY=1,(A)=22H(4)SWAP A ;(A)=8EH(5)DEC @R1 ; (20H)=0EH(6)XCHD A,@R1 ;(A)=EFH,(20H)=08H3-14若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少?M OV A,50H ;(A)=40HMOV R0,A ;(R0)=40HMOV A,#00H ;(A)=0MOV @R0,A ;(40H)=0MOV A, 3BH ;(A)=(3BH)MOV 41H,A ;(41H)=(3BH)MOV 42H,41H ;(42H)=(3BH)3-18设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元。
第三章习题1.MCS-51单片机有哪几种寻址方式?适用于什么地址空间?答: MCS-51单片机共有7种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址和相对寻址。
直接寻址:操作数所在存储单元地址由指令直接给出,仅限于在片内RAM 中寻址。
寄存器寻址:指令中以通用寄存器的形式表示操作数。
通用寄存器这里特指:A、B、DPTR、R0-R7、CY。
操作数在编码指定的寄存器中,适用于片内00H 至1FH的32个字节,用R0,…,R7表示。
注意B寄存器仅在乘法和除法指令中属于寄存器寻址。
寄存器间接寻址:指令指出某一个寄存器的内容作为操作数地址,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,它是一种二次寻找操作数地址的寻址方式。
立即寻址:操作数在指令中直接给出,并与操作码的机器码一起存放在程序存储器中,程序执行时可以立即得到,而不需要另外寻找。
适用于用8位二进制立即数对片内RAM所有地址单元赋值,也可用16位二进制立即数对DPTR赋值,有些编译器中也可用十进制表示。
变址寻址:以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器ROM。
位寻址:指令中直接给出操作数所在单元的位地址,适用于片内RAM里的部分存储单元和某些特殊功能寄存器。
相对寻址:为相对转移指令而设,以PC内容为基址,指令中直接给出转移的相对偏移量,其转移目标只能形成-128至+127字节范围内的跳转。
2.MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,怎样判断某内部数据单元的内容是否为零?答:由于MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,无法直接进行判断,则需要将PSW中的数字编程送到A累加器中,如MOV A,PSW再判断A中的数字是否为零来确定其值是否为零。
3.编程将内部RAM的20H--30H单元内容清零。
第三章单片机的汇编语言与程序设计习题1.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?MOV A,59HMOV R0,AMOV A,#00HMOV @R0,AMOV A,#25HMOV 51H,AMOV 52H,#70H解:MOV A,59H ;A=50HMOV R0,A ;RO=50HMOV A,#00H ;A=00HMOV @R0,A ;50H=00HMOV A,#25H ;A=25HMOV 51H,A ;51H=25HMOV 52H,#70H ;52H=70H所以:A=25H R0=50H ;50H=00H 51H=25H2.请选用合适的指令对P0口内容做修改(例如使P0.0~P0.3不变,P0.4~P0.7为0)。
解:MOV A,P0ANL A,0fhMov P0,A3.试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
解:访问外部数据存储器指令有:MOVX @DPTR,A MOVX DPTR,#0100H MOV @DPTR,AMOVX A,@DPTR MOVX DPTR,#0200H MOV A,@DPTRMOVX A,@Ri MOVX A,@R0MOVX @Ri,A MOVX @RI,A访问程序存储器指令有:MOVX A,@A+PCMOVX A,@A+DPTR4.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR与SP中的内容将有何变化?PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H,#00HMOV 31H,#0FFH解:PUSH 30H ;61H=24HPUSH 31H ;62=10H SP=62HPOP DPL ;DPL=10HPOP DPH ;DPH=24H SP=60HMOV 30H,#00H ;30H=00HMOV 31H,#0FFH ;31H=0FFH5.设(A)=40H,(R1)=23H,(40H)=05H。
单片机课后第三章习题答案单片机课后第三章习题答案第一题:题目:请简述单片机中断的概念及其作用。
答案:单片机中断是指在程序执行过程中,当某个特定的事件发生时,会暂时中断当前正在执行的程序,转而去执行与该事件相关的处理程序。
中断的作用主要有两个方面:一是提高系统的响应速度,当有紧急事件发生时,可以立即中断当前任务去处理该事件,避免了因等待而造成的时间浪费;二是提高系统的可靠性,中断机制可以保证在紧急事件发生时,能够及时进行处理,避免了数据的丢失或系统的崩溃。
第二题:题目:请简述单片机中断的分类及其优先级。
答案:单片机中断可以分为外部中断和内部中断。
外部中断是指通过外部引脚接收到的中断信号,如按键、传感器等;内部中断是指通过内部定时器或其他模块产生的中断信号,如定时器溢出中断、串口接收中断等。
优先级方面,不同的中断源可以设置不同的优先级,一般来说,优先级越高的中断会先被响应和执行,优先级越低的中断会被延迟执行。
但是需要注意的是,在处理中断时,要尽量保证高优先级中断的处理时间短,以免影响低优先级中断的及时响应。
第三题:题目:请简述中断服务程序的编写流程。
答案:中断服务程序的编写流程如下:1. 定义中断向量表:将每个中断源对应的中断服务程序的入口地址存储在中断向量表中,以便单片机在中断发生时能够正确地找到对应的中断服务程序。
2. 初始化中断控制寄存器:根据需要,设置中断源的触发条件和优先级。
3. 编写中断服务程序:根据中断源的不同,编写相应的中断服务程序。
中断服务程序一般包括中断处理前的准备工作、中断处理代码和中断处理后的清理工作。
4. 注册中断服务程序:将编写好的中断服务程序的入口地址注册到中断向量表中,以便单片机在中断发生时能够正确地跳转到对应的中断服务程序。
5. 启用中断:根据需要,使能相应的中断源,使其能够触发中断。
第四题:题目:请简述单片机中断的优缺点。
答案:单片机中断的优点主要体现在两个方面:一是提高了系统的响应速度,当有紧急事件发生时,可以立即中断当前任务去处理该事件,避免了因等待而造成的时间浪费;二是提高了系统的可靠性,中断机制可以保证在紧急事件发生时,能够及时进行处理,避免了数据的丢失或系统的崩溃。
单片机原理与应用练习题3答案(总11页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--练习题3答案1. 简述下列基本概念:指令,指令系统,机器语言,汇编语言。
答:指令是单片机CPU执行某种操作的命令。
指令系统是一台计算机所能执行的指令集合。
机器语言即二进制代码语言,是计算机可以直接识别。
汇编语言是用助记符、字符串和数字等来表示指令的程序语。
2. 简述AT89S51单片机的指令格式答:该单片机的指令由两部分组成,即操作码和操作数。
操作码用来规定指令进行什么操作,而操作数则是指令操作的对象,操作数可能是一个具体的数据,也可能是指出到哪里取得数据的地址或符号。
指令格式一般为:[ 标号:] 操作码 [操作数1][,操作数2][,操作数3] [;注释] 3. 简述AT89S51的寻址方式和所能涉及的寻址空间答:共有7种寻址方式,见表3-2。
分别是:(1)寄存器寻址:寻址范围为通用寄存器组,共4组32个,但只能使置;(2)直接寻址:寻址范围为内部RAM,包括低128位用户RAM区和高128位专用寄存器;(3)寄存器间接寻址:寻址范围为内部RAM低128位,外部RAM 64KB(低256单元可以使用DPTR和R0、R1作为间接寻址寄存器,而其他单元只能用DPTR作为间接寻址寄存器);(4)立即寻址:直接给出立即数,不涉及寻址空间;(5)变址寻址:只对程序寄存器进行寻址;(6)相对寻址:以PC的内容为基值,加上指令机器代码中‘相对地址’形成新的PC值转移;(7)位寻址:寻址空间包括内部RAM位寻址区(20~2FH)和专用寄存器的可寻址位。
4. 要访问片外程序存储器和片外数据存储器,应采用哪些寻址方式答:访问片外程序存储器采用变址寻址方式,片外数据存储器采用寄存器间接寻址方式,且用DPTR可以访问64KB,而用R0或者R1只可访问低256字节。
5. 在AT89S51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。
第三章 单片机的汇编语言与程序设计习题1.设内部RAM 中59H 单元的内容为50H ,写出当执行下列程序段后寄存器 A , R0和内部RAM 中50H ,51H 单元的内容为何值?2.请选用合适的指令对P0 口内容做修改(例如使P0.0~P0.3不变,P0.4~P0.7为 0)。
试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
MOV A , 59HMOV R0, AMOV A , #00HMOV @R0, AMOV A , #25HMOV 51H , AMOV 52H , #70HMOV A , 59H ; A=50H MOV R0, A ; RO=50H MOV A , #00H ; A=00H MOV @R0, A ; 50H=00H MOV A , #25H ; A=25H MOV 51H , A; 51H=25HMOV52H , #70H ; 52H=70H解:所以: A=25H R0=50HMOV A , P0 ANL A , 0fh MovP0, A解:50H=00H 51H=25H3.MOVX A , @A+PCMOVX A , @A+DPTR4.设堆栈指针SP 中的内容为60H ,内部RAM 中30H 和31H 单元的内容分别为24H 和10H ,执行下列程序段后,61H , 62H , 30H ,31H ,DPTR 及SP 中的内容 将有何变化?(R1)=23H (40H)=05H 执行下列两条指令后,累加器 A 和R1以@DPTR , A MOVX DPTR , #0100H MOV @DPTR , A A , @DPTR MOVX DPTR , #0200HMOVA , @DPTRA , @Ri MOVX A , @R0@Ri , AMOVX @RI , A解:访问外部数据存储器指令有:MOVX MOVX MOVX MOVX访问程序存储器指令有:PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H,#00HMOV31H,#0FFH解:P USH30H;61H=24H PUSH 31H;62=10HPOP DPL;DPL=10H POP DPH;DPH=24HMOV30H,#00H ;30H=00HMOV 31H ,#0FFH ;31H=0FFHSP=62HSP=60H5.设(A)=40H,6.两个四位BCD 码数相加,被加数和加数分别存于50H ,51H 和52H ,53H 单元 中(次序为千位、百位在低地址中),和数存在54H ,55H 和56H 中(56H 用来存放最高位的进位, 试编写加法程序)解: ORG0000H LJMP START ORG0100H START: MOVA , 53H ADD A , 51H DA A MOV 55H , A MOV A , 52H ADDC A , 50H DA A MOV 56H , C SJMP $END7.设(A ) =01010101B, (R5) =10101010B,分别写出执行 ANL A , R5; ORL A , R5:XRL A , R5 指令后结果。
XCH A , R1 XCHDA,@R1XCH A , R1 ; A=23H R1=40H XCHDA,@R1; A=25H40H=03H及内部RAM 中40H 单元的内容各位何值?解:解: ANL A,R500000000BORL A,R5 11111111BXRL A,R5 111111118.设指令SJMPrel=7EI并假设该指令存放在2114H和2115H单元中。
当该指令执行后,程序将跳转到何地址?解:2116H+60H=2176H9.简述转移指令AJMP addril, SJMPrel,LJMP addr16 及JMP @A+DRTF的应用场合。
解:AJMP addr11为2K字节范围内的无条件转跳指令,把程序的执行转移到指定的地址。
SJMP rel是无条件转跳指令,执行时在PC加2后,把指令中补码形式的偏移量加到PC上,并计算出转向目标地址。
转向的目标地址可以在这条指令前128 字节到后127字节之间LJMP addr16执行这条指令时把指令的第二字节和第三字节分别装入PC的高位和地位字节中无条件地转向指定地址。
转移目标地址可以在64K程序存储器地址空间的任何地方,不影响任何标志。
JMP @A+DRT脂令的功能是把累加器中8位无符号数与数据指针DRTR中的16位数相加,将结果作为下条指令地址送入PC,利用这条指令能实现程序的散转。
10.试分析下列程序段,当程序执行后,位地址00H, 01H中的内容将为何值?P1 口的8 条I/O 线为何状态?CLR CMOV A,#66HJC LOOP1CPL CSETB 01HLOOP: ORL C,ACC.0JB ACC.2,LOOP2CLR 00HLOOP2: MOV P1,A解:CLR C ;CY=0MOV A,#66H ;A=66HJC LOOP1CPL C ;CY=1SETB 01H ;20H.1=1LOOP: ORL C,ACC.0 ;CY=1JB ACC.2,LOOP2 ;CLR 00HLOOP2: MOV P1,A ; P1=01100SJMP $20H.0=0 20H.1=1 P1=66H11.的特查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列次序点。
MOV 78H,80HMOV 78H,#80H解:直接寻址单元传送到直接寻址单元的机器码是第二个操作数在前,而立即数传送到直接地址单元是第一个操作数在前,次序正好相反。
12.手工汇编下列程序段ORG 873BHAAA EQU 851AH QQQMOV A,35HCLRCSUBBA,#0AHJCQQ16MOVA,36HSUBBA,#0AHJCQQ15AJMPAAA QQ15: MOV 35H,#00H QQ16:JNB 02H,QQ17MOVR6,39HDECR6SJMPQQ18 QQ17:MOV R6,39HINC39H QQ18:CLR 05HLJMP8500HENDx,y 分别存放于内部存储器50H,51H 单元中,试编写一个程 结果存入 52H , 53H 两个单元中。
13.若有两个无符号数序实现 x*10+y ,解 : ORG0000HSJMP START ORG0030H解: ORG SJMP ORG 0000HSTART 0030HSTART: MOV 1EH,#51H ;正数存放首地址51H 存于1EH 单元MOV 1FH,#71H ;负数存放首地址71H 存于1EH 单元 MOV R0,#20H ;建立取数(源操作数)的地址指针MOV R2,#30 ;预置数据长度MOV 50H , #00H ; 正数个数统计单元清零 MOV 70H,#00H ;负数个数统计单元清零 LOOP:MOVA,@R0 ;取数JB ACC.7,NEG ;是负数转NEG 处理POST:MOVR1,1EH ;是正数,将暂存的地址送R1 (间址寄存器)MOV @R1,A ; 将正数入存 INC50H;正数个数加 120H 单元开始,有 30 个数据。
试编一个程序,把其中的正数,50H 和14 从内部存储器 负数分别送51H 和71H 开始的存储单元,并分别记下正数负数的个数送70H 单元。
START :MOV A,50H MOV B,#10MUL ABMOV 53H,A ADDC A ,B MOV 52H,A SJMP $END;(50H )X10积的高、低字节分别在 B 、A 中ADD A,51H ;积的低字节加(51H )其和存放在53H 中MOV A,#00H ;积的高字节加进位位存放在 52H 中。
INC1EH ;正数暂存地址加 1 修正 LOOP1: INCR0;取数地址加 1 修正DJNZ R2,LOOP ;计数长度减 1,不等于零,继续循环统计 SJMP $ ;结束NEG: MOV R1,1FH;是负数,将暂存的地址送 R1 (间址寄存器) MOV @R1,A ; 将正数入存 INC 70H ; 负数个数加 1 INC1FH; 负数暂存地址加 1 修正 SJMP LOOP1; 转取数地址修正15内部存储单元 奇检验。
40H 中有一个ASCI 码字符,试编一程序,给该数的最高位加上解: ORG 0000HSJMP STARTORG0030HSTART: MOVA,40H ;取数给 ACLR ACC.7;A 最高位(奇偶校验位)清零JB P, LOOP ;40H 中的ASCII 码原来就是奇数个1 (最高位给零) SETBACC.7 ;40H 中的ACSI 码原来是偶数个1,最高位置1 LOOP : MOV40H,A ; 入存 SJMP $;结束END将存放在自DATA 单元开始的一个四字节数(高位在前)取补解:若DATA 在内部数据存储器中(假如存放在 30H 起始的4个单元中);采用16.编写一段程序, 后送回原单ORG 0000H SJMP START ORG0030H START: MOVR2,#00H ;和高字节清零 MOVR3,#00H;和低字节清零求反加 1 的算法;ORG 000HSJMP STARTORG 0030HSTART: SETBC ;置进位位为 1 MOV R2, #04H;预置计数长度MOV R0, #DATA1+3 ;取数指针指向低字节的地址 LOOP: MOVA , @R0 ;取数 CPLA;求反 ADDC A , #00H ;加进位 MOV @R0, A ;入存DEC R0 ;地址指针修正DJNZ R2, LOOP ;4字节未处理完,继续循环 SJMP $ ;结束DATA1 EQU 30H;END17.以BUF1为起始地址的外存储区中,存放有 16个单字节无符号二进制数,是 编一程序,求其平均值并送 BUF2单元。
解:设R2、R3存放和,将其除以16(R2、R3联合左移4位)即为平均置值(单 字节存放)MOV DPTR ,#DATA1;建立外部数据存储器的地址指针END18.在DATA1单元中有一个带符号8位二位进制数X 。
编一程序,按以下关系计算 y值,送DATA2单元。
y =x+5, x>0 y=x ,x=0 y=x-5,x<0MOVR4, #10H;预置计数长度 LOOP: MOVX A , @DPTR;从外部数据存储器取数ADD A , R3MOV R3, AMOVA , R2;ADDC A , #00H;MOV R2, A ;累加INC DPTR ;地址指针修正DJNZ R4, LOOP ;16 字节未累加完,继续循环累加 MOV R4, #04H;R2、R3联合移位4次(除以16)LOOP1: CLRCMOV A , R2RRC AMOVR3, ADJNZ R4, LOOP1 ;平均值存放于R3中 SJMP $; 结束DATA1 EQU 1000H;解:设DATA1 DATA2为内部数据存储器的二个单元(假设为30H、31H)且y的值单字节不会产生溢除出ORG 000HSJMPSTARTORG0030HSTART:MOVA,30H ;取数X给AJZ ZERO;若x=0,则丫=0,转入存JB ACC.7,NEG ;若XV0,则转X-5POZI :ADD A,#05H ;若X>0,则X=5,入存SJMP ZERO;NEG: CLR C;SUBBA,#05H;ZERO: MOV31H,A ;结果入存SJMP $END19.设内部RAM 中30H 和31H 单元中有两个带符号数,求出其中的大数存放在32H 单元中。