MCS-51指令系统

合集下载

MCS-51单片机指令系统教程(3)

MCS-51单片机指令系统教程(3)
MOV IE,#00H ;初始化中断允许寄存器 MOV TH1,#0FEH ;为定时器1赋初值 尽管使用SFR的寄存器名称来取代直接地址,可以带 来程序的可读性,但是在汇编时,仍要将寄存器名字转换 为直接地址。
2,当直接地址时在工作寄存器区中时,可以使用两种寻址 方式来访问。 如:
MOV A,00H ;将RAM中00H单元数据送累加器A
04
03
02
01
00
返回前一次
2.2.3立即寻址
指令本身直接含有所需要的8位或16位的操作数。
将此数称为“立即数”(使用#标明)。如:
MOV A,#30H
;将(8位)立即数送累加器A
MOV DPTR,#2000H ;16位立即数送DPTR积存器
【注意】:MOV A,#30H MOV A,30H 两者的区别。 立即数寻址的指令长度为2或3个字节。
三字节指令在存储器中存放的方式示意图
指令的字节数与指令的运行时间
指令的字节多是否意味着指令周期就长?
指令
字节数 周期数
MOV A,R0
1
1
MOV A,#0FFH 2
1
MOV 20H,#30H 3
2
MUL AB
1
4
INC DPTR
1
1
指令说明 R0内容送累加器A
立即数FFH送A 立即数30H送内存20h单元
累加器A 02H
ALU
DPTR 0300H
0300H + 02H
0302H
ROM
0302H X
返回
MOVC A,@A+DPTR
2.2.6 相对寻址
转移指令中使用的一种寻址方式。MCS-51单片机的指令 系统中,有两类转移指令:相对转移( 2个或3个字节)

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单片机指令系统

第一条指令为远查表指令,可以在64K的程序存储器空间寻 址。基地址寄存器为DPTR,其意思为,DPTR里面存放的是 程序存储器中数据表格的首地址,A为数据地址的偏移量。
这条指令执行以后,以 (A)+(DPTR)的数值为地址数 据就送进A里面来了,也就是从表格首地址开始以后的第(A) 个数据被送进A了。(举例子说明)
编写好的程序都放在程序存储器中,由于一个存储地址所 指示的存储单元只能存放一字节的数据。所以,在存放指令时, 必须将指令拆分成一个一个字节进行连续存放。
比如: 实现“累加器加10H”这条指令,其机器语言为 0111010000010000, 占用了两个字节,就必须拆成两个字节 进行连续存储。
但是,用二进制来表示比较麻烦,因此,也常用十六进制来 表示如:74H 10H来表示以上这条机器语言。可见,用十六进 制表示指令比较简单,但是,指令系统有上百条指令,不易记 住。所以,一般采用容易记住的一些缩写符号来表示机器语言,
2. 在指令中直接给出操作数的地址, 这种寻址方式就属
于直接寻址方式。在这种方式中, 指令的操作数部分直接 是操作数的地址。
比如:MOV A,30H;将30H里面的数送到A里面 MOV 21H,30H;将30H里面的数存放到21H里面 在MCS -51 单片机指令系统中, 直接寻址方式中可
以访问 3 种存储器空间: (1) 内部数据存储器的低 128 个字节单元(00H~
7. 位寻址 指按照位进行的寻址操作,(前面讲的都是按字节进
行的寻址操作)。该种寻址方式中, 操作数是内部RAM单元 中20H到2FH的128个位地址以及SFR中的11个可进行 位寻址的寄存器中的位地址寻址。
比如:MOV C,20H;就是将RAM中位寻址区中20H位地 址中的内容送给C。区别与MOV A,20H;这个是将内部 RAM中20H单元的内容送给A。

第3章MCS-51指令系统

第3章MCS-51指令系统

第3章 MCS-51指令系统 4. 伪指令 在汇编语言源程序中,除了包含可以转化为特定计算机系 统的机器语言指令所对应的汇编语言指令外,还可能包含一些 伪指令,如“ORG 2000H”、“END”等。“伪”者,假也,尽 尽 管它不是计算机系统对应的指令,汇编时也不产生机器码,但 管它不是计算机系统对应的指令,汇编时也不产生机器码, 汇编语言程序中的伪指令并非可有可无。伪指令的作用是指导 汇编语言程序中的伪指令并非可有可无。 源程序的汇编过程, 源程序的汇编过程,例如“ORG 2000H”伪指令,指示汇编程序 将该伪指令后的汇编语言指令对应的机器码从2000H单元开始存 放。
第3章 MCS-51指令系统
· 52/54子系列内部RAM后128字节(即地址编码为80~FFH) 各单元之间不能直接传送。原因是高128字节内部RAM只能使 用寄存器间接寻址方式,而一条指令中,最多只允许一个操作 数使用寄存器间接寻址方式。 数据传送指令一般不会影响程序状态字寄存器PSW中的标 志位,但当数据传送到累加器A时,PSW中的奇偶标志位P会改 变,原因是奇偶标志位P总是体现累加器A中“1”的个数的奇偶 性。
第3章 MCS-51指令系统 1. 内部 内部RAM与特殊功能寄存器之间的数据传送 与特殊功能寄存器之间的数据传送 表3-1 内部RAM与特殊功能寄存器之间的数据传送指令
指令名称 指令格式 MOV A,Rn 以累加器A作为 目的操作数 MOV A,direct MOV A,@Ri MOV A,#data 机器码 11101rrr 11100101 direct 1110011i 01110100 data 功能 A←Rn A←(direct) A←(Ri) A←data 指令周期 1 1 1 1
MOV 90H,0F0H ; 将特殊功能寄存器0F0H单元(即寄存器B) 内容传送到特殊功能寄存器90H ; 单元(即P1口锁存器)中

MCS-51单片机指令系统

MCS-51单片机指令系统

MOV DPTR,#2000H
6、栈操作指令
PUSH direct; (SP)<-SP+1, ((SP))<(direct)
进栈指令的功能是先将SP的指针加1,然 后把直接地址指出的内容传送到栈指针SP寻 址的内部RAM单元中。
POP direct; (direct)<-((SP)), (SP)<-SP-1
@DPTR, A; ((DPTR))<-(A)
A, @R1
@DPTR,A
8、查表指令
MOVC A,@A+DPTR; (A)<-((A))+((DPTR)) MOVC A,@A+PC ; (A)<-((A))+((PC))
9、字节交换指令
XCH A, Rn; XCH A,direct; XCH A,@Ri;
XRL A, direct ; A与direct中的值 ;按位'异或',结果送入A中
XRL A, @Ri; A与间址寻址单元@Ri中 ;的值按位'异或',结果送入A中
4、逻辑异或指令
XRL A, #data ;A与立即数data按位 ;‘异或’,结果送入A中
XRL direct, A ; direct中值与A中的值 ;按位‘异或’, ;结果送入direct中
(A)<->(Rn) (A)<->(direct) (A)<->((Ri))
10、半字节交换指令
XCHD A,@Ri; (A)0-3<->((Ri))0-3
2、算术指令
1、不带进位位的加法
ADD
A, #data;
(A)<-(A)+#data

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地址段。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章 MCS-51指令系统一、单选题1.在相对寻址方式中,寻址的结果体现在(A)PC中(B)累加器A中(C)DPTR中(D)某个存储单元中2.在相对寻址方式中,“相对”两字是指相对于(A)地址偏移量rel (B)当前指令的首地址(C)当前指令的末地址(D)DPTR值3.在寄存器间接寻址方式中,指定寄存器中存放的是(A)操作数(B)操作数地址(C)转移地址(D)地址偏移量4.对程序存储器的读操作,只能使用(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令5.必须进行十进制调整的十进制运算(A)有加法和减法(B)有乘法和除法(C)只有加法(D)只有减法6.执行返回指令时,返回的断点是(A)调用指令的首地址(B)调用指令的末地址(C)调用指令下一条指令的首地址(D)返回指令的末地址7.下列指令中与进位标志位 CY 无关的指令有( A )移位指令( B )位操作指令( C )十进制调整指令( D )条件转移指令8.可以为访问程序存储器提供或构成地址的有( A )只有程序计数器 PC( B )只有 PC 和累加器 A ( C )只有 PC , A 和数据指针 DPTR( D ) PC , A , DPTR 和堆栈指针 SP9.以下各项中不能用来对内部数据存储器进行访问的是( A )数据指针 DPTR ( B )按存储单元地址或名称1( C )堆栈指针 SP ( D )由 R0 或 R1 作间址寄存器10.若原来工作寄存器0组为当前寄存器组,现要改1组为当前寄存器组,不能使用指令( A ) SETB PSW 。

3 ( B ) SETB DOH 。

3 ( C ) MOV PSW 。

3 , 1 ( D ) CPL PSW 。

3 11.不能为程序存储器提供或构成地址的有( A ) PC ( B ) A ( C ) DPTR ( D ) PSW12.执行以下程序段MOV SP , #3AHMOV A , #20HMOV B , #30HPUSH ACCPUSH BPOP ACCPOP B后, A 和 B 的内容为( A ) 20H , 30H ( B ) 30H , 20H( C ) 3AH , 30H ( D ) 3AH , 3AH13.假定( A ) =83H ,( R0 ) =17H ,( 17H ) =34H ,执行以下程序段ANL A , #17HORL 17H , AXRL A ,· R0CPL A后, A 的内容为( A ) CBH ( B ) 03H ( C ) EBH ( D ) C8H14.执行以下程序段MOV R0 , #dataMOV A ,· R0RL A2MOV R1 , ARL ARL AADD A , R1MOV · R0 , A后,实现的功能是( A )把立即数 data 循环左移 3 次( B )把立即数 data 乘以 10( C )把 data 单元的内容循环左移 3 次( D )把 data 单元的内容乘以 10 15. 以下的4条指令中,错误的指令是( A )INC A ( B )DEC A ( C )INC DPTR ( D )DEC DPTR 16. 指令MOV 30H,C 的寻址方式是( A )寄存器寻址( B )位寻址( C )直接寻址( D )间接寻址17. 指令MOV A,@A+DPTR的寻址方式是( A )寄存器寻址( B )立即寻址( C )直接寻址( D )变址寻址18. 指令JC 80H 的寻址方式是( A )相对寻址( B )立即寻址( C )直接寻址( D )变址寻址19. 指令MOV A,#50H 的寻址方式是( A )寄存器寻址( B )立即寻址( C )直接寻址( D )变址寻址20. 指令MOV A,R0 的寻址方式是( A )寄存器寻址( B )立即寻址( C )直接寻址( D )变址寻址21. 指令MOV A,@R0 的寻址方式是( A )寄存器寻址( B )立即寻址3( C )直接寻址( D )寄存器间接寻址22. 指令MOVX A,@DPTR 产生的信号是( A )ALE ( B )RD( C )WR( D )PSEN23. 指令MOV A,P1的寻址方式是( A )寄存器寻址( B )立即寻址( C )直接寻址( D )间接寻址24. 指令MOVX @DPTR,A 产生的信号是( A )ALE ( B )RD( C )WR( D )PSEN25. 以下的4条指令中,既完成判位转移又完成清位的指令是( A )JNC rel ( B )JB bit,rel( C )JBC bit,rel ( D )JNB bit,rel26. 以下的4条指令中,错误的指令是( A )ADD A,R0 ( B )ADDC A,R0( C )SUB A,R0 ( D )SUBB A,R027. 以下的4条指令中,错误的指令是。

( A )MUL A,B ( B )MUL AB( C )ADD A,B ( D )SUBB A,B28. 若(A)=C3H,(R0)=AAH,指令XRL A,R0执行后,A的内容是。

( A )52H ( B )69H ( C )EBH ( D )6CH29. 以下的4条指令中,“不带进位循环左移”指的是。

( A )RL A ( B )RLC A( C )RR A( D )RRC A 30. 指令DJNZ Rn,rel 指的是。

( A )比较不等转移( B )减1不为0转移( C )散转移( D )长跳转31. 以下的4条指令中,错误的指令是。

( A )XCH A,R0 ( B )XCH A ,@R0( C )XCHD A,R0 ( D )XCHD A,@R032. 若(CY)=1,P1.0为0,执行指令ANL C,P1.0后。

( A )P1.0为1 ( B )(CY)不变4( C )(CY)=1 ( D )(CY)=033. 以下的4条指令中,既有堆栈操作又影响中断触发器的指令是。

( A )ACALL ( B )LCALL( C )RET ( D )RETI二、填空题1.一台计算机的指令系统就是它所能执行的()集合。

2.以助记符形式表示的计算机指令就是它的()语言。

3.按长度分, MCS — 51 指令有()字节的,()字节的和()字节的。

4.在寄存器寻址方式中,指令中指定寄存器的内容就是()。

5.在寻址方式中,只能使用()位二进制数作为直接地址,因此其寻址对象只限于()。

6.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而操作数的()。

7.在变址寻址方式中,以()作变址寄存器,以()或()作基址寄存器。

8.在相对寻址方式中,寻址得到的结果是()。

9.长转移指令LJMP addr16 使用的是()寻址方式。

10.假定外部数据存储器 2000H 单元的内容为 80H ,执行下列指令后,累加器 A 中的内容为()。

MOV P2 , #20HMOV R0 , #00HMOVX A ,· R011.假定累加器 A 的内容为 30H ,执行指令:1000H : MOVC A ,· A+PC后,把程序存储器()单元的内容送累加器 A 中。

12.假定 DPTR 的内容为 8100H ,累加器的内容为 40H ,执行下列指令:MOVC A ,· A+DPTR5后,送入的是程序存储器()单元的内容。

13.假定( SP ) =60H ,( ACC ) =30H ,( B ) =70H ,执行下列指令:PUSH ACCPOP B 后, SP 的内容为(), 61H 单元的内容为(), 62H单元的内容为()。

14.假定( SP ) =62H ,( 61H ) =30H ,( 62H ) =70H 。

执行指令:POP DPHPOP DPL 后, DPTR 的内容为(), SP 的内容为()。

15.假定( A ) =85H ,( R0 ) =20H ,( 20H ) =0AFH 。

执行指令:ADD A , R0 后,累加器 A 的内容为(), CY 的内容为(),AC 的内容为(), OV 的内容为()。

16.假定( A )=85H ,( 20H )=0FFH ,( CY )=1 ,执行指令:ADDC A , 20H 后,累加器 A 的内容为(), CY 的内容为(), AC 的内容为(), OV 的内容为()。

17.假定( A ) =0FFH ,( 30H ) =0F0H ,( R0 ) =40H ,( 40H )=00H 。

执行指令:INC AINC R3INC 30HINC · R0后,累加器 A 的内容为(), R3 的内容为(), 30H 的内容为(), 40H 的内容为()。

18.假定( A ) =56H ,( R5 ) =67H 。

执行指令:ADD A , R6DA后,累加器 A 的内容为(), CY 的内容为()。

19.假定( A ) =0FH ,( R7 ) =19H ,( 30H ) =00H ,( R1 )6=40H ,( 40H ) =0FFH 。

执行指令: DEC ADEC R7DEC 30HDEC R1后,累加器 A 的内容为(), R7 的内容为(), 30H 的内容为(), 40H 的内容为()。

20.假定( A ) =50H ,( B ) =0A0H 。

执行指令:MUL AB后,寄存器 B 的内容为(),累加器 A 的内容为(), CY 的内容为(), OV 的内容为()。

21.假定( A ) =0FBH ,( B ) =12H 。

执行指令:DIV AB后,累加器 A 的内容为(),寄存器 B 的内容为(), CY 的内容为(), OV 的内容为()。

22.假定( A ) =0CFH ,执行指令:SWAP A后,累加器 A 的内容为()。

23.执行如下指令序列:MOV C , P1 。

0ANL C , P1 。

1ANL C , /P1 。

2MOV P3 。

0 , C后,所实现的逻辑运算式为()。

24.假定 addr11=00100000000B ,标号 qaz 的地址为 1030H 。

执行指令:qaz : AJMP addr11后,程序转移到地址()去执行。

25.假定标号 qaz 的地址为 0100H ,标号 qwe 值为 0123H (即跳转的目标地址为 0123H )。

应执行指令: qaz ; SJMP qwe 该指令的相对偏移量(即指令的第二字节)为()。

726 DPTR 是 MCS — 51 中唯一一个十六位寄存器,在程序中常用来作为 MOVC 指令的访问程序存储器的()使用。

相关文档
最新文档