第三章 指令系统

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

D3
7BH 73H 6BH
D2
7AH 72H 6AH
D1
79H 71H 69H
D0
78H 70H 68H
2CH
2BH 2AH 29F
67H
5FH 57H 4FH
66H
5EH 56H 4EH
65H
5DH 55H 4DH
04H
5CH 54H 4CH
63H
5BH 53H 4BH
62H
5AH 52H 4AH
外部RAM

寄存器R0
3AH 3AH
76H
累加器A
76H

24
4. 立即寻址方式
操作数在指令中直接给出(立即数),作为指令的一部 分与操作码一起存放在ROM内,取指后即得到操作数 本身,不需要另外去寄存器或存储器等处寻找和取数。
立即寻址方式主要用来给寄存器或存储单元赋初值,并
且只能用作源操作数,不能用作目的操作数。
址。
⑧ bit:位地址,指内部RAM和特殊功能寄存器SFR中可 的直接寻址的位地址。 ⑨ @:间接寻址寄存器的前缀标志,如@Ri,@DPTR, 表示寄存器间接寻址。
12
MCS-51单片机指令中常用符号的意义
(X):表示某寄存器或某单元X中的内容。 ((X)):表示由X间接寻址的单元中的内容,即(X)作地
⑥ addr11:11位目的地址。目的地址应与下条指令处于
相同的2KB程序存储器地址空间范围内,主要用于绝 对转移指令AJMP和子程序绝对调用指令ACALL指令
中。
11
MCS-51单片机指令中常用符号的意义
⑦ direct:表示直接寻址的地址,即内部数据存储器RAM 单元的8位地址(0 ~ 127 或 0 ~ 255)或特殊功能寄存器 SFR的地址。对于SFR可直接用其名称来代替其直接地
机器语言指令:用二进制代码表示的指令,也称机器码
例如:“累加器A加1”指令用二进制数表示时,是“00000100”,在 程序存储器中占用一个字节单元。
汇编语言指令:用容易记忆的缩写符号表示机器语言指
令就是汇编语言指令。
例如,“A加B”用英语写出来是“Add B to A”,缩写成“ADD A, B”。这个“ADD A,B”就是汇编语言指令。 编写机器语言程序实质上就是用汇编语言编写程序。
源操作均是特殊功能寄存器P0
18
直接寻址是访问特殊功能寄存器的唯一方式
2. 直接寻址方式
目的地
XXH
MOV A,3AH
内部RAM SFR XXH
例:MOV A,3AH
程序存储器 内部RAM … 操作码 3AH 39H … … PC PC+1
11100101 00111010
100111111
直接地址
位寻址区中的位有两种表示方法:

