单片机原理及应用-习题及答案 高惠芳 ch04MCS-51单片机汇编语言指令系统_第1页
单片机原理及应用-习题及答案 高惠芳 ch04MCS-51单片机汇编语言指令系统_第2页
单片机原理及应用-习题及答案 高惠芳 ch04MCS-51单片机汇编语言指令系统_第3页
单片机原理及应用-习题及答案 高惠芳 ch04MCS-51单片机汇编语言指令系统_第4页
单片机原理及应用-习题及答案 高惠芳 ch04MCS-51单片机汇编语言指令系统_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章MCS-51单片机汇编语言指令系统及其编

1.简述MCS-51单片机的指令格式及每部分的作用。

1、单片机的核心部分是CPU,CPU是单片机的大脑和心脏。

2、程序存储器用于存放编好的程序或表格常数。

3、数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。

4.定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计

数时,它是定时器;当它对外部事件进行计数时,它是计数器。

5、I/O接口的主要功能包括:缓冲与锁存数据、地址译码、信息格式转换、传递状态(外

设状态)和发布命令等。

6、中断控制可以解决CPU与外设之间速度匹配的问题,使单片机可以及时处理系统中

许多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。

2.MCS-51单片机有哪几种寻址方式?各有什么特点?每种寻址方式的寻址范

围是什么?

①寄存器寻址②直接寻址③寄存器间接寻址④立即寻址⑤基址加变址

⑥位寻址⑦相对寻址,

3.对片内RAM可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式?

共7种寻址方式,分别为:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,变址寻址,

位寻址和相对寻址。

寄存器寻址方式:由指令指出某一寄存器的内容做为操作数。

宜接寻址方式:指令中操作数直接以单元地址的形式给出。

寄存器间接寻址方式:寄存器间接寻址方式,寄存器中存放的则是操作数的地址,即操作

数是通过寄存器间接得到的。立即寻址方式:操作数在指令中直接给出。变址寻址方式:变址

寻址是为了访问程序存储器中的数据和表格。MCS-51的变址寻址是以DPTR或PC作基址寄

存器,以累加器A作变址寄存器,井以两者内容相加形成的16位地址做为操作数地址,以达

到访问数据和表格的目的,位寻址方式:指对片内RAM的位寻址区和某些可寻址的特殊功能

寄存器进行位操作的寻址方式。相对■寻址方式:相对寻址方式是为解决程序转移而专门设置

的,为转移指令所采用。

4.在对片外RAM单元的寻址中,用ri间接寻址与用DPTR间接寻址有什么区别?

片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针

间接访问可访问整个64K字节。

5.指出下列指令源操作数的寻址方式:

(DMOVA,#00H

⑵MOVA,50H

⑶MOVA,@R0

(4)MOVA戊5

⑸MOVCA,@A+DPTR

(6)SJMP70H

(7)CLRA

略。

6.已知片内RAM中,(30H)=38H,(38H)二40H,(40H)二48H,(48H)=90H。请分析下列

指令,说明源操作数的寻址方式及按顺序执行每条指令的结果。

MOVA,4OH

MOVRO,A

MOVPI,#OFOH

MOV@RO,30H

MOVDPTR,#3848HM0V40H,38H

MOVRO,30H

MOVPO,RO

M0V18H,#30H

MOVA,@RO

M0VP2,PI

略。

7.区分下列指令有什么不同:

(DMOVA,00H和MOVA,#00Ho

⑵MOVA,@R0和MOVXA,@R0。

(3)MOVA,RI和MOVA,@RIO

(4)MOVXA,@R0和MOVXA,@DPTR0

⑸MOVXA,@DPTR和MOVCA,@A+DPTRO

略。

8.如果PSW的RSI、RSO为。和1,分析指令MOVA,R0与指令MOVA,08H有何不同。

执行时间长短不同。

9.已知(A)=7AH,(R0)二30H,(30H)=A5H,(PSW)二80H,(SP)二65H,试分析下面每条

指令的执行结果及对标志位的影响。

(I)ADDA,@R0⑵ADDA#30H⑶ADDA,(4)ADDCA,30H⑸SUBBA,(6)DAA⑺RLCA(8)

RRA(9)PUSH30H(10)XCHA,30H@R0(11)ANLA,R030H

略。

10.写出完成如下要求的指令,但是不得改变未涉及位的内容。

⑴使ACC.2、ACC.3置T'。

⑵使累加器高4位清零。

(3)使ACC.3、ACC.4、ACC.5、ACC.6清零。

略。

11.写出完成下列要求的指令:

(1)累加器A的低2位清零,其余位不变;

(2)累加器A的高2位置”1”,其余位不变;

(3)累加器A的高4位取反,其余位不变;

(4)累加器A的第0位、2位、4位、6位取反,其余位不变。

略。

12.已知(A)二78H(R1)二78H,(B)二04H,CY二I,片内RAM(78H)=ODDH,(80H)=6CH,试分

别写出下列指令执行后目标单元的结果和相应标志位的值。

⑴ADDA,@RI(2)SUBBA,#77H⑶MULAB(4)DIVAB⑸ANL78H,#78H(6)ORLA,#OFH⑺

XRL80H,A

略。

13.写出下列指令的执行结果。

MOVA,#7FH

CPLA

RPA

SWAPA

MOVRO,#45H

XCHA,RO

SWAPA

XCHA,RO

RO二54H

14.说明LJMP指令与AJMP指令的区别。

SJMP提供了以SJMP的下一条指令的起始地址为中心的256字节范围的转移

(-128^+127),AJMP的转移目标地址必须在与AJMP的下一条指令的第一字节相同的2KB区的

程序储存器中。短转移方便了可重定位编码。SJMP方便了PC可重定位编码,但转移范围小。

而ASJMP转移范闱大,但存在跳区的限制,AJMP指令只能位于2KB区的最后2个字节处时,才

可跳到下一个区去。因此用AJ.MP指令来代替SJMP指令是有条件的,也就是目标地址必须与

它下面的指令存放地址在同一个2KB区域内。

15.设当前指令CJNEA,#IOH,20H的地址是OFFEH,若累加器A的值为12H,则该指

令执行后的PC值为多少?若累加器A的值为I0H,又如何?

略。

16.用位处理指令实现PI.4=PI.0/\(PI.IVPI.2)V/PI.3的逻辑功能o

略。

17.试编写程序将片内RAM从INBUF开始存放的10个数据传送到片外RAM以

OUIBUF开始的区域。

MOVRO,#20H

MOVDPTR,#1000H

M0VR7,#10

LOOP:MOVA,@R0

MOVXgDPTR,A

INCRO

INCDPTR

DJNZR7,LOOP

SJMP$

18.在外部数据存储器首地址为TABLE的数据表中存有I0B的数据,编程将每个

字节的最高位置1,并送回原来的单元。

略。

19.编程将片内35H-55H单元中的内容送到以3000H为首的存储区中。

M0VR1,#40H

MOVRO,#20ll

MOVDPTR,#3000H

L1:MOVA,@R1

1NCR1

INCDPTR

DJNZRO,LI

20.设内部RAM5AH单元中有一非0变噩X,请编写计算下述函数式的程序,其结

果存入5BH单元中。

略。

21.编程设计计算片内RAM区50T57H八个单元中数的算术乎均值,结果存于54H

开始的单元中。

M0VR0,#50H

MOVR2,ttlO

MOVA,no

LP:ADDA,@R0

INCRO

DJNZR2,LP

MOVB,ttlO

DIVAB

M0V5AII,A

SJMP$

22.编写对一个多字节数做乘以10的运算子程序。

略。

23.设有两个长度均为15的数组,分别存放在以2000H和2100H为首的存储区

中,试编程求其对应项之和,结果存于以2200H为首的存储区中。

MOVDPH,#02H

MOVR1,#15

M0VR2,#00H;数组1首地址低位

M0VR3,#10H;数组2首地址低位

M0VR4,#20H;和首地址低位

LI:MOVDPL,R2

MOVXA,@DPTR

M0VR1,A

MOVDPL,R3

MOVXA,@DPTR

ADDA,RI

MOVDPL,R4

MOVX@DTPR,A

INCR2

INCR3

INCR4

DJNZR1,L1

SJMP$

24.试编程把以2000H为首地址的连续50个单元中的内容按升序排列,存于以

3000H为首地址的存储区中。

■OVDPTR,#2000H

>OVRO,#3OH;读到片内的30H开始的单元

■OVR7,#50

LI:;将200汨开始的单元数据存储到30毗内部单元

■ovxA,«DPn<

■OVA

INCRO

INCDPTK

DJNZR7LI

START:;排序

CLROOH

CLRC

*)VR7,#49

■OVRO,#3OH

■OVA,0R0

L3:INCRO

■OVR2,A

SUBBA,ORO

10VA,R2

JCNEXT

SETBOOH

XCH&@R0

DECRO

■OV«»,A

INCRO

NEXT:

■OVA,ORO

DJNZR7,L3

JB00START

■OVDP1R«3000H,送到片外3000听始的单元

■OVRO,#20H

■OVR7,#50

L2:«0VA,ORO

■OVXOPTR,A

INCDPTR

INCRO

DJNZR7L2

RET

25.设有100个无符号数,连续存放在以2000H为首地址的外部数据存储区中,

试编程统计奇数和偶数的个数。

略。

26.将片外数据存储器地址为1000H~1030H的数据块,全部搬迁到片内

RAM30T60H中,并将原数据块区域全部清零。

略。

27.从20H单元开始有一个无符号数据块,其长度在20H单元中。求出数据块中

最小值,并存入21H单元中。

MOV@RO,1S21H;数据块首地址

MOVRL20H;取数据块长度

M()VA,@R0;取一个数

MOV21H”;存数

DDD:DJNZR1,KKK;判断是否取完

SJMP$;W完结束

KKK:INCR0;指向下一个数

M0VA,@R0;取数

MOVB,A;暂存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论