MCS-51单片机指令系统

合集下载

MCS-51指令系统

MCS-51指令系统

❖ 目的操作数寻址方式(3种):
直接寻址、寄存器寻址、寄存器间接寻址
除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响
标志位。2022/2/15
16
3.3.1 十六位数的传递指令(1条)
MOV DPTR,#data16
8051是一种8位机,这是唯一的一条16位立即数传递指 令。功能:将一个16位的立即数送入DPTR中去。其中 高8位送入DPH,低8位送入DPL。
2022/2/15
2
常用符号 Rn:工作寄存器中的寄存器R0、R1…R7之一,
Ri:工作寄存器中的寄存器R0或R1
#data:8位立即数
#data16:16位立即数 direct:片内RAM或SFR的地址(8位)
@间接寻址寄存器
Bit:片内RAM或SFR的位地址 addr11:11位目的地址
addr16:16位目的地址
者内容相加,结果作为操作数的地址。
常用于查表操作。 ❖ MCS-51
操作数在程 序存储器中
MOVC A, @A+DPTR ;(A+DPTR) →A
MOVC A, @A+PC ; PC+1 →PC,(A+PC)→A
2022/2/15
10
如:MOVC A,@A+DPTR 设DPTR=2000H,A=E0H
常用于跳转指令。 如: JC 23H 若C=0,不跳转; C=1,跳转.
2022/2/15
12
如:JC 23
程序存储区
1000H 40 1001H 23 1002H 30
当前PC …

1024H 47 1025H 45
指令代码
23H

MCS-51单片机的指令系统

MCS-51单片机的指令系统

整理ppt
12
4.2 寻址方式
51汇编语言有42种操作码助记符,用来描述33种操作功 能。一种操作码可以使用一种以上的数据类型,又由于 助记符规定了其访问的存储器空间,所以一种功能可能 有几个助记符(如MOV、MOVX、MOVC)。功能助记 符与寻址方式组合,得到111条指令。
整理ppt
13
4.2 寻址方式
1)无操作数单字节指令
这类指令只有操作码字段,操作数隐含在操作码中。
例如:INC DPTR
指令码为 :
数据指针隐含其中
整理ppt
6
指令的组成及字节数
2)含有操作数寄存器号的单字节指令 单字节的指令码由操作码字段和指示操作数所 在寄 存器号的字段组成。 例如;MOV A,Rn 指令码为:
其中,rrr为寄存器Rn的编号
整理ppt
2
4.1 指令和指令程序
“指令”: CPU能直接识别和执行的命令。 指令系统:CPU所能执行的全部指令的集合。
与CPU的能力、使用的方便灵活性密切相关。 指令的记忆问题?指令本身是二进制代码。
例如以下的51单片机指令:
把10放到累 740AH 加器A中 为பைடு நூலகம்便于记忆 指令助
A加20,结 果仍在A中
整理ppt
8
指令的组成及字节数
3.三字节指令(17条)
这条指令的指令码的第1字节为操作码;第2和第3字节为 操作数或操作数地址,有如下3类。 1)16位数据 例如:MOV DPTR,#26ABH 指令码为:
整理ppt
9
指令的组成及字节数
2)8位地址和8位数据 例如:MOV 74H,#0FFH 指令码为:
在MCS-51指令中,若操作数是以R0~R7来表示操作数时, 就属于寄存器寻址方式。

第三章MCS51系列单片机指令系统及汇编语言程序设计

第三章MCS51系列单片机指令系统及汇编语言程序设计
AJMP addr11 绝对转移指令为2K地址范围内的转移指令,对转移目的地址的要求与 ACALL指令中对子程序入口地址的要求相同。 【3】短转移指令
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)

单片机应用-MCS-51单片机指令系统

单片机应用-MCS-51单片机指令系统

单片机应用-MCS-51单片机指令系统单片机应用 MCS-51 单片机指令系统在当今的电子技术领域,单片机的应用可谓无处不在。

从家用电器到工业自动化,从医疗设备到航空航天,单片机都扮演着至关重要的角色。

