第三章 51单片机的指令系统
第三章MCS51单片机的指令系统和汇编语言程序示例(第5.

第三章MCS51单片机的指令系统和汇编语言程序示例(第5、6、7节)1.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1)MOV A,#19HADD A,#66H(2)MOV A,#5AHADD A,#6BH2.已知:A=85H,R0=30H,(30H)=11H, (31H)=0FFH,C=1,试计算单片机执行下列指令后累加器A和C中的值各是多少?(1)ADDC A,R0, (2)ADDC A,31H(3) ADDC A,@R0, (4) ADDC A,#85H3.已知M1和M2中分别存放两个16位无符号数的低8位,M1+1和M2+1中分别存放两个16位无符号数的高8位,计算两数之和(低8位存放在M1,高8位存放在M1+1,设两数之和不超过16位)。
4.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?CLR CMOV A,#52HSUBB A,#0B4H5.已知:A=0DFH,R1=40H,R7=19H,(30H)=00H,(40H)=0FFH,试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1) DEC A (2) DEC R7 (3) DEC 30H (4) DEC @R16.试写出能完成85+59的BCD加法程序,并对工作过程进行分析。
7.已知:两个8位无符号乘数分别放在30H和31H单元中,编程实现他们乘积的低8位存放在32H,高8位存放在33H。
8.已知:R0=30H,(30H)=0AAH,试分析执行下列指令后累加器A和30H单元的内容是什么?(1)MOV A, #0FFH ANL A, R0(2)MOV A, #0FH ANL A, 30H(3)MOV A, #0F0H ANL A, @R0(4)MOV A, #80H ANL 30H, A9.设:A=0AAH和P1=0FFH,试编程把累加器A的低四位送入P1口的低四位,P1口的高四位保持不变。
专题四 MCS-51指令系统-第三章 单片机的指令系统

8、指令字节数和机器周期数
第三章 单片机的指令系统
是必须掌握的内容。 Ø 一台计算机所有指令的集合, 称为该计算机的指令系统。 Ø 各种计算机都有专用的指令系统。
Ø 本章主要介绍单片机的寻址方式及指令系统,
学时分配:2学时 1—53+97+98+99 2学时 54—96 100
第三章 单片机的指令系统 • 3.1 MCS-51 指令系统概述
类
按指令字长分类
按指令执行时间分类
3.2 寻址方式
• 寻址方式:7种
– – – – – – – – – 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 变址间接寻址 相对寻址 位寻址 寻址方式与寻址空间 MCS-51单片机的两个突出特点
寄存器寻址——操作数存放在寄存器中
寄存器为 MOV A,R0 MOV R0,#01001111B R0~R7,A,DPTR,C SETB RS0 MOV R3,#56H
目的寻址为直接寻址
2) 20H ~2FH 可位寻址区的寻址方式
字节寻址方式: 直接寻址 direct
寄存器间接寻址@R0,@R1
位寻址: bit 直接寻址
例: MOV 26H,C ; 位寻址 (26H)1位
MOV 26H,A ;字节寻址(26H)8位
3) 30H ~7FH 数据缓冲区的寻址方式
字节寻址方式: 直接寻址 direct
MOV A,#23H
PUSH ACC
;
A寄存器寻址
POP
0E0H
;直接寻址
4、可做片内RAM的指针有:
R0,R1, 四个组共有8个 预先设置RS1、RS0,以选定组。 SETB RS0 CLR RS1; 1组
第三章 MCS-51单片机的寻址方式和指令系统

由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址
以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)
第三章MCS51系列单片机指令系统及汇编语言程序设计

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条)
第3章 51单片机指令系统

