单片机原理及应用- 习题及答案 庄俊华 【ch04】汇编语言程序设计_第1页
单片机原理及应用- 习题及答案 庄俊华 【ch04】汇编语言程序设计_第2页
单片机原理及应用- 习题及答案 庄俊华 【ch04】汇编语言程序设计_第3页
单片机原理及应用- 习题及答案 庄俊华 【ch04】汇编语言程序设计_第4页
全文预览已结束

下载本文档

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

文档简介

第4章汇编语言程序设计

1.简述MCS-51单片机指令的基本格式。

M.CS-51单片机的汇编指令格式如下:标号、操作码、目的操作数、源操作数、注释、

操作吗表示该指令所实现的操作功能,一般由2~5个英文字母表示。例如ORL,ADD,LCALI

等。操作数表示参与操作的数据来源和目的单元。操作数可以是一个立即数,也可以是一个

内存单元或者是一个寄存器单元。操作码和第一个操作数之间一般用一个或几个空格隔开,

而操作数与操作数之间用逗号隔开。操作数可以有1个,2个,3个或没有。如果需要对指

令进行注释说明的话,在最后一个操作数后加一个分号,分号后面是注释。

2.说明下列符号的意义,并指出它们之间的区别。

(1)R0与@叩(2)A4-R1与A-(R1)

(3)DPTR与@DPTR(4)30H与#30H

答:(1)R0是工作寄存器。当RS1RS0(在PSW中)二0时R0的直接地址是00H;当工作

寄存器区为1区时R0的直接地址是08H;工作寄存器区为2区时R0的直接地址是10H;工作

寄存器区为3区时R0的直接地址是18H;@R0表示间接寻址,即以R0中内容为地址的存储

单元中的数据。@R0的寻址范围是内RAMOOH"FFH和外RAM001PFFII;

(2)A--R1表示将RI中的自容传送至A。A-(R1)表示将以R1中内容为地址的存储单

元中的数据传送至A。

(3)DPTR是16位数据指针,是特殊功能寄存器。@DPTR是用DPTR间接寻址,寻址范围

是外RAM0000H"FFFFHo

3.什么是寻址方式?80c51单片机指令系统有几种寻址方式?试述各种寻址方式

所能访问的存储空间。

80C51单片机的寻址方式有七种。即:寄存器寻址直接寻址、寄存器间接寻址、立即寻

址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。

这些寻址方式所对应的寄存器和存储空间如下表所示。

序号寻址方式寄存器或存储空间

1寄存器寻址寄存器R0〜R7,A、AB、DPTR和C(布尔累加器)

2直接寻址片内RAM低128字节、SFR

片内RAM(@R0,@R1,SP)

3寄存器间接寻址片外RAM(@R0,@R1,@DPTR)

4立即寻址ROM

5变址寻址ROM(@A+DPTR.@A+PC)

6相对寻址ROM(PC当前值的+127^—128字节)

7位寻址可寻址位(内部RAM20H~2FH单元的位和部分SFR的位)

4.若R0=11H,(11H)=22H,(33H)二44H,写出执行下列指令后的结果。

(1)M0VA,RO(2)MOVA,@R0

⑶MOVA.33H(4)MOVA,#33H

(1)MOVA,RO;KO-A,A=11H

(2)MOVA,@R0;(RO)-A,A=22H

(3)MOVA,33H;(33H)fA,A=44H

(4)MOVA,#33H;33H-A,A=33H

5.若A=78H,R0=34H,(34H)=DCH,(56H)=ABH,求分别执行下列指令后A和C中

的数据。

(1)ADDA,RO(2)ADDCA,@R0

(3)ADDA,56H(4)ADDA,#56H

⑴A=ACH,Cy=0

(2)A=54H,Cy=l

⑶A=23,Cy=l

(4)A=CE,Cy=O

6.被减数保存在31H和30H中(高位在前),减数保存在33H和32H中,试编

写其减法程序,差值存入31H和30H中,借位存入32H中。

解:编制程序如下:

ADDA,#00H;产生Cy=O(学过QKC后可用C1HC)

MOVA,3OH»取被减数低8位

SUBBA,32H;低8位相减

MOV30H,A;存低8位差

MOVA,31H;取被减数高8位

