MCS-51系列单片机的指令系统和汇编语言程序
- 格式:doc
- 大小:64.48 KB
- 文档页数:15
第三章MCS51单片机的指令系统和汇编语言程序示例(第5、6、7节)1.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1)MOV A,#19HADD A,#66H(2)MOV A,#5AHADD A,#6BH2.已知:A=85H,R0=30H,(30H)=11H, (31H)=0FFH,C=1,试计算单片机执行下列指令后累加器A和C中的值各是多少?(1)ADDC A,R0, (2)ADDC A,31H(3) ADDC A,@R0, (4) ADDC A,#85H3.已知M1和M2中分别存放两个16位无符号数的低8位,M1+1和M2+1中分别存放两个16位无符号数的高8位,计算两数之和(低8位存放在M1,高8位存放在M1+1,设两数之和不超过16位)。
4.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?CLR CMOV A,#52HSUBB A,#0B4H5.已知:A=0DFH,R1=40H,R7=19H,(30H)=00H,(40H)=0FFH,试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1) DEC A (2) DEC R7 (3) DEC 30H (4) DEC @R16.试写出能完成85+59的BCD加法程序,并对工作过程进行分析。
7.已知:两个8位无符号乘数分别放在30H和31H单元中,编程实现他们乘积的低8位存放在32H,高8位存放在33H。
8.已知:R0=30H,(30H)=0AAH,试分析执行下列指令后累加器A和30H单元的内容是什么?(1)MOV A, #0FFH ANL A, R0(2)MOV A, #0FH ANL A, 30H(3)MOV A, #0F0H ANL A, @R0(4)MOV A, #80H ANL 30H, A9.设:A=0AAH和P1=0FFH,试编程把累加器A的低四位送入P1口的低四位,P1口的高四位保持不变。
第三章MCS51单片机的指令系统和汇编语言程序示例(第5、6、7节)1.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1)MOV A,#19HADD A,#66H(2)MOV A,#5AHADD A,#6BH2.已知:A=85H,R0=30H,(30H)=11H, (31H)=0FFH,C=1,试计算单片机执行下列指令后累加器A和C中的值各是多少?(1)ADDC A,R0, (2)ADDC A,31H(3) ADDC A,@R0, (4) ADDC A,#85H3.已知M1和M2中分别存放两个16位无符号数的低8位,M1+1和M2+1中分别存放两个16位无符号数的高8位,计算两数之和(低8位存放在M1,高8位存放在M1+1,设两数之和不超过16位)。
4.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?CLR CMOV A,#52HSUBB A,#0B4H5.已知:A=0DFH,R1=40H,R7=19H,(30H)=00H,(40H)=0FFH,试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1) DEC A (2) DEC R7 (3) DEC 30H (4) DEC @R16.试写出能完成85+59的BCD加法程序,并对工作过程进行分析。
7.已知:两个8位无符号乘数分别放在30H和31H单元中,编程实现他们乘积的低8位存放在32H,高8位存放在33H。
8.已知:R0=30H,(30H)=0AAH,试分析执行下列指令后累加器A和30H单元的内容是什么?(1)MOV A, #0FFH ANL A, R0(2)MOV A, #0FH ANL A, 30H(3)MOV A, #0F0H ANL A, @R0(4)MOV A, #80H ANL 30H, A9.设:A=0AAH和P1=0FFH,试编程把累加器A的低四位送入P1口的低四位,P1口的高四位保持不变。
MCS51单片机指令系统与汇编语言程序设计MCS-51是一种非常常见的8位单片机系列,该系列包括了多种型号的单片机,如Intel 8051、8031、8052等。
MCS-51单片机指令系统是一组用于驱动该系列单片机的指令集,汇编语言程序设计是利用这些指令来编写程序。
MCS-51单片机指令系统包含了多种指令,可以执行诸如数据传输、算术逻辑运算、控制和数据访问等功能。
这些指令通过各种不同的寻址模式来操作数据,包括立即寻址、寄存器寻址、直接寻址、间接寻址和寄存器间接寻址等。
不同的寻址模式和指令组合可以实现不同的功能。
汇编语言程序设计通过将人类可读的汇编指令翻译成机器可执行的二进制指令来编写程序。
在MCS-51单片机中,汇编指令由操作码和操作数组成。
操作码指定了所执行的操作,如数据传输、算术运算或控制指令。
操作数则指定了指令要操作的数据。
下面以一个简单的例子来说明MCS-51单片机指令系统和汇编语言程序设计的基本原理。
假设我们要编写一个程序,将两个寄存器中的数据相加,并将结果存储到第三个寄存器中。
首先,我们需要将第一个寄存器的值加载到累加器A中,这可以通过MOV指令实现。
MOV指令的操作码为01,操作数为两个寄存器的地址。
例如,MOVA,R0将R0的值加载到A中。
接下来,我们需要将第二个寄存器的值加载到B寄存器中,同样可以使用MOV指令。
MOVB,R1将R1的值加载到B中。
然后,我们可以使用ADD指令将A和B中的值相加,并将结果存储到A中。
ADD指令的操作码为04,操作数为A的地址。
例如,ADDA将累加器中的值与A寄存器中的值相加,并将结果存储到A中。
最后,我们可以使用MOV指令将A中的结果移动到第三个寄存器中,例如,MOVR2,A将A的值移动到R2中。
通过组合使用这些指令,我们可以实现将两个寄存器中的值相加并存储到第三个寄存器中的功能。
总结来说,MCS-51单片机指令系统和汇编语言程序设计是一种用于编程控制该系列单片机的方式。
3·1 汇编指令第3 章MCS 一51 系列单片机的指令系统和汇编语言程序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 子系列,说明MOV A,direct 指令与MOV A,@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)MOV A,#24H 与MOV A.24H(2)MOV A,R0 与MOV A,@R0(3)MOV A,@R0 与MOVX A,@R03·1·13 设片内RAM 30H 单元的内容为40H;片内RAM 40H 单元的内容为l0H;片内RAM l0H 单元的内容为00H;(Pl)=0CAH。
请写出以下各指令的机器码与执行以下指令后的结果(指各有关存放器、RAM 单元与端口的内容)。
MOV R0,#30HMOV A,@R0MOV RI,AMOV B,@RlMOV @R0,PlMOV P3,PlMOV l0H,#20HMOV 30H,l0H3·1.14 :(A)=35H,(R0)=6FH,(Pl)=FCH,(SP)=C0H,试分别写出以下指令的机器码及执行各条指令的结果:(l)MOV(2)MOV(3)MOVR6,A@R0,A A,廿90H(4)MOV A,90H(5)MOV 80H,廿81H(6)MOVX @R0,A(7)PUSH A(8)SWAP A(g)XCH A,R03·1.15 :(A)=02H,(Rl)=7FH,(DPTR)=2FFCH, 片内RAM(7FH)=70H,片外RAM (FFEH)=llH,ROM (FFEH)=64H,试分别写出以下指令的机器码及执行各条指令的结果。
(l)MOV A,@Rl(2)MOVX @DPTR,A(3)MOVC A,@A+DPTR(4)XCHD A,@Rl3 ·1.16 :(A)=78H,(Rl)=78H,(B)=04H,C=l,片内RAM (78H)=DDH,片内RAM (80H)=6CH,试分别写出以下指令的机器码及执行各条指令的结果(如涉及标志位,也要写出)。
(l)ADD (2)ADDC A,@Rl A,78H(3)SUBB A,#77H(4)INC Rl(5)DEC 78H(6)MUL AB(7)DIV AB(8)ANL 78H,#78H(9)ORL A,#0FH(10)XRL 80H,A3·1·17 :C=0,累加器和Rl 内容分别为无符号数甲和乙,间:执行指令ADDC A,Rl 后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取?(1)甲为02H,乙为FFH(2)甲为02H,乙为F0H3·1·18 :C=0,累加器和Rl 内容分别为补码表示的带符号数甲和乙,间:执行指令ADDC A,Rl 后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取?(1)甲为78H,乙为05H(2)甲为88H,乙为FBH(3)甲为78H,乙为69H(4)甲为88H,乙为97H(5)甲为7FH,乙为FEH(6)甲为7FH,乙为80H3·1·19 :C=0,累加器和Rl 内容分别为无符号数甲和乙,间:执行指令STTBB A,Rl后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取?(1)甲为02H,乙为FFH(2)甲为FFH,乙为02H3·1·20 :C=0,累加器和Rl 内容分别为补码表示的带符号数甲和乙,问:执行指令SUBB A,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)CLR A(2)MOV A,#9BH(3)M Ov B,#0AFH(4)A DD A,B3,1·95 请具体说明RET 和RETI 这两条指令的区分。
3·1·96 :(A)=0,(Rl)=40H.片内RAM(30H)=0lH,FIRST=2022H,SECOND=2050H,试分别写出以下指令的机器码及执行各条指令的结果:(l))FIRST:AIMP SECOND(2)FIRST:LIMP SECOND(3)FIRST.SIMP SECOND(4)FIRST.JZ SECONDC5)FIRST:CINE A,30H,SECOND(6)FIRST:LCALL SECOND(7)SECOND:DJNZ Rl,FIRST3·1·97 :P1.7=1,A.0=0,C=l,FIRST=l000H,SECOND=l020H,试分别写出以下指令的机器码及执行各条指令的结果:(l)MOV 26H,C(2)C PL A.0(3)C LR Pl.7(4)ORL C,/P1.7(5)F IRST:lC SECOND(6)F IRST:JNB A.0,SECOND(7)SECOND:JBC Pl.7,FIRST3·1·28 要选用工作存放器3 组,请承受三种不同的指令实现之。
3·1·29 列举三种能使累加器A 内容清零的指令,并比较其优、缺点。
3·1·30 16 位地址共涉及两个字节,请统计在哪些场合依据“先低后高“规章处理,哪些场合却依据“先高后低“规章。
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 经过汇编后,以下各条语句的标号将是什么数值?ORG 2022HTABLE: DS l0WORD: DS l5,20,25,30FANG: EQU l000HBEGIN:MOV A,R03·1·39 以下程序段经汇编后,从2022H 开头的各有关存储单元的内容将是什么?TAB: ORGDS2022H5DB 10H, 10 DW 2100H ORG 2050H DW TAB DB “WORK“3·1·40 以下程序段经汇编后,从1000H 开头的各有关存储单元的内容将是什么?ORG l000HTABl: EQU 1234HTAB2:EQU 3000HDB“START“DW TABl,TAB23·2 汇编语言程序3·2·1 综述汇编语言程序的书写格式。
3·2·2 要将片内RAM 0FH 单元的内容传送去专用存放器B,对OFH 单元的寻址可有三种方法:(l)R 寻址(2)R 间址(3)direct 寻址请分别编出相应程序,比较其字节数、机器周期数和优缺点。