3.1.3 堆栈操作指令
(1)入栈指令:
PUSH direct; SP ← SP+1, (SP) ← (direct)
入栈操作:栈指针SP+1指向栈顶的上 一个空单元,将直接地址direct寻址的单元 内容压入当前SP所指示的堆栈单元中。 (本操作不影响标志位)
例3-3 在中断响应时,SP=09H,数据 指针DPTR的内容为0123H。执行下列指令 后:
MOV @Ri , A ; (Ri)←A MOV @Ri , direct ; (Ri)←(direct) MOV @Ri , data ; (Ri)←#data 上述指令将累加器A,直接地址单元内 容或立即数送到Ri间接寻址单元中。由于内 容较多,下面需要说明:
累加器A是个使用最多的寄存器,MCS-51单 片机以A为中心体系结构。绝大部分指令均需通 过A送到ALU进行运算,结果存于A中,有些指令 仅在A中进行。 直接地址direct ,8位直接地址可寻址0~255个 单元。对于8051则直接寻址内部RAM0~127地址 空间的单元及128~255地址空间的特殊功能寄存 器。这里需注意128~255地址空间很多单元开始 时无定义,对无定义单元进行读/写,则读数不定, 欲写入的数将丢失。 间接寻址@Ri,@间接寻址的符号,是以Ri 的内容作为地址进行寻址,亦即Ri的内容不是操 作数,而是地址。此地址所对应的单元内容才是 所要找的操作数。间接寻址的寻址范围与直接寻 址相同(0~255)。直接寻址单元在编程时就已 明确,而间接寻址单元是在程序运行中明确。
第3章 MCS-51指令系

