单片机第三章作业讲评
单片机,第三章答案解析

思考题:【3-1 】汇编语言与 C 语言哪种语言的可读性和可移植性强?在对速度和时序敏感的场合应该使用什么语言?对于复杂的单片机系统一般采用 C 与汇编混合编程的形式这句话对吗?【3-2】二进制机器语言与C和汇编语言两者之间是什么关系?用C或汇编编制的程序在ROM中是以编译后的二进制代码的形式存放这句话对吗?【3-3】80C51系列单片机指令的格式包含哪几个部分?各部分之间的间隔符是什么?四个部分中哪个部分是必须存在的,哪几个部分是可有可无的?标号的格式和代表的意义是?【3-4 】80C51 系列单片机有哪几种寻址方式?【3-5】80C51单片机中立即数是存放在ROM中还是RAM中?【3-6 】判断下列说法是否正确。
(1)立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。
()(2)指令周期是执行一条指令的时间。
()(3)指令中直接给出的操作数称为直接寻址。
()(4)内部寄存器Rn (n=0~7)可作为间接寻址寄存器。
()【3-7 】80C51 单片机可以进行直接寻址的区域是?【3-8 】80C51 单片机可以进行寄存器寻址的范围是?【3-9 】80C51 单片机可以进行寄存器间接寻址的寄存器是?寻址的范围是?【3-10】在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。
【3-11 】80C51 单片机变址寻址方式中可以作基址的寄存器是?可以作变址的寄存器是?@A+P,C @A+DPT所找到的操作数是在ROM中对吗?【3-12】80C51单片机相对寻址改变的是PC的当前值,即改变的CPU执行指令的顺序这句话对否?【3-13 】若访问特殊功能寄存器,只可以采用那种寻址方式?【3-14】若访问外部RAM单元,只可以使用哪种寻址方式?【3-15】若访问内部RAM单元,可使用哪些寻址方式?【3-16 】若访问内外程序存储器,可使用哪些寻址方式?【3-17 】80C51 单片机可以进行位寻址的字节单元范围除11 个可位寻址的特殊功能寄存器外还包括哪个区域?分别找出位地址是00H 08H 22H、7FH D0H E0H对应的字节地址?【3-18】已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=0EFH试写出执行以下程序段后有关单元的内容。
单片机原理及应用第三章 80C51单片机的指令系统PPT课件

单片机原理及应用
第三章 80C51单片机的指令系统
3.1.3指令系统中使用的符号
在指令或语句中,经常使用一些符号。下面将所使用 的典型符号的意义作一说明。
Rn(n=0-7)--当前工作寄存器组中的寄存器R0-R7之的某一个; Ri(i=0,1)--当前工作寄存器组中可以作为地址寄存器的2个寄
第三章(第 5页)
单片机原理及应用
第三章 80C51单片机的指令系统
(2)MCS-51单片机指令系统按指令所占的字节数可 分为以下三类:
·单字节指令(49条) ·双字节指令(46条) ·三字节指令(16条) (3)按指令的执行时间可分为以下三类: ·单周期指令(65条) ·双周期指令(44条) ·四周期指令(2条)
第三章 80C51单片机的指令系统
3.1 概述
基本内容
3.1.1指令分类
3.1.2指令格式
3.1.3指令系统中使用的符号
3.2 寻址方式和寻址空间
3.3 指令系统
3.3.1数据传送类指令
3.3.2算术运算类指令
3.3.3逻辑运算类指令
3.3.4控制转移类指令
3.3.5布尔(位)操作类指令
第三章(第 3页)
存器R0或R1; @ -----------间接寻址寄存器或基址寄存器的前缀符号; @Ri:---- 表示寄存器间接寻址 #data --------8位立即数; #data16-------16位立即数; direct---------内部数据存贮器单元的地址及特殊功能存器SFR的
地址,对SFR,既可使用它的物理地址,也可直接 使用它的名字。
第三章(第 6页)
单片机第3章习题答案.docx