而在众多单片机中,MCS-51 单片机以其经典的架构和丰富的指令系统,成为了学习和应用单片机的重要基础。

MCS-51 单片机的指令系统是其能够实现各种功能的核心。

指令就像是单片机的“语言”,通过这些指令,我们可以让单片机执行各种各样的任务,如数据的运算、存储和传输,控制外部设备的工作,实现复杂的逻辑判断等等。

MCS-51 单片机的指令可以分为五大类:数据传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令。

数据传送指令是最基本也是最常用的指令类型。

它包括了将数据从一个存储单元传送到另一个存储单元,或者将立即数传送到寄存器或存储单元等操作。

例如,“MOV A, 50H”这条指令就是将立即数 50H 传送到累加器 A 中。

通过数据传送指令,我们可以在单片机内部实现数据的灵活调配和共享。

算术运算指令则用于进行加、减、乘、除等基本的数学运算。

这些指令能够对寄存器中的数据或者立即数进行操作,并将结果存放在指定的寄存器中。

比如,“ADD A, R0”指令会将累加器 A 的值和寄存器R0 的值相加,结果存放在累加器 A 中。

算术运算指令在实现数据处理和计算功能时非常有用。

逻辑运算指令主要包括与、或、异或等操作。

这些指令可以对寄存器中的数据进行位级的逻辑运算,从而实现对数据的筛选、组合和变换。

例如,“ANL A, R0”指令会对累加器 A 和寄存器 R0 的值进行按位与操作。

控制转移指令是实现程序流程控制的关键。

它们可以让程序根据特定的条件跳转到不同的地址执行,或者在一定的范围内循环执行一段代码。

常见的控制转移指令有无条件转移指令(如“LJMP addr16”)、条件转移指令(如“JC rel”)和循环指令(如“DJNZ Rn, rel”)。

MCS-51单片机指令系统

MCS-51单片机指令系统

6、堆栈操作指令
进栈 【PUSH direct;(SP)+1→SP,(dirsct)→(SP)】 出栈 【POP direct;(SP)→(dirsct),(SP)-1→SP】
MCS-51指令系统中有两条读程序存储器中表格数据的指令。 因为对程序存储器只能读不能写,所以查表指令数据传送都是单向的, 即从程序存储器到累加器中。
SETB C;1→C置一
3、位逻辑运算指令
ANL C,bit;C)∧(bit)→C
ORL C,/bit;(C)∨(~bit)→C
“ / “表示取反
JB bit,re1;若(bit)=1,则(PC)+rel→PC;否则,(PC)+3→PC
4、位条件转移指令
JNB bit,re1;若(bit)=0,则(PC)+rel→PC;否则,(PC)+3→PC
1、逻辑与指令【ANL A,#data;(A)∧data→A 】
2、逻辑或指令【ORL A,#data;(A)∨data→A】
3、逻辑异或指令【XRL A,#data;(A)⊕data→A】
4、累加器A清零指令【CLA A;0→A 】
5、累加器A取反指令【CPL A; ̅A→A】
RL A;左循环移位指令
2、以Rn为目的操作数的指令 【MOV Rn, #data;data→Rn】 (源操作数:累加器A、片内RAM单元、SFR内容,立即数) 传送到当前工作寄存器组R0~R7的某个寄存器
3、以直接地址为目的操作数的指令 【MOV direct, #data;data→direct】 (源操作数:累加器、片内RAM单元、工作寄存器,立即数) 传送到由direct所指的片内存储单元
返回指令

第3章 MCS-51指令系统

第3章 MCS-51指令系统

16
MCS-51单片机指令系统
MCS-51单片机指令系统包括111条指令 按功能可以划分为以下5类:
1. 数据传送和交换指令(29条)
2. 算术运算指令(24条) 3. 逻辑运算指令(24条) 4. 控制转移指令(17条) 5. 位操作指令(17条)
17

数据传送和交换类指令主要有以下几种:
1. 2. 3.