位地址。例:2FH单元的第0位表示ຫໍສະໝຸດ Baidu78H
单元地址加位。例:2FH单元的第0位表示为2FH.0
29
内部RAM位寻址区的位地址
单元地址
2FH 2EH 2DH
D7
7FH 77H 6FH
D6
7EH 76H 6EH
D5
7DH 75H 6DH
D4
7CH 74H 6CH
21
3. 寄存器间接寻址方式@
以指定寄存器的内容为地址,由该寄存器所指定的单元内容 作为操作数。(寄存器中存放的是操作数的地址) 寄存器间接寻址方式的寻址范围: 内部RAM低128单元:只能使用R0或R1作间址寄存器(地址 指针),其通用形式为 @Ri(i=0 或 1) 外部RAM 64KB:通常使用DPTR作间址寄存器,其形式为 @ DPTR 外部RAM的低256单元:既能用DPTR作间址寄存器寻址, 也可使用R0或R1作间址寄存器寻址。 堆栈操作指令(PUSH和POP):以堆栈指针SP作间址寄存 器寻址。 22
出现在源程序中。
7
[< 标号: >] < 操作码 > [< 操作数 >][; < 注释 > ]
⑤ 操作数为指令操作提供数据,它与操作码之间必须以一 个或几个空格分隔。 在一条语句中,可以没有操作数,可以有1、2、3个操 作数,各操作数之间用逗号“,”分隔。对于两个操作数 的指令,前面的操作数称为目的操作数,后面的操作数 称为源操作数。 80C51的操作数有寄存器寻址、直接寻址、寄存器间接 寻址、立即寻址、变址寻址、相对寻址、位寻址7种不 同的寻址方式。 【注】指令与语句的关系:没有标号和注释的语句就是指令。
寻址方式,就是指如何 找到存放被操作数据的 位置(地址)的方法。
3.2 MCS-51单片机的寻址方式
寻址方式:指定操作数存放位置的方法。
1. 2. 寄存器寻址方式 直接寻址方式
3.
4. 5. 6. 7.
寄存器间接寻址方式
立即寻址方式 变址寻址方式 位寻址方式 相对寻址方式
15
MCS-51单片机的 7 种寻址方式
8
指令的描述中经常用到一些特殊符号
Rn Ri direct #data: #data16 addr16: addr11 rel 工作寄存器R0~R7, 即n=0~7。 寄存器R0、 R1,即i=0、1。 8 位内部RAM单元的地址 指令中的8 位常数。 指令中的16位常数。 16位的目的地址 11位的目的地址 8位带符号的偏移量字节
A 10011111
寄存器寻址方式举例:
MOV A, R3 INC R0 ; 将R3内容送累加器A ; R0← (R0)+1
直接寻址方式举例:
MOV 65H, A MOV A, 3AH MOV 10H , 3AH MOV IE , #85H ; 将累加器A的内容送内部RAM 65H单元中 ; 将直接地址单元3AH中的内容送累加器A ; 将3AH单元中的内容送10H单元 ; 立即数85H送中断允许寄存器IE
一条语句可以有标号,也可以没有标号,标号的有无取
决于本程序中其他语句是否需要访问这条语句。
6
[< 标号: >] < 操作码 > [< 操作数 >][; < 注释 > ]
③ 操作码是用英文(或缩写)表示的指令功能助记符。 它确定了CPU运行本条指令完成什么样的操作功能。 如: ADD表示加法操作。 任何一条指令都必须有操作 码项,不能省略。 ④ 注释部分是在编写程序时,为了增加程序的可读性, 由用户拟写对该条指令或该段程序功能的说明。它与 操作码或操作数之间以分号“;”间隔,可以用中文、 英文或某些符号来表示,它不被编译成目标代码,只
27
A, @A+DPTR A , @A+PC @A+DPTR
第1条查表指令中DPTR在使用前可以赋值,查表范围可达
例如: MOVC A, @A+DPTR ;(A)←((A)+(DPTR))
变址寻址示意图
28
6. 位寻址方式
MCS-51单片机具有位处理功能,可以对数据位进行传 送及逻辑操作,因此具有相应的位寻址方式。 位寻址的寻址范围: ① 内部RAM中的位寻址区:20H ~ 2FH。16个单元共128 个位,位地址范围:00H ~ 7FH。
部分特殊功能寄存器:如累加器A、寄存器B、数据指针
DPTR、位累加器CY等。
16
1. 寄存器寻址方式
目的地
寄存器
MOV A,R1
R0~R7 A B DPTR
2. 直接寻址方式
指令中操作数直接以存储单元地址的形式给出。
直接寻址方式只能使用8位二进制数表示的地址,因此,
该方式的对RAM的寻址范围只限于内部RAM。 低128单元:在指令中直接以单元地址形式给出; 特殊功能寄存器:可以单元地址形式给出,也可以寄存 器符号形式给出。 例如: MOV A, 80H MOV A, P0
61H
59H 51H 49H
60H
58H 50H 48H
28H
27H 26H 25H
47H
3FH 37H 2FH
46H
3EH 36H 2EH
45H
3DH 35H 2DH
44H
3CH 34H 2CH
43H
3BH 33H 2BH
42H
bit:
/ (X) ((X))
内部数据RAM或SFR的可直接寻址位。
位操作数的前缀,表示对该位取反。 X中的内容。 由 X寻址的单元中的内容。