SLBBA,33H;高8位连同Cy相减

MOV31H,A;存高8位差

MOVA.#00H•

ADDCA,#00H;把Cy变换为等量的8位数

MOV32H.A;存借位

7.若A=B7H=10110111B,R0=5EH=010111OB,(5EH)=D9H=11011001B,(D6H)=ABH=

10101011B,分别写出执行下列各条指令后的结果。

(1)ANLA,R0(2)ANLA,@R0(3)ANLA,#D6H

(4)ANLA,D6H(5)ANLD6H,A(6)ANLD6H,#D6H

[解析]anl属51系列单片机的系统指令,进行“逻辑与〃运算,anlA,R0将0101110B

与10U0111B逐位取与,并将其结果送至寄存器A中.至于结果,可通过相关软件编译连接

运行得到,手工计算亦可!

8.若A=01111001B,C=0,分别写出执行下列各条指令后的结果。

(1)RLA(2)RCLA

(3)RRA(4)RRCA

RLA;A=11110010B,Cy=0(不变)

RLCA;A=11110010B,Cy0(刷新)

RRAA=10111100B,Cy=0(不变)

RRCAA=00111100B,Cy=l(刷新)

9.编写程序,将位存储单元33H与44H中的内容互换。

编程如下:

MOVG33H;(33H)-C

MOVF0,C;。一印,印是PSW中的用户标志

MOVG44H;

MOV33H,C;(44H)-(33H)

MOVC,F0;

MOV44H,C;(33H)一(44H)

10.试编写程序,将片外数据存储区的2000H-20FFH数据块传送到3000H〜

30FFH区域。

解:编程如下:

DMOV.MOVDFTR,H2000H;置源数据区首址

MOVR2,#00H;置数据长度(256个)

DLOP.MOVXA,@DFTR;读数据

MOVDPH,#30H;置目的数据区高8位地址

MOVX@DFTR,A;存数据

MOVDPH,#2OH;置源数据区高8位地址

INCDPTR;修改源数据区地址

DJNZR2.DLOP;判循环结束否?

RET

11.使用循环转移指令编写延时30ms的延时子程序(设单片机的晶振频率为

12MHz)o

fosc^lMHz,1机周为1管。编程如下:

DY2Qms.MOV727,#40道外循环

DY21:MOVR6,#250道内循环

DY22:DJNER6,DY22;250x2=0.5nw

DJNER1,DY11;0.5msx40=20ms

RET

12.试编写延时1min子程序(设fse=6MHz)。

fosc=6MHz,1机周为2^,编程如下:

DYls\MOVR7,#240;

DYIO:MOVR6,#250;

DY11.MOV725,#250;

DYY2,DJNZR5,DY12;珈周x250x2/^/机周

DJNZR6,DYll;lgx250=250ms

DJNZR7,DYIO;250mx240=1分

RET;

13.从片内数据存储区的30H存储单元开始存放着一组无符号数,这组无符号

数的个数存放在31H中。试编写程序,找出其中最小的数,并将其存入30H中。

SECH:MOVRO.#30H;置数据区首地址

MOV2DH,«jMirr*20H

SIJOP:MOVA.@R0;读数据

GJNEA,20H,NEXT;与最小值比较

NEXT:JNCSLPI;C«0,大于Miq,

MOV20H.AICK1,Min-*2OH

SLP1:INCRO;指向下数据

DJNZ2IH.SLOP;判循环

RET

14.计算片内数据存储区的50H〜57H单元中数的算术平均值,结果存放在5AH

中。

MOVRO.#50H

MOVRI.>8

MOVA.#0

LliADDA.@R0

INCRO

DJNZRI,LI

MOVB,#8

DIVAB

MOV5AH.A

15.已知累加器A中的2位十六进制数,试编写程序将其转换为ASCII,并存

入21H和20H中。

ROT:MOV21H,A酒存

ANLA.UQFH;屏蔽高位,保留低位

XCHA.21H;存低位,取高位

ANLA,1tOFOH;屏蔽低位,保留高位

SWAPA;转移至低位

LCALLASC;调用4SC/期转换子程序

XCH21H.A;存高位,取低位

I

温馨提示

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

评论

0/150

提交评论