单片机技术及应用
3.3.2 数据传送类指令 • 数据传送类指令一般的操作是把源操作数传送到
单片机技术及应用
3.2.5 变址寻址
• 这种寻址方式用于访问程序存储器中的数据表格, 它把基址寄存器(DPTR或PC)和变址寄存器A的内 容作为无符号数相加形成16位的地址,访问程序
存储器中的数据表格。操作时是以某个寄存器的
内容为基础,然后在这个基础上再加上地址偏移
量,形成真正的操作数地址。需要特别指出的是, 用来作为基础的寄存器可以是PC或是DPTR,地 址偏移量存储在累加器A中。例如:
要操作数,因此在使用操作数的过程中就存在一个寻找存储 单元的问题。 MCS-51指令系统的寻址方式有下列几种: • ① 直接寻址。 • ② 立即数寻址。 • ③ 寄存器寻址。 • ④ 寄存器间接寻址。 • ⑤ 变址寻址。 • ⑥ 位寻址。 • ⑦ 相对寻址。
单片机技术及应用
3.2.1 直接寻址 • 在指令中含有操作数的直接地址,该地址指出了参与操作
单片机技术及应用
单片机技术及应用
第3章 MCS-51指令系
单片机技术及应用
教学提示 • 本章重、难点在于理解单片机MCS-51指令系统
的寻址方式,以及数据传送类指令、算术运算类 指令、逻辑操作类指令、位操作指令和控制转移 类指令操作的含义和具体使用方法。 教学目标 • 掌握指令系统的寻址方式。 • 掌握汇编语言指令的格式。 • 掌握汇编语言指令的功能及应用。 • 掌握伪指令的格式及应用。
第3章_MCS-51单片机指令系统及汇编语言程序设计2
3. 汇编语言的语句格式是什么?使用标号有什么限制?注释段起什么作用? 答案: MCS-51汇编语言的语句格式应符合下列结构: 【标号:】 操作码 【操作数】【;注释】 标号位于语句的开始,由以字母开头的字母和数字组成,它代表该语句的地址。 标号与操作码之间要用“:”隔开,标号与“:”之间不能有空格,“:”与操 作码之间可以有空格。 注释在语句的最后,以“;”开始,是说明性的文字,与语句的具体功能无关。 4. MCS-51汇编语言有哪几条常用伪指令?各起什么作用? 答案: ORG:汇编程序起始地址,用来说明其后程序段在存储器中存放的起始地址; EQU:赋值指令,用来给变量标号赋予一个确定的数值; DB:定义数据字节,指令按字节数的形式把数据存放在存储单元中; DW:定义数据字,按字(双字节)的形式把数据存放在存储单元中; DS:定义存储区,从指定的地址单元开始,保留一定数量的存储单元; BIT:位定义,其功能是把位地址赋给字符名称; END:汇编结束,表明汇编语言程序结束。
2.顺序程序
顺序程序是指程序中没有使用转移类指令的程序段,机器执行这 类程序时也只需按照先后顺序依次执行,中间不会有任何分支、循环, 也不需要调用子程序。 例:将一个单字节十六进制数转换成BCD码。 解:算法分析。单字节十六进制数在0~255之间,将其除以100后, 商为百位数;余数除以10,商为十位数,余数为个位数。 设单字节数存放在40H,转换后,百位数存放在R0中,十位数存 放在R1中,个位数存放在R2中,具体程序如下: ORG 0030H MOV A, 40H ;将单字节十六进制数送入A中 MOV B,#64H ;将100送入B中, #64H可直接写成#100 DIV AB MOV R0,A ;百位数送R0,余数在B中 XCH A,B ;余数送入A中 MOV B,#0AH ;将10送入B中, #0AH可直接写成#10 DIV AB ;商为十位数,余数为个位数 MOV R1,A MOV R2,B SJMP $
第3章 MCS-51单片机指令系统
(1)内部数据存储器的低128个字节单元 (00H~7FH)。例: MOV A, 40H ,表示把内 部RAM 40H单元的内容传送给A。 假设40H单元中的内容为2BH,结果是将直接地 址40H单元中的数据2BH传送到累加器A中。
第三章 MCS-51单片机指令系统
3.2.2 直接寻址
(2)特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。 对于特殊功能寄存器,在助记符指令中可以直接 用符号来代替地址。例: MOV A, P0 ,表示把 P0口(地址为80H)的内容传送给A。
3.3.1 内部数据存储器传送指令
1.立即数传送指令
MOV A,#data ;A←data MOV Rn,#data ;Rn←data,n=0~7 MOV direct,#data ;direct←data MOV @Ri,#data ;(Ri)←data,i=0,1 MOV DPTR,#data16 ;DPTR←data16 前四条指令将8位立即数传送到指定的存储单元中。 最后一条指令将16位立即数传送到数据指针 DPTR中,其中高8位送入DPH,低8位送入DPL。
(3)三字节指令 编码格式为:
例如数据传送指令MOV 20H,#3AH的编码格式为:
3.2 寻址方式
第三章 MCS-51单片机指令系统
所谓寻址,就是寻找操作数的真正地址,寻址方 式,就是指寻找操作数地址的方式。
在用汇编语言编程时,数据的存放、传送、运算 都要通过指令来完成。 编程者必须自始至终都要 十分清楚操作数的位置, 以及如何将它们传送到适 当的寄存器去参与运算。每一种计算机都具有多 种寻址方式。寻址方式的多少是反映指令系统优 劣的主要指标之一。
2. 汇编语言
汇编语言就是用助记符表示的指令,汇编语言与 机器语言一一对应。用汇编语言编写程序,每条 指令的意义一目了然,给程序的编写、阅读和修 改带来很大方便。而且用汇编语言编写的程序占 用内存少,执行速度快,尤其适用于实时应用场 合的程序设计。因此,在单片机应用系统中主要 是用汇编语言来编写程序。 汇编语言的缺点:缺乏通用性,程序不易移植, 是一种面向机器的低级语言。使用汇编语言编写 程序时,必须熟悉机器的指令系统、寻址方式、 寄存器的设置和使用方法。每种计算机系统都有 它自己的汇编语言。不同计算机的汇编语言之间 不能通用。
单片机原理与接口技术(电子工业出版社)课件 第3章 MCS-51单片机指令系统
加变址寻址、相对寻址和位寻址等七种。
16:50
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
17
3.1.4 寻址方式
1.立即寻址
----立即寻址
立即寻址是将操作数直接写在指令中,作为 指令的一部分存放在代码段里,位置在程序存储 器中。立即寻址中的操作数,称为立即数。 例如:MOV A, #30H ;30H→A
16:50
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
19
3.1.4 寻址方式
直接寻址方式可访问的范围 1) 特殊功能寄存器
----访问范围
这部分存储单元既可以用单元地址给出,也可 以用寄存器符号的形式给出。如:MOV A, 90H 或 MOV A, P1为同一条指令的两种写法(特殊功能寄 存器只能用直接寻址方式访问)。
bit:表示内部RAM和SFR中的具有位寻址功能
的位地址。
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
16:50
15
3.1.3 指令中的常用符号
@:表示间接寻址寄存器或基址寄存器的前缀
符号。
$: 表示当前指令的地址。
/:位操作数的前缀,表示对该位操作数取反,
如:/bit。 (x):表示存储单元x的内容。 ((x)):表示以寄存器或存储单元x的内容作为 地址的存储单元的内容。 →:表示数据传送方向。
返回目录
14
3.1.3 指令中的常用符号
#data:表示8位立即数,即8位常数,取值范围
为#00H~#0FFH。
#data16:表示16位立即数,即16位常数,取值 范围为#0000H~#0FFFFH。 addr16:表示16位地址。 addr11:表示11位地址。 rel:用补码形式表示的地址偏移量,取值范围 为-128~+127。
第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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机按程序一条一条地依次
执行指令,从而完成指定任务。要
让计算机完成各项任务,就应设计
各种程序。
51单片机指令系统 程序设计语言:
机器语言: 用二进制代码表示指令和数据。
用助记符表示指令操作功能,用标 汇编语言: 号表示操作对象。
独立于机器,面向过程,接近自然 高级语言: 语言和数学表达式.
(1)(SP)
( 2) ((SP))
(SP)+ 1
(direct)
51单片机指令系统
POP direct 指令执行中,机器也自动进行两步操作:
(1)(direct)
(2)(SP)
((SP))
(SP)- 1
51单片机指令系统
例1.设(SP) = 09H,(DPTR)= 0123H,分析:
执行 PUSH DPL
51单片机指令系统
选择修正值的规则:
(A3 ~ 0)> 9时或(AC)= 1时,(A3 ~ 0)
(A7 ~ 4)> 9或(C) = 1时, (A7 ~ 4)
(A3 ~ 0)+6
(A7 ~ 4)+ 6
51单片机指令系统
例、设(A)= 56H 为56的压缩的BCD码数,(R3)= 67H,
(CY)=1
51单片机指令系统
3.直接寻址
指令中直接给出操作数的地址。 MOV A,30H MOV 30H,DPH
51单片机指令系统
4.寄存器间接寻址
指令中寄存器的内容作为操作数 存放的地址,在工作上间接寻址寄存 器前用“@”表示前缀。
MOV 30H,#20H
MOV R0,#30H MOV A,@R0
51单片机指令系统
XRL direct,#data
51单片机指令系统
例、设(P1)= 0B4H = 10110100B,执行: XRL P1,#00110001B
结果按# 0 0 1 1 0 0 0 1 取反,即:
(P1)= 1 0 0 0 0 1 0 1 B = 85H 这称为“指定位取反”。
51单片机指令系统
51单片机指令系统
二、指令格式 汇编语言程序的每一条语句都与 计算机的某一条指令对应,所以必需 熟悉指令系统。
51单片机指令系统
二、指令格式 指令 = 操作码 + 操作数 操作码——表示了该指令所能执行的操 作功能。 操作数——表示参加操作的数的本身或 操作数所在的地址。
51单片机指令系统
MCS-51指令格式:
如: JC 60H ; 设(PC) = 2000H为基址,相对偏移量 为60H; 则当C = 1时,转移的目的地址 = 2000H + 2 + 60H
51单片机指令系统
7.位寻址
在位操作指令中直接给出位操作 数的地址。
51单片机指令系统
位寻址区
51单片机指令系统 3.3 51单片机的指令系统
111条指令,共分五大类: 数据传送类;(29条)
51单片机指令系统
四、指令描述约定 addr 16 —— 16位目的地址 addr 11 —— 11位目的地址
rel —— 8位带符号的偏移地址 DPTR —— 16位外部数据指针寄存器 bit —— 可直接位寻址的位 A —— 累加器 B —— 寄存器B
51单片机指令系统
四、指令描述约定 C —— 进、借位标志位,或位累加器 @ —— 间接寄存器或基址寄存器的前缀 / —— 指定位求反 (x)—— x中的内容 ((x))—— x中的地址中的内容 $ —— 当前指令存放的地址
51单片机指令系统 3.2 51单片机寻址方式
寻址方式:
寻找指令中操作数或操作数所
在的地址的方式,共7种方式。
51单片机指令系统
1.立即寻址
所要找的操作数是一二进制数或
十进制数,出现在指令中,用“#” 作前缀,如 MOV A,#20H
51单片机指令系统
2.寄存器寻址
所要找的操作数存放在工作寄存 器R0 ~ R7中,或寄存器B中。如: MOV A,R2 指令中原操作数和目的操作数都是寄 存器。
第三章 MCS-51单片机指令系统
3.1 3.2 3.3 3.4 51单片机指令系统概述 51单片机的寻址方式 51单片机的指令系统 51单片机伪指令
51单片机指令系统 3.1 51单片机指令系统概述
一、概述
指令:是使计算机完成某种操作 的命令。
指令的三种属性:
a、功能;b、时间;c、空间
51单片机指令系统
MOV direct,A ; MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV direct,#data
(direct)
(A)
MOV @Ri,A
MOV @Ri, direct MOV @Ri,#data MOV DPTR,#data16 ;唯一的16位数据传送指令。
MOVC A,@A + DPTR MOVC A, @A + PC 执行后会使/PSEN有效。 MOVC 含义是传送常数。
以DPTR 为基地址的指令,可在ROM 的64KB范围内查表;
而以PC为基地址的指令只能在(PC)+ 1为中心上、下256B范 围内查表。
51单片机指令系统
例:设(A)= 一个BCD码常数,试用查表法获得其相 应的ASCII码。 解: MOV DPTR,#TAB MOVC A,@.A+DPTR TAB:DB 30H
PUSH DPH 后,各单元中的内容。 例2.设(SP)= 0BH,(0BH)= 01H, (0AH)= 23H 执行 POP DPH POP DPL
后,各单元中的内容。
51单片机指令系统
结论:1)PUSH 与 POP 操作过程刚好相反; 2)进、出栈规则:
先进后出,后进先出。应注意指令书写先后
顺序;
执行 ADDC A,R3 DA A 结果为:124 注意:1)DA指令只能跟在加法指令后面使用;
2)调整前参与运算的两数是BCD码数;
3)DA指令不能与减法指令配对使用,但可以实现对A中 压缩BCD数进行减一操作。
51单片机指令系统
例、两个4位BCD码相加,一个存放在(31H)(30H);另 一个存放在(33H)(32H);和数拟回存在(31H)(30H) 中,试编程实现之。 解: MOV R0,#30H INC R0 INC R1
51单片机指令系统
“或操作”: ORL A,Rn ORL A,direct ; (A) (A)∨(Rn),以下类同。
ORL A,@Ri
ORL A,#data ORL direct,A ORL direct,#data
51单片机指令系统
例、将A中的低3位送入P1中,并且保持P1中高5位不变。 ANL A,#07H
上述指令不影响任何标志位,但PSW的P位除外。
51单片机指令系统
上述指令不影响任何标志位,但PSW的P位除外。
注意:MOV Rn,Rn
MOV @Ri, @Ri MOV Rn, @Ri MOV #data, A 等等指令是非法指令。
Х Х
Х Х
哇!好 容易出 错啊!
51单片机指令系统
查表指令
与ROM之间的数据传送。
A,@Ri
A,#data
上述四条指令多用于多字节数相加。
51单片机指令系统
二、减法指令 SUBB A,Rn ;(A) (A)-(Rn)-(C) SUBB A,direct SUBB A,@Ri SUBB A,#data 注意:减法之前先清零C。
51单片机指令系统
三、加一指令
INC A
INC INC INC INC Rn direct @Ri DPTR
MOV R1,#32H
MOV A,@R0 ADD A,@R1 DA A MOV @R0,A
MOV A,@R0
ADDC A,@R1 DA A MOV @R0,A
51单片机指令系统
六、乘法和除法指令
乘法: MUL AB ;(A)×(B),积的低8位在A中,积的
; 高8位在B中; C总为0。
除法: DIV AB ;(A)÷(B),商在A中,余数在B中。 ; 若(B)= 0 ,则结果不定,(OV)= 1, ;(C)= 0。
5.基寄存器加变址寻址寄存器间接寻址 操作数地址 = 变地址 + 基地址 基地址寄存器 DPTR 或 PC 变址寄存器 @A 该寻址方式常用于访问程序存储器, 查表。 如 MOVC A,@A + DPTR
51单片机指令系统 6.相对寻址
把指令中给定的地址偏移量与本指 令所在单元地址(PC内容)相加得到 真正有效的操作数所存放的地址。
;(A)
(A)+1
51单片机指令系统
四、减一指令
DEC A
DEC DEC DEC Rn @Ri direct
;(A)
(A)-1
51单片机指令系统
五、十进制调整指令 DA A ;二 ——十进制调整指令。
执行过程中,CPU能根据加法运算后,累 加器中的值和PSW中的AC及C标志位的状况 自动选择一个修正值(00H、06H、60H、 66H)与原运算结果相加,进行二——十进 制调整。
RAM
128字节
51单片机指令系统
前述操作数描述符:A,direct,Rn,@Ri,#data,DPTR等。
经排列组合可写出下列指令:
MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A ;(A) (Rn)以下类似。
MOV Rn,direct
MOV Rn,#data
[标号] :操作码助记符 [第一操作数] , [第二操作数] ;[注释]