笫3章习题答案一、选择题1. 在中断服务程序屮,至少应该有一条(D )0 (A )传送指令(B )转移指令(C )加法指令(D )中断返回指令2. 要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是(C )。
(A ) MOV(B ) MOVC(C ) MOVX(D )以上都行3. JNZ rel 指令的寻址方式是(C )。
(A )立即寻址(B )寄存器寻址 (C )相对寻址(D )位寻址4. 执行【.CALL 1020H 指令时,MCS — 51所完成的操作是(D )。
(A)保护 PC(B) PC-1020H(C)保护现场 _(D) PC + 3 入栈,PC-1020H5. 下面哪条指令产生丽信号(D )。
(A) MOVX A, @DPTR (B) MOVC A, @A+PC (C) MOVCA, @A+DPTR(D) MOVX@DPTR, A6. 在执行PUSH ACC 指令时,MCS-51完成的操作是(A )。
(A) (SP) - (SP) +1,((SP)) - (ACC)(B) (SP) - (ACC), ((SP)) - (SP) -1(C) (SP) - (SP) -1,((SP)) - (ACC)(D) ((SP)) - (ACC), (SP) - (SP) +1 9. 在寄存器间接寻址方式中,指定寄存器中存放的是(B )。
10. 执行返回指令时,返回的断点是(C )。
二、填空题:1. 8051指令基本格式由标号、操作码助记符、操作数和注释组成。
2. MOV A, 20H 源寻址方式为 直接 寻址。
3. 执行ANL A, #0FII 指令后,累加器A 的高4位= 0000B。
4. JZ rel 的操作码首地址为1000H, re 1=2011,它的转移目的地址为1022H 。
5. 若R7的初值为00H 的情况下,DJNZ R7, tel 指令将循环执行256次。
51单片机,郭天祥,第三章,PDF,Word