<=>
表示数据的传送方向。
表示数据交换。
MCS-51单片机指令中常用符号的意义
① Ri和Rn:R表示当前工作寄存器区中的工作寄存器,当前 工作寄存器的选定是由PSW的RS1和RS0位决定的。 i = 0 或 1,即R0和R1,可用作间接寻址的寄存器@Ri。 n = 0 ~ 7,即R0 ~ R7,当前工作寄存器组的8个寄存器。 ② #data: #表示立即数,data为8位常数。 #data是指包含在 指令中的8位立即数。 ③ #data16: 包含在指令中的16位立即数。
址,该地址的内容用((X))表示。
/ :表示对该位操作数取反,但不影响该位的原值。 ← :表示指令操作流程,将箭头右边的内容送入箭头
左方所指的寄存器或单元中去。
←→ :表示将箭头双方的内容相互交换。
13
3.2 MCS-51单片机的寻址方式
我的信在她 那!找信去!


注:找信是寻找信的“地 址”!
1. 寄存器寻址方式(R0~R7、A、B、DPTR等)
操作数在寄存器中,只要指定了寄存器就能得到操作数。
(指令中以符号名称来表示寄存器)
寄存器寻址方式的寻址范围:
工作寄存器:4组共32个工作寄存器,但寄存器寻址只
能使用当前寄存器组,因此指令中的寄存器名只能是R0 ~ R7。当前工作寄存器组通过PSW中RS1、RS0位状态 确定。
例如: MOV A, #70H
MOV DPTR, #8200H
;A ←70H
;DPH←82H,DPL←00H
25
5. 变址寻址方式(基址寄存器加变址寄存器间接寻址)
变址寻址是为了访问程序存储器(ROM)中的数据表格。 (查表指令) 以DPTR或PC作为基址寄存器,以累加器A作为变址寄
存器,并以两者内容相加形成的16位程序存储器地址,
10
MCS-51单片机指令中常用符号的意义
④ rel:相对地址。以补码形式表示的8位地址偏移量,范
围为-128 ~ +127,主要用于无条件相对短转移指令
SJMP和所有的条件转移指令中。 ⑤ addr16:16位目的地址。目的地址可在全部程序存储 器的64KB空间范围内,主要用于无条件长转移指令 LJMP和子程序长调用指令LCALL中。
字母、数字或其他特定字符,并以“:”与操作码进行间
隔。
例如: LOOP: ADD A, #10H ; (A)←(A)+10H
5
[< 标号: >] < 操作码 > [< 操作数 >][; < 注释 > ]
【关于标号的说明】: 不能使用本汇编语言已经定义的符号(保留字)作为标 号,如指令助记符、伪指令助记符、寄存器的符号名称 等。 同一标号在一个程序中只能定义1次,不能重复定义。
第 3 章 MCS-51单片机的指令系统
3.1 3.2 3.3 单片机指令系统概述 MCS-51单片机的寻址方式 MCS-51单片机的指令系统
1
3.1 单片机指令系统概述
指令:指挥计算机工作的命令,一种计算机所能执行的 指令集合称之为计算机指令系统。 机器语言指令 汇编语言指令
2
3.1 单片机指令系统概述
作为操作数所在的地址。 【注意】:
累加器A中的数为无符号数。
变址寻址是专门针对程序存储器的寻址方式,寻址范围
可达64KB。
26
变址寻址指令只有3条(均为1字节指令): MOVC MOVC JMP
64KB。 第2条指令中查表基址值PC是固定的,而A的内容是8位无符 号数,因此只能在当前指令以下的256个地址单元范围内进行 查表。 第3条指令是无条件转移指令。
3. 寄存器间接寻址方式
目的地
信在XXH中 寄存器
XXH 可寻址内部 RAM128B、 外部RAM 寻址DPTR
MOV A,@R1
R0、R1 DPTR
【例】:假定寄存器R0的内容是3AH,则指令 MOVX A, @R0
功能:以寄存器R0的内容3AH为地址,把该外部RAM地
址单元中的内容送累加器A。
3
两种语言指令对照:
汇编语言指令 MOV A,#0AH ADD A,#14H

机器语言指令 74H 0AH 24H 14H
MCS-51单片机汇编语言语句格式
MCS-51单片机汇编语言语句的标准格式如下:
[< 标号: >] < 操作码 > [< 操作数 >][; < 注释 > ]
① 方括号[ ]表示该项是可选项,可有可无。 ② 标号是用户设定的符号,它实际代表该指令所在的地址。 标号由1~8个ASCII字符组成,必须以字母开头,其后跟
相关文档
最新文档