第三章指令系统及汇编语言程序设计Word格式文档下载.docx

上传人:b****5 文档编号:18964673 上传时间:2023-01-02 格式:DOCX 页数:20 大小:25.94KB
下载 相关 举报
第三章指令系统及汇编语言程序设计Word格式文档下载.docx_第1页
第1页 / 共20页
第三章指令系统及汇编语言程序设计Word格式文档下载.docx_第2页
第2页 / 共20页
第三章指令系统及汇编语言程序设计Word格式文档下载.docx_第3页
第3页 / 共20页
第三章指令系统及汇编语言程序设计Word格式文档下载.docx_第4页
第4页 / 共20页
第三章指令系统及汇编语言程序设计Word格式文档下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

第三章指令系统及汇编语言程序设计Word格式文档下载.docx

《第三章指令系统及汇编语言程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第三章指令系统及汇编语言程序设计Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。

第三章指令系统及汇编语言程序设计Word格式文档下载.docx

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

10、MCS-51单片机可分为两个优先级别。

各中断源的优先级别设定是利用寄存器( 

(A)IE 

(B)IP 

(C)TCON 

(D)SCON

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

(A)操作数 

(B)操作数地址 

(C)转移地址 

(D)地址偏移量

12、在MCS—51中,需双向传递信号的是( 

(A)地址线 

(B)数据线 

(C)控制线 

(D)电源线

13、下列指令中于进位标志位CY无关的指令有( 

(A)移位指令 

(B)位操作指令 

(C)十进制调整指令 

(D)条件转移指令

14、在程序储存器的读操作,只能使用( 

(A)MOV指令 

(B)PUSH指令 

(C)MOVX指令 

(D)MOVC指令

15、以下运算中对溢出标志OV没有影响或不受OV影响的运算是( 

(A)逻辑运算 

(B)符号数加减法运算 

(C)乘法运算 

(D)除法运算

16、指令AJMP的跳转范围是(C)

(A)256B 

(B)1KB 

(C)2KB 

(D)64KB

3-2判断题

1、MCS-51的相对转移指令最大负跳距是127B。

( 

×

2、当MCS-51上电复位时,堆栈指针SP=00H。

3、调用子程序指令(如:

CALL)及返回指令(如:

RET)与堆栈有关但与PC无关。

4、MOV 

@R1,#80H。

( 

√ 

5、INC 

DPTR 

6、DEC 

) 

7、CLR 

R0 

8、ANL 

R1,#0FH 

9、ADDC 

A,C 

10、XOR 

P1,#31H 

11、MOV28H,@R2 

12、CLR 

13、CPLR5 

14、MOV 

R0,R1 

15、PUSH 

16、PUSH 

R1 

17、RLC 

18、DJNZ@R1,32H 

19、寄存器DPTR可拆开成两个独立的寄存器DPH与DPTL使用。

3-3填空题

1、JBC 

bit 

rel指令是对位bit进行判断,若bit=1则转移,并对该位 

清零 

2、指令POP 

B的源操作数是 

SP 

,是 

寄存器间接寻址 

寻址方式,目的操作数是 

寄存器寻址 

寻址方式。

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、执行ANLP1,# 

0F 

H后,可对P1口的高四位清零。

8、若执行XRL 

P1,# 

11000000B后,可对P1口的高两位取反。

9、堆栈必须遵循“ 

后进先出 

”的原则。

10、JZe的操作码地址为1000H,e=20H,它转移的目标地址为1022H。

11、MOVA,40H指令对于源操作数的寻址方式是直接寻址。

12、已知A=0F8H,当执行ADDA,#0A9H指令后,PSW中的OV=、CY=、AC=、P=。

若是有符号数,A中的结果用十进制表示是

[解答]OV:

0、CY:

1、AC:

1、P:

1A:

-95

3-4问答题与编程题

1、8051单片机指令系统按功能可分为几类?

答:

MCS-51单片机指令系统按功能可分为5类:

(1)数据传送指令 

(2)算术运算指令

  

(3)逻辑运算和移位指令 

  

(4)控制转移指令 

(5)位操作指令

2、什么叫寻址方式?

具有几种寻址方式?

它们的寻址范围如何?

寻址方式:

寻址方式就是寻找指令中操作数或操作数所在地址的方式。

也就是如何找到存放操作数的地址,把操作数提取出来的方法。

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

 寻址方式

使用的变量

    寻址范围

立即寻址

程序存储器

直接寻址

内部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位寻址区

可位寻址的特殊功能寄存器位

3、堆栈的功能是什么?

有什么操作原则?

栈顶地址如何指示?

堆栈是存储器中的特殊群体。

在内RAM中专门辟出一个连续存储区,用来暂时存放子程序断口地址、中断断口地址和其他需要保存的数据。

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

、“后进先出”的原则。

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

4、什么是汇编?

什么是汇编语言?

它有什么特点?

4、答:

汇编:

汇编语言源程序在交付计算机执行之前,需要先翻译成目标程序,这个翻译过程叫汇编。

汇编语言:

是用助记符替代机器语言中的操作码,用16进制数替代二进制代码。

特点是比较直观,易于记忆和检查,可读性较好。

但是计算机执行时,必须将汇编语言翻译成机器语言,不同的微处理器有不同的汇编语言。

5、什么叫指令周期?

指令周期:

指执行一条指令所占用的全部时间。

通常一个指令周期含1~4个机器周期。

6、什么是指令?

什么是程序?

指令:

人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。

程序:

一系列指令的有序集合称为程序。

7、什么是进位和溢出?

两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;

若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。

例如将正数3FH和负数D0H相加,其结果不会超出8位字长的表示范围,所以其结果10FH中的进位是正常进位(也就是模)。

但是,若正数3FH与正数70H相加,其结果为AFH,最高位为"

1"

,成了负数的含义,这就不合理了,这种情况称为溢出。

8、“DA 

A”指令的作用是什么?

怎样使用?

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

在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。

用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DA 

A”指令即可。

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

答:

虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。

位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。

MOVC,bit

MOVbit,C

CLRbit

SETBbit

CPLbit

ANLC,bit

ANLC,/bit

JBbit,rel

JNBbit,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

R0,A

P1,#0F0H

@R0,20H

50H,R0

A,@R0

P2,P1

指令 

源操作数的寻址方式 

执行指令后的结果

MOVA,40H 

直接寻址 

(A)=50H

MOVR0,A 

寄存器寻址 

(R0)=50H

MOVP1,#80H 

立即寻址 

(P1)=80H

MOV@R0,20H 

寄存器间接寻址 

(50H)=30H

MOVDPTR,#2000H 

(DPTR)=2000H

MOV40H,30H 

(40H)=40H

MOVR0,30H 

(R0)=40H

MOVD0H,R0 

(D0H)=40H

MOV10H,#10H 

立即寻址 

(10H)=10H

MOVA,@R0 

MOVP2,P1 

(P2)=80H

17、完成以下的数据传送过程。

(1)R1的内容传送到R0。

(2)片外RAM20H单元的内容送R0。

(3)片外RAM20H单元的内容送片内RAM20H

(4)片外RAM1000H单元的内容送片内RAM20H

(5)片外RAM20H单元的内容送R0。

(6)片外RAM2000H单元的内容送片内RAM20H

(7)片外RAM20H单元的内容送片外RAM20H

(1)R1的内容传送到R0;

MOV 

A, 

R1

R0, 

A

(2)片外RAM20H单元内容送R0;

DPTR, 

#0020H

MOVX 

A, 

@DPTR

MOV 

R0, 

(3)片外RAM20H单元的内容送片内RAM20H单元;

20H, 

(4)片外RAM1000H单元的内容送片内RAM20H单元;

#1000H

A, 

(5)ROM2000H单元的内容送R0单元;

#00H

#2000H

MOVC 

@A+DPTR

R0H, 

(6)ROM2000H单元的内容送片内RAM20H单元;

MOV 

(7)ROM2000H单元的内容送片外RAM20H单元。

@DPTR, 

18、设有两个4位BCD码,分别存放在片内RAM的23H,22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。

(以上均为低位字节,高位在高字节)。

18、解:

0000H 

LJMP 

START 

0030H 

START:

A,22H 

ADD 

A,32H 

DAA 

42H,A 

A,23H

ADDC 

A,33H

DA 

43H,A

SJMP$ 

END 

19、编程将片内RAM的40H~60H单元中内容送到片外RAM以3000H开始的单元中。

20、已知内部RAM的BLOCK单元开始有一无符号数据块,块长在LEN单元。

请编出求数据块中各数累加和并存入SUM单元的程序。

20、编程计算片内RAM区30H~37H的8个单元中数的算术平均值,结果存在3AH单元中。

21、把内部RAM中起始地址为DATA的数据串传送到外部RAM以BUFFER为首地址的区域,直到发现“$“字符的ASCⅡ码为止。

同时规定数据串的最大长度为32个字节。

22、设内部RAM的20H和21H单元中有两个带符号数,将其中的大数存放在于22H单元中,编出程序。

23、设有100个有符号数,连续存放在片外RAM以2200H为首地址的存储区中,试片成统计其中正数、负数、零的个数。

24、编程将内部数据存储器20H~24H单元压缩的BCD码转换成ASCⅡ存放在于25H开始的单元。

25、试编一查表程序,从首地址为2000H、长度为9FH的数据块中找出第一个ASCII码A,将其地址送到20A0H和20A1H单元中。

26、片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256

27、用查表法编一子程序,将R3中的BCD码转换成ASCII码。

28、片内RAM40H开始的单元内有10个字节的无符号二进制数,编程找出其中最大值并存于50H单元中.

29、编制一个循环闪烁灯的程序。

有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。

画出电路图。

30、设计一个4位数码显示电路,并用汇编语言编程使"

8"

从右到左显示一遍。

31、编制一个循环闪烁的程序。

32、利用89C51的P1口控制8个发光二极管LED。

相邻的4个LED为一组,使2组每隔0.5s交替发亮一次,周而复始。

试编写程序。

19—32编程答案:

19、解:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVR7,#20H

MOVR1,#40H

MOVDPTR,#3000H

LOOP:

MOVA,@R1

MOVX@DPTR,A

INCR1

INCDPTR

DJNZR7,LOOP

SJMP$

END

20、解:

参考程序:

ORG0200H

LEN:

DATA20H

SUM:

DATA21H

BLOCK:

DATA22H

CLRA 

A清零

MOVR2,LEN 

块长度送R2

MOVR1,#BLOCK 

块始址送R1

INCR2 

R2←块长+1

SJMPCHECK

LOOP:

ADDA,@R1 

A←A+(R1)

INCR1 

修改数据块指针R1

CHECK:

DJNZR2,LOOP

MOVSUM,A 

存累加和

ORG0000H

MOVR0,#30H

MOVR1,#00H

MOVR2,#00H

MOVR3,#07H

LP2:

MOVA,@R0

ADDA,R2

MOVR2,A

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1