第三章指令系统及汇编语言程序设计

发布时间 : 星期六 文章第三章指令系统及汇编语言程序设计更新完毕开始阅读

第三章 指令系统及汇编语言程序设计

3-1选择题

1、MOVX A,@DPTR指令中源操作数的寻址方式是( B )

(A)寄存器寻址 (B)寄存器间接寻址 (C)直接寻址 (D)立即寻址 2、 ORG 0003H LJMP 2000H ORG 000BH

LJMP 3000H 当CPU响应外部中断0后,PC的值是( B ) (A)0003H (B)2000H (C)000BH (D)3000H

3、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=( D ) (A)2000H (B)2001H (C)2002H (D)2003H

4、51执行完MOV A,#08H后,PSW的一位被置位( D ) (A)C (B)F0 (C)OV (D)P

5、下面条指令将MCS-51的工作寄存器置成3区( B ) (A)MOV PSW,#13H (B)MOV PSW,#18H

(C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.4

6、执行MOVX A,DPTR指令时,MCS-51产生的控制信号是( C ) (A)/PSEN (B)ALE (C)/RD (D)/WR 7、MOV C,#00H的寻址方式是( A )

(A)位寻址 (B)直接寻址 (C)立即寻址 (D)寄存器寻址 8、ORG 0000H AJMP 0040H ORG 0040H MOV SP,#00H

当执行完左边的程序后,PC的值是( C )

(A)0040H (B)0041H (C)0042H (D)0043H 9、对程序存储器的读操作,只能使用( D )

(A)MOV指令 (B)PUSH指令 (C)MOVX指令(D)MOVC指令

10、MCS-51单片机可分为两个优先级别。各中断源的优先级别设定是利用寄存器( B (A)IE (B)IP (C)TCON (D)SCON

11、在寄存器间接寻址方式中,指定寄存器中存放的是( B )

(A)操作数 (B)操作数地址 (C)转移地址 (D)地址偏移量 12、在MCS—51中,需双向传递信号的是( B ) (A)地址线 (B)数据线 (C)控制线 (D)电源线 13、下列指令中于进位标志位CY无关的指令有( D )

(A)移位指令 (B)位操作指令 (C)十进制调整指令 (D)条件转移指令 14、在程序储存器的读操作,只能使用( D )

(A)MOV指令 (B) PUSH指令 (C)MOVX指令 (D)MOVC指令 15、以下运算中对溢出标志OV没有影响或不受OV影响的运算是( A ) (A)逻辑运算 (B)符号数加减法运算 (C)乘法运算 (D)除法运算 16、指令AJMP的跳转范围是(C)

(A)256B (B)1KB (C)2KB (D)64KB

3-2 判断题

1

) 1、MCS-51的相对转移指令最大负跳距是127B。( × ) 2、当MCS-51上电复位时,堆栈指针SP=00H。( × )

3、调用子程序指令(如:CALL)及返回指令(如:RET)与堆栈有关但与PC无关。( × ) 4、MOV @R1,#80H。 ( √ ) 5、INC DPTR ( √ ) 6、DEC DPTR ( × ) 7、CLR R0 ( × )

8、ANL R1,#0FH ( × ) 9、ADDC A,C ( × ) 10、XOR P1,#31H ( √ )

11、MOV 28H,@R2 ( × ) 12、CLR R0 ( × ) 13、CPL R5 ( × )

14、MOV R0,R1 ( × ) 15、PUSH DPTR ( × ) 16、PUSH R1 ( × ) 17、RLC R0 ( × ) 18、DJNZ @R1,32H ( × )

19、寄存器DPTR可拆开成两个独立的寄存器DPH与DPTL使用。( √ ) 3-3 填空题

1、JBC bit rel 指令是对位bit进行判断,若bit=1则转移,并对该位 清零 。 2、指令POP B的源操作数是 SP ,是 寄存器间接寻址 寻址方式,目的操作数是 B ,是 寄存器寻址 寻址方式。

3、已知SP=25H,PC=4345H,(24H)=12H,(25H)=34H,(26H)=56H,当执行RET指令后,SP= 23H ,PC= 3412H 。

4、指令是由 操作码 和 操作数 构成。

5、MCS-51单片机有立即数寻址 、 直接寻址 、 寄存器寻址、 寄存器间接寻址、 变址寻址 、 相对寻址、 位寻址 七种寻址方式。

6、MOVC A,@A+DPTR第二操作数采用是 变址 寻址方式 7、执行ANL P1,# 0F H后,可对P1口的高四位清零。

8、若执行XRL P1,# 11000000B后,可对P1口的高两位取反。 9、堆栈必须遵循“ 后进先出 ”的原则。

10、JZ e 的操作码地址为1000H,e=20H,它转移的目标地址为1022H。 11、MOV A,40H 指令对于源操作数的寻址方式是直接 寻址。

12、已知A = 0F8H,当执行ADD A,#0A9H指令后,PSW中的OV= 、CY= 、AC= 、P= 。若是有符号数,A中的结果用十进制表示是

[解答] OV:0、CY:1、AC:1、P:1 A:-95

3-4 问答题与编程题

1、8051单片机指令系统按功能可分为几类? 答: MCS-51单片机指令系统按功能可分为5类: (1)数据传送指令 (2)算术运算指令

(3)逻辑运算和移位指令 (4)控制转移指令 (5)位操作指令

2

2、什么叫寻址方式?具有几种寻址方式?它们的寻址范围如何?

答:寻址方式:寻址方式就是寻找指令中操作数或操作数所在地址的方式。也就是如何找到存放操作数的地址,把操作数提取出来的方法。

MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:

寻址方式 使用的变量 寻址范围

立即寻址 程序存储器 3、堆栈的功

内部RAM低128个字节; 能是什么?有

直接寻址

特殊功能寄存器SFR 什么操作原 寄存器寻址 R0~R7;A、B、DPTR、C 则?栈顶地址

@R0、@R1、SP 内部RAM、堆栈指针SP 如何指示?

寄存器间接寻址

@R0、@R1、@DPTR 外部RAM 答:堆栈是存

变址寻址 @A+PC、@A+DPTR 程序存储器 储器中的特相对寻址 PC+偏移量 程序存储器 殊群体。在内

内部RAM低128B位寻址区 RAM中专门

位寻址

可位寻址的特殊功能寄存器位 辟出一个连

续存储区,用来暂时存放子程序断口地址、中断断口地址和其他需要保存的数据。

堆栈操作无论是存入或取出数据,均只能依次存人或依次取出,不能越位,必须遵循“先进后出\、“后进先出”的原则。

堆栈指针SP指出栈顶存储单元的地址

4、什么是汇编?什么是汇编语言?它有什么特点?

4、答:汇编:汇编语言源程序在交付计算机执行之前,需要先翻译成目标程序,这个翻译过程叫汇编。 汇编语言:是用助记符替代机器语言中的操作码,用16进制数替代二进制代码。特点是比较直观,易于记忆和检查,可读性较好。但是计算机执行时,必须将汇编语言翻译成机器语言,不同的微处理器有不同的汇编语言。

5、什么叫指令周期?

答:指令周期:指执行一条指令所占用的全部时间。通常一个指令周期含1~4个机器周期。 6、什么是指令?什么是程序?

答:指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。 程序:一系列指令的有序集合称为程序。 7、什么是进位和溢出?

答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。例如将正数3FH和负数D0H相加,其结果不会超出8位字长的表示范围,所以其结果10FH中的进位是正常进位(也就是模)。但是,若正数3FH与正数70H相加,其结果为AFH,最高位为\,成了负数的含义,这就不合理了,这种情况称为溢出。

8、“DA A”指令的作用是什么?怎样使用?

答:这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。

在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DA A”指令即可。

9、片内RAM 20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?

答: 虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。 位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。

3

MOV C,bit MOV bit,C CLR bit SETB bit CPL bit ANL C,bit ANLC,/bit JB bit,rel JNB bit,rel

10、8051单片机指令系统中有长跳转LJMP,长调用LCALL指令,为何还没有设置了绝对跳转AJMP,绝对调用ACALL指令?在实际使用是应怎样考虑?

答: 在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令LJMP和短跳转指令AJMP、长调用指令LCALL和短调用指令ACALL。

长跳转LJMP在64KB范围内转移,而短跳转AJMP只能在2KB空间转移。长调用LCALL调用位于64KB程序空间的子程序,而短调用ACALL调用位于2KB程序空间范围的子程序。AJMP、ACALL指令代码长度为2个字节;LJMP、LCALL指令代码长度为3个字节。

13、在“MOVC A,@A+DPTR”和“MOVC A,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?使用中有何不同?

答: 使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。

使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。

14、设片内RAM中的(40H)=50H,写出执行下列程序段后寄存器A和R0,以及片内RAM中50H和51H单元的内容为何值?

答:结果为:(A)=30H (R0)=50H (50H)=00H (51H)=30H

15、堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化? 答:结果为: (61H)=24H (62H)=10H (30H)=00H (31H)=0FFH DPTR=2410H SP=60H

16、在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。

分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。 MOV A,40H MOV R0,A

MOV P1,#0F0H MOV @R0,20H MOV 50H,R0 MOV A,@R0 MOV P2,P1

答: 指令 源操作数的寻址方式 执行指令后的结果 MOV A,40H 直接寻址 (A)=50H MOV R0,A 寄存器寻址 (R0)=50H MOV P1,#80H 立即寻址 (P1)=80H

MOV @R0,20H 寄存器间接寻址 (50H)=30H MOV DPTR,#2000H 立即寻址 (DPTR)=2000H MOV 40H,30H 直接寻址 (40H)=40H

4

联系合同范文客服:xxxxx#qq.com(#替换为@)