您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > 第3章-MCS-51系列单片机的指令系统和汇编语言程序
第3章MCS一51系列单片机的指令系统和汇编语言程序3·1汇编指令3·1·1请阐明机器语言、汇编语言、高级语言三者的主要区别,进一步说明为什么这三种语言缺一不可。3·1·2请总结:(1)汇编语言程序的优缺点和适用场合。(2)学习微机原理课程时,为什么一定要学汇编语言程序?3·1·3MCS一51系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。3·1·4要访问片内RAM,可有哪几种寻址方式?3·1·5要访问片外RAM,有哪几种寻址方式?3·1·6要访问ROM,又有哪几种寻址方式?3·1·7试按寻址方式对MCS一51系列单片机的各指令重新进行归类(一般根据源操作数寻址方式归类,程序转移类指令例外)。3·1·8试分别针对51子系列与52子系列,说明MOVA,direct指令与MOVA,@Rj指令的访问范围。3·1·9传送类指令中哪几个小类是访问RAM的?哪几个小类是访问ROM的?为什么访问ROM的指令那么少?CPU访问ROM多不多?什么时候需要访问ROM?3·1·10试绘图示明MCS一51系列单片机数据传送类指令可满足的各种传送关系。3·1·11请选用指令,分别达到下列操作:(1)将累加器内容送工作寄存器R6.(2)将累加器内容送片内RAM的7BH单元。(3)将累加器内容送片外RAM的7BH单元。(4)将累加器内容送片外RAM的007BH单元。(5)将ROM007BH单元内容送累加器。3·1·12区分下列指令的不同功能:(l)MOVA,#24H与MOVA.24H(2)MOVA,R0与MOVA,@R0(3)MOVA,@R0与MOVXA,@R03·1·13设片内RAM30H单元的内容为40H;片内RAM40H单元的内容为l0H;片内RAMl0H单元的内容为00H;(Pl)=0CAH。请写出下列各指令的机器码与执行下列指令后的结果(指各有关寄存器、RAM单元与端口的内容)。MOVR0,#30HMOVA,@R0MOVRI,AMOVB,@RlMOV@R0,PlMOVP3,PlMOVl0H,#20HMOV30H,l0H3·1.14已知:(A)=35H,(R0)=6FH,(Pl)=FCH,(SP)=C0H,试分别写出下列指令的机器码及执行各条指令的结果:(l)MOVR6,A(2)MOV@R0,A(3)MOVA,廿90H(4)MOVA,90H(5)MOV80H,廿81H(6)MOVX@R0,A(7)PUSHA(8)SWAPA(g)XCHA,R03·1.15已知:(A)=02H,(Rl)=7FH,(DPTR)=2FFCH,片内RAM(7FH)=70H,片外RAM(FFEH)=llH,ROM(FFEH)=64H,试分别写出下列指令的机器码及执行各条指令的结果。(l)MOVA,@Rl(2)MOVX@DPTR,A(3)MOVCA,@A+DPTR(4)XCHDA,@Rl3·1.16已知:(A)=78H,(Rl)=78H,(B)=04H,C=l,片内RAM(78H)=DDH,片内RAM(80H)=6CH,试分别写出下列指令的机器码及执行各条指令的结果(如涉及标志位,也要写出)。(l)ADDA,@Rl(2)ADDCA,78H(3)SUBBA,#77H(4)INCRl(5)DEC78H(6)MULAB(7)DIVAB(8)ANL78H,#78H(9)ORLA,#0FH(10)XRL80H,A3·1·17已知:C=0,累加器和Rl内容分别为无符号数甲和乙,间:执行指令ADDCA,Rl后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取?(1)甲为02H,乙为FFH(2)甲为02H,乙为F0H3·1·18已知:C=0,累加器和Rl内容分别为补码表示的带符号数甲和乙,间:执行指令ADDCA,Rl后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取?(1)甲为78H,乙为05H(2)甲为88H,乙为FBH(3)甲为78H,乙为69H(4)甲为88H,乙为97H(5)甲为7FH,乙为FEH(6)甲为7FH,乙为80H3·1·19已知:C=0,累加器和Rl内容分别为无符号数甲和乙,间:执行指令STTBBA,Rl后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取?(1)甲为02H,乙为FFH(2)甲为FFH,乙为02H3·1·20已知:C=0,累加器和Rl内容分别为补码表示的带符号数甲和乙,问:执行指令SUBBA,R1后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取?(1)甲为02H,乙为0lH(2)甲为0lH,乙为02H(3)甲为FFH,乙为FFH(4)甲为FEH,乙为FFH(5)甲为04H,乙为FFH(6)甲为FFH,乙为04H(7)甲为7FH,乙为ClH(8)甲为ClH,乙为7FH3·1·21请对下列各组数分别计算与、或、异或的结果:(1)10011010和00001111(2)11010011和01011010(3)11001100和00110011(4)10101010和111111113·1·22为达到下列要求,请说明应采用何种逻辑操作、采用什么操作数。要求不得改变各未涉及位的内容。(1)使累加器的最低位置1(2)清除累加器的高4位(3)使A.2和A.3置1(4)清除A·.3、A.4、A.5、A.63·1·93请总结运用与、或、异或指令对字节内容进行修改的各种办法。3·1·94写出下列各条指令的机器码,并逐条写出依次执行每一条后的结果和PSw的内容:(l)CLRA(2)MOVA,#9BH(3)MOvB,#0AFH(4)ADDA,B3,1·95请详细说明RET和RETI这两条指令的区别。3·1·96已知:(A)=0,(Rl)=40H.片内RAM(30H)=0lH,FIRST=2000H,SECOND=2050H,试分别写出下列指令的机器码及执行各条指令的结果:(l))FIRST:AIMPSECOND(2)FIRST:LIMPSECOND(3)FIRST.SIMPSECOND(4)FIRST.JZSECONDC5)FIRST:CINEA,30H,SECOND(6)FIRST:LCALLSECOND(7)SECOND:DJNZRl,FIRST3·1·97已知:P1.7=1,A.0=0,C=l,FIRST=l000H,SECOND=l020H,试分别写出下列指令的机器码及执行各条指令的结果:(l)MOV26H,C(2)CPLA.0(3)CLRPl.7(4)ORLC,/P1.7(5)FIRST:lCSECOND(6)FIRST:JNBA.0,SECOND(7)SECOND:JBCPl.7,FIRST3·1·28要选用工作寄存器3组,请采用三种不同的指令实现之。3·1·29列举三种能使累加器A内容清零的指令,并比较其优、缺点。3·1·3016位地址共涉及两个字节,请统计在哪些场合按照先低后高规则处理,哪些场合却按照先高后低规则。3·1·31分组讨论:(1)算术操作类指令对标志位的影响。(2)逻辑操作类指令对字节内容的修改。(3)程序转移类指令长转移、绝对转移、短转移、绝对转移与相对转移、无条件转移与条件转移的区分;绝对转移指令机器码与转移范围的确定;相对转移指令相对偏移量的计算;散转指令的查表转移;调用与返主指令的堆栈操作;比较转移指令的格式与功用。(4)位操作类指令中直接寻址位的表示方式。3·1·39请统计MCS一51系列单片机有哪些指令可用于数据输入与输出?3·1·33请统计MCS一51系列单步机有哪些指令可用于修改并行I/O口端口寄存器的内容?3·1·34综述MCS一51系列单片机指令系统的特点、所长和所短。已学Z80的学生,试比较两种指令系统的优、缺点。3·1·35请按MCS一51系列单片机指令的大类,分别统计其单字节、双字节、三字节指令数和单周期、双周期、四周期指令数。3·1·36试按图3-1所示的格式,整理出MCS一51系列单片机各种指令的速查表(由机器码的第一字节查指令,或倒查)。3·1.37请解释下列名词:机器码助记符操作码操作数源程序目标程序汇编指令汇编程序汇编语言汇编语言程序汇编机器汇编人工汇编3·1.38经过汇编后,下列各条语句的标号将是什么数值?ORG2000HTABLE:DSl0WORD:DSl5,20,25,30FANG:EQUl000HBEGIN:MOVA,R03·1·39下列程序段经汇编后,从2000H开始的各有关存储单元的内容将是什么?ORG2000HTAB:DS5DB10H,10DW2100HORG2050HDWTABDBWORK3·1·40下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么?ORGl000HTABl:EQU1234HTAB2:EQU3000HDBSTARTDWTABl,TAB23·2汇编语言程序3·2·1综述汇编语言程序的书写格式。3·2·2要将片内RAM0FH单元的内容传送去专用寄存器B,对OFH单元的寻址可有三种办法:(l)R寻址(2)R间址(3)direct寻址请分别编出相应程序,比较其字节数、机器周期数和优缺点。3·2·3设(R0)=7EH,(DPTR)=l0FEH片内RAM7E单元的内容为0FFH7F单元的内容为38H试为下列程序的每条指令注释其执行结果。INC@R0INCR0INC@R0INCDPTRINCDPTRTNCDPTR3·2·4试编程:引用与运算,判断某8位二进制数是奇数还是偶数。3·2·5试编程:引用或运算,使任意8位二进制数的符号位必为1。3·2·6请思考:引用异或运算,怎样可使一带符号数的符号位改变、数据位不变;怎样可使该数必然变03·2·7要选择工作寄存器组,可有几种编程办法?3·2·8某压力测试的线性处理程序如下,如A/D转换器的输出为02H,问执行程序后(A)=?MOVP1,#0FFHMOVA,P1MOVCA,@A+PCTAB:DB00HDB00HDB01HDB02H;DBFEHEND3·2·9设ROM、片内RAM、RAM各有关单元的内容示如下图,问执行下列程序段后(A)=?0000AJMP030HORG0030H0030MOVR0,#32HMOVA,@R0MOVR1,AMOVXA,@R1MOVCA,@A+DPTR3·2·10若在片内RAM30H单元中有2位压缩的BCD码95H,间执行下列程序后,片内RAM30H单元的内容是什么?31H、32H的内容又是什么?并写出BCD码十进制调整的过程。MOVR0,#30HMOVA,@R0ANLA,#0FHMOVR3,AMOVA,@R0SWAPAANLA,#0FHADDA,R3DAAMOV@R0,AMOVR3,AINCR0ANLA,#0FHMOV@R0,AINCR0MOVA,R3ANLA,#0F0HSWAPAMOV@R0,ARET3·2·11有程序如下:CLRCCLRRS1CLRRS0MOVA,#38HMOVR0,AMOV29H,R0SETBRS0MOVRl,AMOV26H,AMOV28H,C请:(1)区分哪些是位操作指令?哪些是字节操作指令?(2)写出程序执行后,片内RAM有关单元的内容。(3)译成机器码。(4)按汇编语言程序的标准格式书写,要求有各条指令的存放地址和必要的注释。(5)如fOSC=l2MHz,计算这段程序的执行时间。3·2·12试编程:将两个4位二进制数并存于一个字节。3·2·13试编程:将存于片内RAM40H、41H单元中的16位数求补,结果放回原单元(低字节放40H单元)。3·2·14试编程:有两双字节压缩的BCD码数相加,设该两待加数分别按先低后高原则存放在30H、31H和40H、41H单元,和要求放回30H、31H单元。3·2·15试编程:将累加器A内容低4位送片外RAM7AH单元,高4位送片外RAM7BH单元,7AH、7BH单元的高4位均清零。3·2·16试编程:将片内RAM50H、51H单元两个无符号数中较小的数存于60H单元。3·2·17试编程:将片内RAM60H~69H单元中的l0个数相加,和的低8位存
本文标题:第3章-MCS-51系列单片机的指令系统和汇编语言程序
链接地址:https://www.777doc.com/doc-2192918 .html