3.4中断概念中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。
它也是单片机最重要的功能之一, 是我们学习单片机必须要掌握的。
很多初学者被困在中断中,学了很久仍然不知道中断究竟是个什么东西,大家千万不要认为它有多难,其实只要掌握正确的学习方法,没有哪个知识点是学不会的。
51单片机内部一共有5个中断源,也就是说,有5种情况发生时,会使单片机去处理中断程序。
在本章我们只讲解其中的一种中断情况——定时器中断,只要大家从理论和实践中真正明白了中断的概念,其他几种情况便能轻松掌握。
为了能让大家更容易理解中断概念,我们先来举一个生活事例:你打开火,烧上一壶水, 然后去洗衣服,在洗衣服的过程中,突然听到水壶发出水开的报警声,这时,你停止洗衣服动作,立即去关掉火,然后将开水灌入暖水瓶中,灌完开水后,你又回去继续洗衣服。
这个过程中实际上就发生了一次中断,其流程图如图3.4.1所示。
对于单片机来讲,中断是指CPU在处理某一事件A时,发生了另一事件B,请求CPU 迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应),转去处理事件B (中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A (中断返回),这一过程称为中断,其流程图如图3.4.2所示。
再回来看前面讲的生活事例,与单片机中断结合分析,你的主任务是洗衣服,水开报警这是一个中断请求,这一时刻相当于断点处,你响应中断去关火,然后将开水灌入暖水瓶中,这一动作实际上就是处理中断程序,灌完开水后再回去继续洗衣服,相当于处理完中断程序后再返回主程序继续执行主程序。
这里需要注意的是,水开是随时都有可能的,但是无论什么时候开,只要一开你将立即去处理它,处理完后再回来继续接着洗刚才那件衣服。
单片机在执行程序时,中断也随时有可能发生,但无论何时发生,只要一旦发生,单片机将立即暂停当前程序,赶去处理中断程序,处理完中断程序后再返回刚才暂停处接着执行原来的程序。
单片机作业讲评及答案

单片机作业讲评及答案第一次作业讲评及答案一、选择题1、单片机的硬件组成包含 CPU 、存储器、I/O接口等三部分,各组成部分之间通过总线相连接。
2、51系列单片机中,MOVX A,@Ri指令与MOV A,@Ri指令的访问对象分别为外部RAM、内部RAM 。
3、MOV A,R0采用的寻址方式为寄存器寻址;MOV A,@R0采用的寻址方式为寄存器间址; MOV A,@A+PC采用的寻址方式为变址寻址;SJMP ABC采用的寻址方式为相对寻址。
4、完成下列数制转换:E5.4H=( 11100101.01 )B=( 229.25 )D=(1000101001.0010010 1)BCD(10010110.0101)BCD=(96.5)D=( 1100000.1 )B=(60.8)H二、是非题(×)1、10D的BCD码为00000010。
(√)2、+16D的原码等于反码等于补码。
(×)3、-25D的原码等于反码等于补码。
(√)4、单片机的主要功能就在于实现计算机控制。
(×)5、单片机中总线上的信息可以同时输送给几个部件,但不可以几个信息同时输送给总线,否则将产生信息冲突。
(×)6、对具体的一条控制总线,其信息的传递是双向的。
(×)7、程序计数器PC是唯一一个不可寻址的专用寄存器。
(×)8、补码运算中,当运算结果超出-127——+127范围时,OV=1。
(×)9、8051单片机堆栈的最大容量不能超过16字节(√)10、单片机的数据指针DPTR是一个16位的专用寄存器三、完成下列数据传送1、将R4的内容送至内部RAM的30H单元。
答:MOV 30H,A2、将外部RAM中45H单元内容送R0答:MOV R0,#45HMOVX A,@R0MOV R0,A3、将ROM中3000H单元内容送外部RAM的4000H单元。
答:CLR AMOV DPTR,#3000HMOVC A,@A+DPTRMOV DPTR,,#4000HMOVX @DPTR,A四、阅读程序1、已知(A)=19H,(B)=04HMUL AB问:执行后,(A)= 64H (B)= 02、分析下列程序执行的结果。
作业讲评(第3章)

D.移码。
答:A
19在下述有关不恢复余数法何时需恢复余数的说法中,______是正确的。
A.最后一次余数为正时,要恢复一次余数;
B.最后一次余数为负时,要恢复一次余数;
C.最后一次余数为0时,要恢复一次余数;
D.任何时候都不恢复余数。
答:B
20在整数定点机中,下述第______种说法是正确的。
14当定点运算发生溢出时,应______。
A.向左规格化;
B.向右规格化;
C.发出出错信息;
D.舍入处理。
答:C
15在原码加减交替除法中,符号位单独处理,参加操作的数是______。
A.原码;
B.绝对值;
C.绝对值的补码;
D.补码。
答:C
16计算机执行乘法指令时,由于其操作较复杂,需要更多的时间,通常采用______控制方式。
A.原码和反码不能表示-1,补码可以表示-1;
B.三种机器数均可表示-1;
C.三种机器数均可表示-1,且三种机器数的表示范围相同;
D.三种机器数均不可表示-1。
答:B
21当用一个16位的二进制数表示浮点数时,下列方案中第_____种最好。
A.阶码取4位(含阶符1位),尾数取12位(含数符1位);
B.阶码取5位(含阶符1位),尾数取11位(含数符1位);
C.反码;
D.移码。
答:D
8设机器数采用补码形式(含l位符号位),若寄存器内容为9BH,则对应的十进制数为______。
A.-27;
B.-97;
C.-101;
D.155。
答:C
9设寄存器内容为80H,若它对应的真值是– 127,则该机器数是______。
单片机第三章课件
一、程序设计概述
(一)程序设计语言 1.机器语言 机器语言是用机器码编写程序。能被计算机直接识别 和执行。
2.汇编语言 汇编语言是用助记符编写程序。
汇编:计算机不能直接识别和执行汇编语言程序,而要通过“翻译”把 源程序译成机器语言程序(目标程序)才能执行,这一“翻译”工作称 为汇编。汇编有人工汇编和计算机汇编两种方法。
பைடு நூலகம்
ORG 0000H MOV A,R1 MOV B,A MUL AB CLR C SUBB A,R2 MOV R4,A MOV A,B SUBB A,#00H MOV R5,A SJMP $ END
【例3-5】编写拆字程序。 将MCS—51片内RAM中20H单元中的高半字节送21H单元 的低半字节,低半字节送22H单元的低半字节,两个单元的 高半字节为0。 程序如下: MOV A,20H SWAP A ANL A,#0FH MOV 21H,A MOV A,20H ANL A,#0FH MOV 22H, A
课堂练习: 1.编写拼字程序。将8051片内RAM50H单元中的高半字节和 51H单元的低半字节拼成一个数,送52H单元。
【例3-6】编写查表程序。 将十六进制数转换为ASCII码。设1位十六进制数存在R0寄 存器的低4位,转换后的ASCII码仍送回R0中。 解: 待转换的十六进制数为0~F。根据ASCII码表可知,0~9 的ASCII码为30H~39H,A~F的ASCII码为41H~46H。将 以上ASCII码值列成表格。
三、分支结构程序设计 在程序设计中,经常需要计算机对某情况进行判断,然后根 据判断的结果选择程序执行的流向,这就是分支程序。 在汇编语言程序中,通常利用条件转移指令形成不同的程序 分支。 1.单分支程序 【例3-7】 在片内RAM 30H单元中存有一个带符号数,试 判断该数的正负性,若为正数,将6EH位清0;若为负数, 将6EH位置1。
李全利版单片机原理及接口技术课后答案(第三章)
李全利版单⽚机原理及接⼝技术课后答案(第三章)章3 80C51的指令系统1.80C51系列单⽚机的指令系统有何特点?答:执⾏时间短。
1个机器周期指令有64条,2个机器周期指令有45条,⽽4个机器周期指令仅有2条(即乘法和除法指令);指令编码字节少。
单字节的指令有49条,双字节的指令有45条,三字节的指令仅有17条;位操作指令丰富。
这是80C51单⽚机⾯向控制特点的重要保证。
2.80C51单⽚机有哪⼏种寻址⽅式?各寻址⽅式所对应的寄存器或存储器空间如何?答:80C51单⽚机的寻址⽅式有七种。
即:寄存器寻址、直接寻址、寄存器间接寻址、⽴即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。
这些寻址⽅式所对应的寄存器和存储空间如下表所⽰。
3.访问特殊功能寄存器SFR可以采⽤哪些寻址⽅式?答:直接寻址和位寻址⽅式。
4.访问内部RAM单元可以采⽤哪些寻址⽅式?答:直接寻址、寄存器间接寻址和位寻址⽅式。
5.访问外部RAM单元可以采⽤哪些寻址⽅式?答:寄存器间接寻址。
6.访问外部程序存储器可以采⽤哪些寻址⽅式?答:⽴即寻址、变址寻址和相对寻址⽅式。
7.为什么说布尔处理功能是80C51单⽚机的重要特点?答:单⽚机指令系统中的布尔指令集、存储器中的位地址空间与CPU中的位操作构成了⽚内的布尔功能系统,它可对位(bit)变量进⾏布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。
在实现位操作时,借⽤了程序状态标志器(PSW)中的进位标志Cy作为位操作的“累加器”。
8.对于80C52单⽚机内部RAM还存在⾼128字节,应采⽤何种⽅式访问?答:寄存器间接寻址⽅式。
9.试根据指令编码表写出下列指令的机器码。
(1)MOV A,#88H----------------74H, 88H(2)MOV R3,50H----------------ABH,50H(3)MOV P1,#55H----------75H,90H,55H(4)ADD A,@R1---------------------27H(5)SETB 12H----------------------D2H,12H10.完成某种操作可以采⽤⼏条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。
单片机第3章习题参考答案解析
单⽚机第3章习题参考答案解析第3章习题参考答案3.1(略)3.2(略)3.3(略)3.4指出下列指令源操作数的寻址⽅式和功能。
1)MOV A,# 40H ;⽴即寻址。
40H→ A2)MOV A, 40H ;直接寻址。
(40H)→ A3)MOV A, @R1 ;寄存器间址。
(R1)→ A4)MOV A, R3 ;寄存器寻址。
R3→ A5)MOVC A,@A+PC ;变址寻址。
(A+PC)→ A6)SJMP LOOP ;相对寻址。
程序转到标号为LOOP的语句处执⾏。
3.5内部RAM的00H单元的寻址⽅式:1)直接寻址,MOV A,00H2)因为00H是⼯作寄存器区,所以还可以寄存器寻址。
MOV A, R0特殊功能寄存器中的操作数的寻址⽅式:1)直接寻址,MOV A, SP2)部分SFR可以位寻址,MOV C, ACC.73.6变址寻址和相对寻址中的地址偏移量异同:1)变址寻址的偏移量是⼀个00H ~ FFH范围内的⽆符号数;相对寻址偏移量是⼀个带符号的8位⼆进制补码,范围为-128 ~ +127。
2)变址寻址的偏移量放在累加器A中,相对寻址的偏移量直接在指令中给出。
3)都是将基地址与地址偏移量相加,形成操作数地址。
3.7写出下列指令的机器码,指出指令中50H和66H各代表什么?1)指令 50H的含义机器码MOV A,# 50H 源操作数7450HMOV A,50H 源操作数的地址E550HMOV 50H,# 20H ⽬的操作数的地址755020HMOV C, 50H 位地址A250HMOV 50H,20H ⽬的操作数的地址852050H2)指令 66H的含义机器码MOV @R0,# 66H 源操作数7666HMOV R6,#66H 源操作数7E66HMOV 66H,# 45H ⽬的操作数的地址756645HMOV 66H,C 位地址9266HMOV 66H,R1 ⽬的操作数的地址8966H3.8写出下列指令的机器码,指出下列程序执⾏后的结果。
单片机第三章习题答案
习题三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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机第三章昨业—9, 10, 11, 12, 14, 19, 20, 23, 24, 25单片机第三章作业讲评09,写出能完成如下数据传送的指令或程序(1)R1中内容传送到R0MOV A,R1 MOV R0,R1MOV A,@R1MOV R0,A MOV @R0,A(2)内部RAM20H单元内容传送到内部RAM30H单元MOV 30H,20H(3)外部RAM20H单元内容传送到内部RAM20H单元MOV R0,#20H MOV R0,#20HMOVX A,@R0MOV XA,@R0MOVX A,@R0MOV 20H,A MOV @R0,AMOV R1, #20H(20H)MOVX A,@R1XCH A, @R1 ;对于本题,到此已经做完MOVX @R1, A (MOVX A,@R1)(4)外部RAM2000H单元内容传送到内部RAM20H单元MOV DPTR,#2000H MOV R0,#2000HMOVX A,@DPTR MOV X A,@DPTR MOVX A,@R0MOV 20H,A MOV 20H,A(5)外部ROM2000H单元内容传送到内部RAM20H单元MOV DPTR(PC),#2000H MOV DPTR,#2000HMOV A,#0 CLR AMOVC A,@A+DPTR MOVC A,@A+DPTRMOV 20H,A MOV 20H,A(6) 外部ROM2000H单元内容传送到外部RAM3000H单元MOV DPTR(PC),#2000H MOV DPTR,#2000HMOV A,#0 CLR AMOVC A,@A+DPTR MOVC A,@A+DPTRMOV DPTR,#3000H MOV DPTR,#3000HMOVX @DPTR,A MOVX @DPTR,A10.试编出将外部RAM 2050H单元内容与外部RAM 2060H单元的内容相互交换的程序。
见课件参考答案MOV DPTR,#2050HMOVX A,@DPTRXCH A,#2060HMOVX @DPTR,AMOV DPTR,#2050HMOVX A,@DPTRMOV 30H,AMOV DPTR,#2060HMOVX A,@DPTRXCH A,30HMOVX @DPTR,AMOV A,30HMOV DPTR,#2050HMOVX @DPTR,ASJMP $END11.已知(20H)=X,(21H)=Y,(22H)=Z,请用图示说明下列程序执行后,堆栈中的内容是什么?(书中答案有错)(1)MOV SP,#70H SP70HPUSH 20H 71H PUSH 21H 72H PUSH 22H 73H (2)MOV SP,#60H SP 60H PUSH 22H 61H PUSH 21H 62H PUSH 20H 63H 栈底X Y Z栈底Z Y X12. 已知SP=73H,(71H )=X ,(72H )=Y ,(73H )=Z ,试问下列程序执行后,20H,21H,22H 单元的内容各是什么?请用图示说明堆栈指针的指向,和堆栈中数据的变化?(书中答案有错) (1) SP 70H POP 20H (20H)=Z T1H? 71H POP 21H (21H)=Y 72H POP 22H (22H)=X 73H (2) 70H POP 22H (22H)=Z 71H POP 21H (21H)=Y 72H POP 20H (20H)=X 73H 不能写成:X=20H14.已知:A=7AH,R0=30H,(30H)=0A5H,PSW=80H. 试问下列程序执行后的结果是什么?注意:给什么寄存器和内存单元,就求什么的结果。
(1)ADDC A,30H 0111 1010 INC 30H 1010 0101 , CY AC F0 RS1 RS0 OV - P 1 1 1 0 0 0 0 0 1 1 0010 0000 A=20H;R0不变;(30H )=0A6H;PSW=0C1H………………….栈底 X Y Z 栈底 X Y Z栈底 22H 21H 20H 栈底 20H 21H 22H(2)SUBB A,30H 0111 1010INC A 1010 0101,CY AC F0 RS1 RS0 OV - P 11 0 0 0 0 1 0 1 1 1101 010011101 0101A=0D5H; R0不变;(30H)不变;PSW=85H(3)SUBB A,#30H 0111 1010DEC R0 0011 0000, CY AC F0 RS1 RS0 OV - P 10 0 0 0 0 0 0 1 0100 1001A=49H;R0=2FH;(30H)=不变;PSW=01H(4)SUBB A,R0 0111 1010DEC 30H 0011 0000,CY AC F0 RS1 RS0 OV - P 10 0 0 0 0 0 0 1 ;; 0100 1001A=49H;R0不变;(30H)=0A4H;PSW=01H D1H?理解好给的条件,也要弄懂题目要的结果;(最低应该写出累加器A 和PSW的结果数值)19.已知:A=7AH,CY=1(PSW=80H). 试问执行下列程序后的结果。
(1)MOV A,#0FH A= 0000 1111BCPL A A=1111 0000BMOV 30H,#00H (30H)=0000 0000BORL 30H,#0ABH (30H)=1010 1011BRL A A=11100001BA=0E1H;(30H)=0AB H(2)MOV A,#0BBH A= 1011 1011BCPL A A=0100 0100BRR A A=0010 0010BMOV 40H,#0A AH (40H)=1010 1010BORL A,40H A=1010 1010BA=0AAH;(40H)=0AAH(3)ANL A,#0FFH A= 0111 1010BMOV 30H,A (30H)=0111 1010BXRL A,30H A=0000 0000BRLC A A=00000001BSWAP A A=0001 0000BA=10H;(30H)=7AH 000000(4)ORL A,#0FH A= 0111 1111BSWAP A A=1111 0111BRRC A A=1111 1011BXRL A,#0FH 0000 1111BANL A,#0F0H A=1111 0100B1111 0000BA=1111 0000BA=0F0H理解好给的条件,也要弄懂题目要的结果;(最低应该写出累加器A 的结果数值)20.试编写出完成如下操作的程序(1)使20H单元的高两位变0,其余位不变。
ANL 20H,#3FH ANL 20H,#0011 1111B (2)使20H单元的高两位变1,其余位不变。
ORL 20H,#0C0H(3)使20H单元的高两位变反,其余位不变。
XRL 20H,#0C0H(4)使20H单元的所有位变反。
XRL 20H,#0FFH CPL A有的同学绕一个圈子,当然,做对了也行。
23.利用减1条件转移指令将外部始地址为DATA1的数据块(数据块为20)传送到片内RAM 开始地址为30H 的数据区。
(书中答案有错误)MOV DPTR,#DATA1MOV R0,#30HMOV R7,#20LOOP:MOVX A,@DPTRMOV @R0,AINC DPTRINC R0DJNZ R7,LOOPSJMP $ENDMOV R0,#DATA1MOV R1,#30HMOV R2,#14HLOOP:MOVX A,@R0MOV @R1,AINC R0INC R1DJNZ R2,LOOPSJMP $END24 已知SP= 70H,试问8031执行存在于2348H (2345H )处的一条LCALL 3456H 指令后,堆栈指针和堆栈中的内容是什么?此时机器调用何处的子程序?2345H LCALL SUB1(3456H) SP 70H2348H MOV …… 71H 48H72H3456H SUB1:MOV . . RET答:机器将调用3456H 处的子程序。
2345H LCALL 3456H 2348H MOV ……25在上例中,当8031执行完子程序末尾一条RET 返回指令时,堆栈指针SP 和程序计数器PC 变为多少?70H,71H 单元的内容是什么?它们是否属于堆栈中的数据?为什么? SP 70H 答:栈顶=栈底=70H ; 71H所以堆栈区为空; 72H 70H,71H 单元的内容不变; (PC)=234BH 。
练习题:栈底48H23H栈底 48H 23H 内部RAM1将外部RAM2000H~2030H单元有一个数据块,请编程把它们传送到片内10H单元开始的RAM数据区。
MOV DPTR,#2000HMOV R0,#10HMOV R7,#31HLOOP:MOVX A,@DPTRMOV @R0,AINC DPTRINC R0DJNZ R7,LOOPSJMP $END2.将内部RAM20H~60H单元有一个数据块,请编程把它们传送到片外1000H单元开始的外部RAM数据区。
MOV DPTR,#1000HMOV R0,#20HMOV R1,#41HLOOP: MOV A,@R0MOVX @DPTR,AINC DPTRINCR0DJNZ R1,LOOPSJMP $ENDMOV DPTR,#1000HMOV R0,#20HMOV R1,#41HLOOP : MOV A,@R0MOVX @DPTR,AINC DPTRINC R0DJNZ R1.LOOPSJMP $END3.将外部RAM2000H~2030H单元有一个数据块,请编程把它们传送到片外1000H单元开始的外部RAM数据区。
MOV DPL,#00HMOV R1,#31HLOOP: MOV DPH,#20HMOVX A,@DPTRMOV DPH,#10HMOVX @DPTR,AINC DPLDJNZ R1,LOOPSJMP $END4.将外部ROM1000H~103FH单元有一个数据块,请编程把它们传送到片外2000H单元开始的RAM数据区。
MOV DPL,#00MOV R7,#40HLOOP: MOV A,#00HMOV DPH,#10HMOVC A,@A+DPTRMOV DPH,#20HMOVX @DPTR,AINC DPLDJNZ R7,LOOPSJMP $END5.将外部ROM1000H~103FH单元有一个数据块,请编程把它们传送到片外1000H单元开始的RAM数据区。
MOV DPTR,#1000HMOV R7,#40HLOOP: MOV A,#00HMOVC A,@A+DPTRMOVX @DPTR,AINC DPTRDJNZ R7,LOOPSJMP $END第四章作业——9,15,17,25第四章补充作业补充题1: 将外部RAM2000H~2030H单元有一个数据块,请编程把它们传送到片外4000H~4030H单元的RAM数据区。