30H
Eg:MOV 30H,#33H 33H
30H
XX 30H
33H
30H
31H
Eg:MOV 30H,31H
55H
XX
55H
25
A

30H XX
地址
30H 33H
Eg:MOV 30H, A
33H
R0
Eg:MOV 30H,@R0
55H
取出
30H 78H 30H
55H
R3
78H
30H XX

55H
MOV A , 30H
XX 55H
30H
A
6
3、寄存器寻址
寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄 存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。 数据存放在R0~R7中的某个通用寄存器内,或者放在某个专用 寄存器中。 e.g.: MOV A,R7 ADD A,R0
DPTR
2000H
DPTR 2000H
XXXX
Eg:将数据指针DPTR指向存于ROM中的表格首地址。
MOV DPTR,#TABLE
27
三、片外数据传递指令
使用DPTR和Ri进行间接寻址 MOVX A, @DPTR ;A ←((DPTR))片外 MOVX A,@Ri ;A ←((Ri))片外 MOVX @DPTR,A ;(DPTR)片外←(A) MOVX @Ri,A ;(Ri)片外←(A) 注意: 该指令用于在单片机和外部RAM、扩展I/O的数据传送; 使用Ri时,只能访问低8位地址为00H~FFH地址段; 使用DPTR时,能访问0000H ~ FFFFH地址段。

MCS-51系列单片机的指令系统

MCS-51系列单片机的指令系统
一套控制计算机操作的编码,称之为机器语言,计算 机只能识别和执行机器语言的指令。为了便于人们理 解记忆和使用,通常用符号来描述计算机的指令系统, 而符号指令称之为汇编语言。各类机型计算机都有自 己的汇编语言指令系统,并且能够将汇编语言进行编 译成为机器语言指令。
51系列单片机指令系统包含5种功能类型的指令,7 种寻址方式,共有111条指令。
addr16 16位目标地址,片外数据存储器或程序存储器以及外 部芯片的地址,用于LCALL和LJMP指令中;
addr11 11位目标地址,片内数据存储器或程序存储器的地址, 用于ACALL和AJMP指令中;
rel 相关地址,8位带符号偏移量,一般是程序存储器字节地址, 通常在跳转类指令中使用,其对应的十进制范围为-128~+127;
立即寻址就是直接给出操作数。
取指令时,即可由程序存储器中直接取得操作数据。51单 片机中除了一条指令(MOV DPTR,#data16)是16位长 的立即数外,其余都是8位的立即数。
例如:MOV A,#30H;无论执行之前A中的内容是多少, 则执行后A=30H。
值得注意的一点是:在立即数寻址中立即数前面必须要加 上一个“#”号,“#”表示其后面内容为立即数而不是一个 字节单元地址。
bit 位地址,针对片内数据存储器中的可位寻址的位使用; DPTR 数据指针,可用做16位的地址寄存器; (X) X指寄存器或十六进制数,则(X)为指向以X寄存器中的内
容为目标地址的单元或以十六进制数据为目标地址的单元; ← 数据传送的方向,将左边的内容送入右边; A 累加器; ACC 直接寻址方式的累加器; B 寄存器B; C 进位标志位,是布尔处理机的累加器,也称为位累加器。
任何一种处理器都必须经过设计人员对

第三章 MCS--51指令系统

第三章 MCS--51指令系统

(3) 该指令使CY、OV清0。
如除数为0,则A为不定值,OV=1
第五节 逻辑运算指令 一、对A的操作 CLR A;A清0 CPL A;A取反 移位指令 RL A RLC A RR A RRC A
或 MOV R1,#20H MOV @R1, #3AH
MOV DPTR, #3020H
例3 将30H与20H内容互换
MOV A, 30H MOV 30H, 20H MOV 20H, A
(1)MOV 00H,#0FFH 或(1)MOV R0,#00H MOV @R0, #0FFH 或(1)MOV PSW, #00H MOV R0, #0FFH
INC Rn
INC direct INC @Ri
INC DPTR
例17 编程将存放在31H~33H中的数相加,其和放入30H单元 (设和不超过8位)。 MOV R0,#31H MOV A, @R0 INC R0 ADD A, @R0 INC R0 ADD A, @R0 MOV 30H, A MOV R0, #31H MOV R7, #03H MOV A, #00H LOOP:ADD A, @R0 INC R0 DJNZ R7, LOOP MOV 30H, A
第三章MCS-51单片机指令系统
基本要求: 熟记MCS-51的主要指令及简单程序的编程方法。 难点及处理: MCS-51的111条指令比较枯燥 ,需要记忆,可 多读一些例题并动手编一编。
第一节 指令及其表示方式
一、指令的基本概念 指令--让计算机做某操作所发命令
指令系统-- 一台计算机所有指令的集合。 MCS-51单片机共111条指令,分为五大类
四、堆栈操作指令 入栈:PUSH direct 出栈:POP direct

第三章MCS51的指令系统

第三章MCS51的指令系统

3.4.1 MCS-51数据传送指令
[1]. 以累加器A为目的操作数类指令(4条) 这4条指令的作用是把源操作数指向的内容送到累加器A。有直接、
立即数、寄存器和寄存器间接寻址方式:
MOV A,direct
(direct)→(A)直接单元30H
MOV A,0A2H
§3.1 概述
7种寻址方式,111条指令
指令所占用空 间(字节数)
指令执行周期 (运算速度)
单字节指令:49条 双字节指令:45条 三字节指令:17条
单周期指令:64条 双周期指令:45条 四周期指令:2 条
试问
1 如果一条指令执行时间为3个机器周 期,那么需要经历多少个时钟周期?
2 如果一条指令执行时使用了2us,而 晶振使用的是12MHz,请问执行这条指 令需要多少个机器周期?
(A)+((Ri))+(C)→(A) 累加器A中的内容与工作寄存 器Ri指向地址单元中的内容、连同进位位相加,结果存在A中
3.4.2 MCS-51算术运算指令
[3]. 带借位减法指令(4条)
这组指令包含立即数、直接地址、间接地址及工作寄存器与累加器A连同借位 位C内容相减,结果送回累加器A中。
3.4.1 MCS-51数据传送指令
[2]. 以寄存器Rn为目的操作数的指令(3条)
这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器 Rn中。有直接、立即和寄存器寻址方式:
MOV Rn, direct (data)→(Rn) 直接寻址单元中的内容送到寄存器Rn中 MOV R4,37H
**补充知识
MCS51系列单片机为复杂指令单片机CISC。目前单片机大 量使用的是精简指令集RISC结构单片机.

第三章MCS-51指令系统

第三章MCS-51指令系统
第三章 MCS-51单片机指令系统
3.1 概述
3.2
3.3
寻址方式
MCS-51的指令系统
3.4
伪指令
3.1
概述
指令:使计算机完成某种操作的命令。 指令系统 :计算机能够执行的全部操作所对应的指 令集合。 机器语言: 采用二进制编码表示指令,是计算机能够直 接识别和执行的语言。 汇编语言: 采用助记符 、符号、数字来表示指令的程序 语言,它与机器语言指令时一一对应的。
如果我们分别向DPH,DPL送数,则结果也一样。
如下面两条指令: 则就相当于执行了 MOV DPH,#35H MOV DPTR,#3512H。 MOV DPL,#12H。
(6) 累加器A与片外RAM之间的数据传递类指令(4条)
MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所 有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外 部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接 进行数据的传递,而外部则不行。 比如,要将外部RAM中某一单元(设为0100H单元的数据)送 入另一个单元(设为0200H单元),也必须先将0100H单元中的内 容读入A,然后再送到0200H单元中去。
MOV B,R0
PUSH ACC
;R0→B,R0为寄存器寻 址,B为直接寻址。
;A的内容压入堆栈
3.2.4
寄存器间接寻址
例:MOV A, @R0
• 以寄存器中内容为地址,以该地址中内容为操作数的
寻址方式。间接寻址的存储器空间包括内部RAM和
外部RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR, SP。其中R0、R1必须是工作寄存器组中的寄存器。 SP仅用于堆栈操作。

MCS-51第三章MCS-51单片机的指令系统

MCS-51第三章MCS-51单片机的指令系统

双字节
MOV direct2, direct1;(direct1)→direct2
三字节
例.已知R0=20H,(20H)=11H, (30H)=22H,(40H)= 33H问8051执行如下指令后,累加器A、50H、R5、 20H和60H单元中的内容是什么?
School of Engineering & Automation · Tianjin Polytechnic University
School of Engineering & Automation · Tianjin Polytechnic University
微机原理及应用
5.基址变址寄存器间接寻址
MCS-51单片机的变址寻址是以数据指针DPTR或 PC 作为基址寄存器以累加器A作为变址寄存器,以 两者内容相加形式新的16位地址作为操作数地址,再 寻址该地址读出数据。 MOVC A, @ A+PC ① 变址寻址方式只能对ROM寻址,只能读,不能 存数(查表) MOVC A, @ A+PC ② 变址寻址指令 MOVC A, @ A+DPTR PC不变
微机原理及应用
例.已知累加器 A中有一个0~9范围内的数,用以 上查表指令编出能查出0~9的平方值的程序。设平方 表首地址为2000H。 a.采用DPTR作为基址寄存器, 程序为: MOV DPTR, #2000H MOVC A, @A+DPTR 若累加器处值为3,得到一个新地址2003H,从该地 址中查表得9并存入累加器A中
微机原理及应用
c.寄存器寻址型传送指令 MOV A , Rn;Rn→A MOV direct , Rn;Rn→(direct) MOV Rn , A;A→Rn MOV direct , A;A→(direct) d.寄存器间址型传送指令 MOV A , @Ri;((Ri))→A MOV @Ri, A ; A → (Ri) MOV direct , @Ri;((Ri))→direct

第三章 MCS-51单片机指令系统

第三章 MCS-51单片机指令系统

位操作类指令(17条)
位操作指令实际就是布尔处理机的指令系统,这 为开关量控制提供了非常有效的手段。
位传送
位置位复位
位运算 位控制转移
位数据传送指令(2条)
MOV MOV
C , bit bit,C
例:片内RAM中(20H)=7FH,执行指令
MOV C,07H 则C=0
位置位复位指令(4条)
调用与返回指令组(4条)
长调用指令 绝对调用指令 子程序返回指令
LCALL addr16 ACALL addr11 RET
中断服务程序返回指令 RETI
空操作指令(1条)
NOP
例:把2000H开始的外部RAM单元中的数据送到3000H
开始的外部RAM单元中,数据个数存放在内部RAM 35H单元。
ANL(ORL,XRL) A , { #data ; direct ; @Ri ; Rn }
2. 直接地址单元与累加器A、立即数之间的逻辑操作(6条)
ANL(ORL,XRL) direct , { A ; #data }
清零与取反指令(2条)
清零: 取反:
CLR A CPL A
循环移位指令(4条)
2. 带进位加法指令(4条) ADDC A , { #data ; direct ; @Ri ; Rn }
3. 带借位减法指令(4条) SUBB A , { #data ; direct; @Ri ; Rn }
影响所有标志位状态
例: 执行指令 MOV A , #0C2H ADD A , #0A9H 对PSW相应状态位的影响如下 1 1 1
3.2 MCS-51指令分类介绍
共分5大类,111条指令。
1.数据传送类指令(29条) 2.算术运算类指令(24条) 3.逻辑运算及移位类指令(24条) 4.控制转移类指令(17条) 5.位操作类指令(17条)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、填空题
1、寻址是指( )。

80C51单片机指令系统有7种寻址方式,分别是:( )。

2、访问内部RAM可以采用的两种寻址方式为:( )和( )。

3、MCS-51单片机指令的基本格式为:( )。

4、Rn代表( ),其中n的取值范围是( );Ri代表( ),其中i的取值范围是( )。

@Ri的含义是( )。

5、在单片机指令中,30H和#30H的区别是( );R0和@ R0的区别是( );A←R1
和A←(R1) 的区别是( );DPTR和@DPTR的区别是( )。

6、汇编是指由( )“翻译”为( )的过程。

7、常用的伪指令有8条,试写出其中的5条( )、( )、( )、( )、( )。

8、LJMP指令的转移范围是(); AJMP指令的转移范围是(); SJMP指令的转移范围是()。

二、简答题
1、指出下列指令中的操作数的寻址方式。

(1)MOV R0,#30H (2)MOV A,30H (3)MOV A,@R0 (4)MOV @R0,A (5)MOVC A,@A+DPTR (6)CJNE A,#00H,30H (7)MOV C,30H (8)MUL AB (9)MOV DPTR,#1234H (10)POP ACC
2、80C51指令中,常用字符代表立即数或存储单元,试判断下列字符ABC的含义。

(1)MOV A,#ABC (2)MOV A,ABC
(3)MOV C,ABC (4)MOV DPTR,#ABC
3、若R0=11H,(11H)=22H,(33H)=44H,写出执行下列指令后的结果。

(1)MOV A,R0 (2)MOV A,@R0 (3)MOV A,33H (4)MOV A,#33H
4、若A=11H,(11H)=22H,B=44H,写出执行下列指令后的结果。

(1)MOV R1,A (2)MOV R3,11H (3)MOV R3,#11H (4)MOV R3,B
5、若A=11H,R0=33H,(22H)=66H,(33H)=44H,写出执行下列指令后的结果。

(1)MOV 40H,A (2)MOV 40H,R0 (3)MOV 40H,@R0 (4)MOV 40H,22H (5)MOV 40H,#22H
6、若A=11H,R0=33H,(22H)=66H,(33H)=44H,写出执行下列指令后的结果。

(1)MOV @R0,A
(2)MOV @R0,22H
(3)MOV @R0,#22H
7、若 A=11H,R0=33H,B=44H,(11H)=22H,(22H)=66H,(33H)=44H,分别写出执行下列指令后的结果。

(1)MOV A,R0 (2)MOV B,#55H (3)MOV 40H,@R0 (4)MOV 11H,22H (5)MOV @R0,22H
8、试将30H、R7、B、A、PSW、DPTR中的数据依次压入堆栈。

并指出每次堆栈操作后,SP=?、(SP)=?设原SP=60H,当前工作寄存器区为0区,(30H)=11H,R7=22H,B=33H,A=44H,PSW=55H,DPTR=6677H。

9、若A=78H,R0=34H,(34H)=DCH,(56H)=ABH,求分别执行下列指令后A和Cy中的数据。

(1)ADD A,R0 (2)ADDC A,@R0
(3)ADD A,56H (4)ADD A,#56H
10、若A=96H,R0=47H,(47H)=CBH,(69H)=34H,(95H)=96H,Cy=1,求分别执行下列命令后A 和Cy中的数据。

(1)ADDC A,,R0 (2)ADDC A,@R0
(3)ADDC A,69H (4)ADDC A,#69H
(5)SUBB A,R0 (6)SUBB A,@R0
(7)SUBB A,95H (8)SUBB A,#95H
11、若A=ABH,R0=34H,(34H)=CDH,(56H)=EFH,分别写出执行下列指令后的结果。

(1)XCH A,R0 (2)XCH A,@R0 (3)XCH A,56H (4)XCHD A,@R0 (5)SWAP A
12、若A=B7H=10110111B,R0=5EH=0101110B,(5EH)=D9H=11011001B,(D6H)=ABH=10101011B,分别写出执行下列各条指令的结果。

(1)ANL A,R0 (2)ANL A,@R0 (3)ANL A,#D6H (4)ANL A,D6H (5)ANL D6H,A (6)ANL D6H,#D6H
13、若A=95H=10010101B,R0=58H=01011000B,(58H)=93H=10010011B,(23H)=C1H=11000001B,分别写出执行下列各条指令后的结果。

(1)ORL A,R0 (2)ORL A,@R0
(3)ORL A,#23H (4)ORL A,23H
(5)ORL 23H,A (6)ORL 23H,#23H
14、若 A=95H=10010101B,R0=64H=01100100B,(64H)=85H=10000101B,(23H)=BAH=10111010B,分别写出执行下列各条指令后的结果。

(1)XRL A,R0 (2)XRL A,@R0
(3)XRL A,#23H (4)XRL A,23H
(5)XRL 23H,A (6)XRL 23H,#23H
15、若A=0111 1001B,Cy=0,分别写出执行下列各条指令后的结果。

(1)RL A (2)RLC A
(3)RR A (4)RRC A
16、若A=FFH,R0=00H,(00H)=FFH,DPTR=FFFFH,Cy=0,位地址(00H)=1,分别写出执行下列各条指令后的结果。

(1)DEC A (2)DEC R0
(3)INC @R0 (4)INC DPTR
(5)CPL 00H (6)SETB 00H
(7)ANL C,/00H (8)ORL C,00H
17、若A=FFH,R0=40H,(40H)= FFH,(30H)=00H,Cy=0,位地址(30H)=1,分别写出执行下列各条指令后的结果。

(1)INC A (2)INC R0
(3)DEC @R0 (4)DEC 30H
(5)CPL C (6)SETB C
(7)ANL C,30H (8)ORL C,/30H
18、循环程序中一般包括那几个部分?
三、分析程序
1、已知(30H)=11H、(11H)=22H、(40H)=33H,试求下列程序依次连续运行A、R0和30H、40H、50H、60H单元的内容。

MOV 50H,30H MOV R0,#40H MOV A,11H MOV 60H,@R0 MOV @R0,A MOV 30H,R0
2、设内RAM(40H)=FFH,分析以下程序运行结果。

MOV 50H,#40H MOV R1,#50H MOV A,@R1 MOV R0,A MOV 60H,@R0 MOV 30H,60H
3、设A=11H,(44H)=22H,R0=33H,写出下列程序依次运行后有关单元的内容。

MOV A,R0 MOV R0,#44H MOV 33H,@R0 MOV @R0,A MOV A,R0 MOVX @R0,A
4、说明下列指令的作用,执行后R0=?
MOV R0,#72H XCH A,R0 SWAP A XCH A,R0
5、对下面一段程序加上注释,并说明运行结果。

MOV A,#11H MOV B,A ADD A,B MOV 20H,A INC A MOV 21H,A ADDC A,20H SUBB A,B MOV R0,20H DEC R0 ADD A,@R0
6、假定外部数据存储器2000H单元的内容为60H,执行下列指令后,累加器A的内容为。

MOV DPTR,#2000H
MOV A,#00H
MOVX A,@DPTR
7、试求下列程序依次运行后相关单元中的内容。

已知R0=24H,C y=1,(1FH)=59H,(20H)=24H,(24H)=B6H。

MOV A,1FH ADDC A,20H CLR A ORL A,@R0 RL A ANL A,#39H RRC A CPL A
8、假定已把PSW的内容压入堆栈,再执行下列指令,实现的功能是。

MOV R0,SP
ORL @R0,#38H
POP PSW
四、按要求写出下列指令
1、请按下列要求传送数据。

(1)将R0中的数据传送到30H。

(2)将R0中的数据传送到R7。

(3)将R0的数据传送到B。

(4)将40H中的数据传送到50H。

(5)将40H中的数据传送到R2。

(6)将40H中数据传送到50H。

(7)将立即书40H传送到R5。

(8)将立即数40H传送到40H。

(9)将立即数40H传送到以R1中内容为地址的存储单元中。

(10)将R6中的数据传送到以R2中内容为地址的存储单元中。

2、试按下列要求传送数据
(1)内RAM 50H单元数据送外RAM 50H单元;设内RAM(50H)=11H。

(2)R0中数据送外RAM 50H单元;设R0=FFH。

相关文档
最新文档