8051单片机指令系统

合集下载

第3章80C51的指令系统

第3章80C51的指令系统

另一类直接寻 址是转移目标地 址的寻址。如: LJMP ADDR16
操作数 在50H单元
50H
3AH
E5H 50H
MOV A,50H
RAM
3AH
ACC
ROM
SFR
2021/6/23
15
❖ 定义:将操作数的地址直接存放在指令中,这种 寻址方式称为直接寻址。
❖ 特点:指令中含有操作数的地址。该地址指出了 参与操作的数据所在的字节单元地址或位地址。 计算机执行它们时便可根据直接地址找到所需要 的操作数。
第3章 80C51的指令系统
3.1 指令格式及常用符号
3.2 80C51的寻址方式
3.3 数据传送指令
(29条)
3.4 算数运算指令
(24条)
3.5 逻辑运算与循环类指令(24条)
3.6 控制转移类指令
) 3.7 位操作类指令
(17条 (17条)
2021/6/23
1
❖ 指令:CPU按照人们的意图来完成某种操作的命令。
24
❖ 定义:将程序计数器PC的当前值(取出本条指令后的PC 值)与指令第二个字节给出的偏移量(rel)相加,形成 新的转移目标地址。称为相对寻址方式。
❖ 特点:相对寻址方式是为实现程序的相对转移而设计的, 为相对转移指令所使用,其指令码中含有相对地址偏移量, 能生成浮动代码。
❖ 如: SJMP rel
寻址范围:只能对程序存储器ROM进行寻址,主要用于 查表性质的访问。
2021/6/23
22
注意:累加器A中存放的操作数地址相对基地址的 偏 移 量 的 范 围 为 00H ~ FFH ( 无 符 号 数 ) 。 MCS-51单片机共有以下三条变址寻址指令:

第4章 80C51系列单片机指令系统

第4章 80C51系列单片机指令系统

§4.2 指令系统分类与速解 一、指令分类图解
1、数据传送类指令图解
⑷数据交换与数据交换指令 ●数据交换是指两个数据空间的数据交换操作。
●数据交换通过累加器A进行操作。
●交换指令有:
△整字节交换XCH。 △半字节交换XCHD。
XCH
XCHD
△高低半字节自交换SWAP。SWAP
§4.2 指令系统分类与速解 一、指令分类图解
三、MCS-51单片机寻址方式
5、变址寻址方式
●变址寻址是以DPTR或PC作基址寄存器,以累加器A 作变址寄存器,两者的内容相加形成 16位地址--作为操作数地址。 如: (A) = 54H ◑例:MOV A,@A+DPTR (DPTR)=3F21H 执行后A的内容是7FH (3F75H)=7FH ●变址寻址只能对程序存储器寻址。
●rel--相对转移指令中的偏移量,为8位带符号补码数。
●DPTR----数据指针。
●bit----内部RAM(包括专用寄存器)中的直接寻址位。 ●A ----累加器。 ●ACC----直接寻址方式的累加器。
§4.1 指令系统基础
二、指令格式和符号约定
3、汇编指令中的符号约定
● B----寄存器B。
1、数据传送类指令图解
⑷数据交换与数据交换指令 XCH ●数据交换指令图 @Ri XCHD A SWAP
direct
XCH
Rn
XCH A,Rn
;Rn寄存器与A中数据全交换
XCH A,@Ri ;Ri间接地址中数据与A中数据全交换
XCH A,direct ;直接地址中数据与A中数据全交换 XCHD A,@Ri ;Ri间接地址中低4位数据与A中低4位数据交换
§4.1 指令系统基础

8051汇编语言概述一 ) 指令分类 42个助记符,33种功能,共...

8051汇编语言概述一 ) 指令分类 42个助记符,33种功能,共...

3-3 数据传送类指令
数据传送操作是指把数据从源地址传送到目的地址, 源地址内容不变。共29条指令,使用8种助记符: 片内数据存储器传送指令MOV;
片外数据存储器传送指令MOVX;
程序存储器传送指令MOVC; 累加器交换指令 XCH、XCHD、SWAP; 堆栈操作指令 PUSH、 POP; 3-5
3-3-4 累加器交换指令
1) 字节交换指令XCH(3 条)
助记符格式
XCH A, Rn
机器码
11001rrrB
相应操作
A Rn
指令说明 机器周期
n=0~7 1 1
XCH A, direct 11000101B A (direct) direct
XCH A, @Ri
1100011iB data
MOV R2,#20h ;设臵传送次数 MOV DPTR,#TAB ;设臵数据源起始地址 MOV R0,#30H ;设臵目标起始地址 LOOP: MOV A, #00h ;设臵变址值 MOVC A, @A+DPTR ;读外部数据存储器 MOV @R0, A ;将数据传送到内部RAM INC R0 ;目标地址+1 INC DPTR ;源地址+1 DJNZ R2,LOOP ;传送个数判断
五)汇编语言的伪指令
伪指令不是真正的指令,它无对应的机器码,在汇编时不 产生目标程序,只是用来对汇编过程进行某种控制。 (p178)
1)ORG nnnnh ;设臵起始地址 例如: ORG 0030h mov a,#00h …… 2)END 汇编结束伪指令 3)EQU (data、bit)等值伪指令 例如:SDA EQU P1.0 ; sda bit P1.0 addr1 EQU 1000h ; addr1 data 1000h D5 EQU 5fh ; D5 data 5fh

第3章 80C51系列单片机指令系统

第3章  80C51系列单片机指令系统

变址寻址示图
内部ROM 内部RAM
3AH 0046H 65H
操作数
寄存器
目的地
3AH 0046H
A
DPTR PC
基址寄存器 0012H
变址寄存器 34H
MOVC A, @A+DPTR
• 6.位寻址方式

80C51具有位处理功能,可以对数据位进行操作。 位寻址指令中应直接使用位地址,它属于直接寻址方式, 因此与直接寻址执行过程基本相同,但参与操作的数据 是1位,而不是8位。
指令一般由两部分组成,即操作码(表示指令的操作功能)和 操作数(参加操作的数据或数据地址)。 •由于计算机只能识别二进制数,所以计算机的指令均由二进制 代码组成。为了阅读和书写方便,常把它写成十六进制形式, 通常称这样的指令为机器指令。
• 机器语言级指令格式: • 1、单字节指令:对于单字节指令有两种情况:一种是 操作码、操作数均包含在这一个字节之内;另一种情况 是只有操作码无操作数;格式为: • 操作码 • 如:“MOV A,R0”所对应的机器语言指令为“E8H”。 • 2、双字节指令:对于双字节指令,均为一个字节是操 作码,一个字节是操作数;格式为: • 操作码 操作数 • 如:“MOV A,20H”所对应的机器语言指令为“E520H”。 • 3、三字节指令:对于三字节指令,一般是一个字节为 操作码,二个字节为操作数;格式为: • 操作码 第一操作数 第二操作数 • 如:“MOV 20H,#46H”所对应的机器语言指令为 “E52046H”。()
• 为了便于记忆和使用,制造厂家对指令系统的每一条指令都 给出了助记符。助记符是根据机器指令不同的功能和操作对 象来描述指令的符号。由于助记符是用英文缩写来描述指令 的特征,因此它不但便于记忆,也便于理解和分类。这种用 助记符形式来表示的机器指令称为汇编语言指令。计算机的 指令一般用汇编语言指令来表示。 • 80C51汇编语言指令格式如下: • [标号:] 操作码 [目的操作数]

8051单片机3单片机指令系统

8051单片机3单片机指令系统

(1) 方括号[ ]表示该项是可选项, 可有可无。 (2) 标号是用户设定的符号, 它实际代表该指令所在的地址。 标号必须以字母开头, 其后跟1~8个字母或数字, 并以“:”结 尾。 (3) 操作码是用英文缩写的指令功能助记符。它确定了本条指 令完成什么样的操作功能。如: ADD表示加法操作。任何一 条指令都必须有该助记符项, 不得省略。 (4) 操作数指的是指令操作的数据. 可以是一个数,也可以是寄 存器和特殊功能寄存器,还可以是标号地址;个数可以为0, 3 也可以为1,2,3
23
3.4.1 数据传送类指令
3.4.1 数据传送类指令
数据传送类指令共29条, 它是指令系统中最活跃、 使 用最多的一类指令。一般的操作是把源操作数传送到目的操 作数, 即指令执行后目的操作数改为源操作数, 而源操作数保 持不变 数据传送类指令不影响进位标志CY、 半进位标志AC 和溢出标志OV, 但当传送或交换数据后影响累加器A的值时, 奇偶标志P的值则按A的值重新设定。 按数据传送类指令的操作方式,又可把传送类指令分 为3种类型: 数据传送、数据交换和堆栈操作, 并使用8种助记 符: MOV、MOVX、MOVC、XCH、XCHD、SWAP、 PUSH及POP 24
3.4.1 数据传送类指令
25
3.4.1 数据传送类指令
1. 内部数据存储器间数据传送指令
内部RAM区是数据传送最活跃的区域, 可用的指令数也最 多, 共有16条指令, 指令操作码助记符为MOV,通用格式为: MOV 目的操作数 , 源操作数 内部RAM之间源操作数传递关系如下图所示
26
3.4.1 数据传送类指令
4
3.1 指令格式
指令描述符号:
在分类介绍各类指令之前, 先对描述指令的一些 符号意义进行一些简单约定:

80c51汇编语言指令

80c51汇编语言指令

80c51汇编语言指令80C51汇编语言是一种常用的低级程序设计语言,广泛应用于嵌入式系统中。

它是基于Intel 8051系列单片机的指令集架构,具有高效、灵活、可靠的特点。

本文将介绍80C51汇编语言的一些常用指令。

一、MOV指令MOV指令是80C51汇编语言中最基本、最常用的指令之一,用于将数据从一个寄存器或内存位置复制到另一个寄存器或内存位置。

例如,MOV A, #25H表示将立即数25H复制到A寄存器中。

二、ADD指令ADD指令用于执行两个操作数的相加运算,并将结果存储在目标操作数中。

例如,ADD A, R0表示将A寄存器和R0寄存器中的数据相加,并将结果存储在A寄存器中。

三、SUBB指令SUBB指令用于执行两个操作数的减法运算,并将结果存储在目标操作数中。

与ADD指令不同的是,SUBB指令会考虑进位位的值。

例如,SUBB A, R1表示将A寄存器中的数据减去R1寄存器中的数据,并将结果存储在A寄存器中。

四、MUL指令MUL指令用于执行两个操作数的乘法运算,并将结果存储在累加器A和可选的乘法寄存器B中。

例如,MUL AB表示将累加器A和B 中的数据相乘,并将结果存储在A和B中。

五、DIV指令DIV指令用于执行两个操作数的除法运算,并将结果存储在累加器A和可选的余数寄存器B中。

例如,DIV AB表示将累加器A和B 中的数据相除,并将商存储在A中,余数存储在B中。

六、JC、JNC指令JC指令用于在条件跳转时执行跳转操作,如果进位标志位(C)为1,则执行跳转。

JNC指令则相反,只有当进位标志位为0时才执行跳转。

七、JZ、JNZ指令JZ指令用于在条件跳转时执行跳转操作,如果零标志位(Z)为1,则执行跳转。

JNZ指令则相反,只有当零标志位为0时才执行跳转。

八、CJNE指令CJNE指令用于在条件跳转时执行跳转操作,它比较两个操作数的值,并根据比较结果来确定是否执行跳转。

如果两个操作数相等,则不执行跳转;如果不相等,则执行跳转。

80C51单片机指令系统

80C51单片机指令汇总程序应用举例例1:MOV A, #60H将立即数60H(源操作数)送入累加器A(目的操作数)中;这是一条双字节指令,机器码为“74H 60H”,源操作数的寻址方式为立即寻址。

例2:MOV DPTR, #1808H将16位立即数1808H送入数据指针DPTR中;这是一条三字节指令,机器码是“90H 18H 08H”。

源操作数的寻址方式也使用立即寻址。

例3:MOV A, 40H将片内RAM40H单元中的内容送入累加器A;源操作数为直接寻址,40H为直接地址。

这是一条双字节指令,机器码是“E5H 40H”。

例4:MOV A, 0F0HMOV A, B以上两条指令功能完全相同,都是将寄存器B的内容送到累加器A中,前一条指令中第二个操作数采用B寄存器的单元地址表示;后一条指令中是直接用B寄存器的名称来表示。

但汇编后的机器码是完全一样的,由两个字节组成:“E5H F0H”。

例5:INC R2将当前工作寄存器R2的内容加1;这是一条单字节指令,机器码是“0AH”,指令中的操作数使用寄存器寻址方式。

该指令的机器码表示为0000 1rrr,其中的rrr与工作寄存器的编号有关,如本例中用到了R2,则rrr=010,指令执行时,会根据当前PSW寄存器中RS1、RS0的状态确定当前工作寄存器区,同时再根据机器码中rrr的值,确定所要访问的是哪一个工作寄存器,最后找到这个工作寄存器所在单元,将其中的内容加1。

例6:MOV A, @R0 ; A←((R0))该指令为单字节指令,机器码为“E6H”,指令中源操作数为间接寻址。

假设R0中的内容是3AH,而3AH单元的内容为37H,则指令的功能是,以R0寄存器的内容3AH为单元地址,把该单元中的内容37H送累加器A。

例7:设(32H)=10H,执行指令:MOV R0, #32HMOV A, @R0执行结果是:(R0)=32H,(A)=10H,(32H)=10H。

8051单片机指令

8051单片机指令8051单片机是一种经典的微控制器,使用广泛,特别适用于嵌入式系统开发。

在实际的编程过程中,了解并掌握8051单片机的指令集是非常重要的。

本文将介绍一些常用的8051单片机指令,帮助读者更好地理解和应用这些指令。

一、MOV指令MOV指令是8051单片机中最常用的指令之一,用于将数据从一个寄存器移动到另一个寄存器。

例如,MOV A, B表示将B寄存器的值移动到A寄存器中。

这个指令非常简单直观,容易理解和使用。

二、ADD指令ADD指令用于将两个数相加,并将结果存储到累加器。

例如,ADD A, B表示将A和B寄存器中的值相加,并将结果存储到A寄存器中。

这个指令非常有用,可以实现简单的数学运算。

三、SUB指令SUB指令用于计算两个数的差值,并将结果存储到累加器。

例如,SUB A, B表示将B寄存器的值从A寄存器的值中减去,并将结果存储到A寄存器中。

这个指令也非常常用,可以实现简单的减法运算。

四、MUL指令MUL指令用于计算两个数的乘积,并将结果存储到累加器和扩展寄存器中。

例如,MUL AB表示将A和B寄存器中的值相乘,并将低8位结果存储到累加器A中,将高8位结果存储到扩展寄存器B中。

这个指令非常有用,可以实现简单的乘法运算。

五、DIV指令DIV指令用于计算两个数的商和余数,并将结果存储到累加器和余数寄存器中。

例如,DIV AB表示将A和B寄存器中的值相除,并将商存储到累加器A中,余数存储到余数寄存器B中。

这个指令非常有用,可以实现简单的除法运算。

六、JMP指令JMP指令用于无条件跳转到指定的地址。

例如,JMP 2000H表示程序跳转到2000H地址处执行。

这个指令非常常用,可以实现程序的控制流跳转。

七、JC指令JC指令用于在进位标志位(Carry Flag)为1时跳转到指定的地址。

例如,JC 3000H表示当进位标志位为1时,程序跳转到3000H地址处执行。

这个指令非常有用,可以实现条件判断和分支跳转。

微机原理 单片机 第3章 80C51的指令系统

< > 返回
(2)指令编码字节少。单字节指令有49 条,双字节指令有45条,三字节指令仅 有17条。 (3)位操作指令丰富,这使得80C51单 片机的控制功能方便灵活。
<
>
返回
三、指令编码格式
[标号]: 操作码 [目的操作数] [,源操作数] [;注释]
标号:表示指令的符号地址,可作为转移的目 标地址。 操作码:用来规定该指令要执行的操作性质, 如MOV,ADD,ORL,LJMP等,操作码通常可用1个 字节表示。 操作数:表示在执行过程中所完成的操作对象, 根据指令功能,可有0、1、2、3个操作数,用12个字节表示。 注释:方便用户阅读。
< > 返回
二、指令分类
80C51单片机系统共有111条指令,按指令 功能分为: ♦数据传送(28条) ♦算术运算(24条) ♦逻辑运算(25条) ♦控制转移(17条) ♦位操作指令(17条) 其指令系统的特点是: (1)执行时间短。单机器周期指令有64条,双 机器周期指令有45条,而四机器周期指令仅有 乘、除法2条。当主频为12MHz时,典型指令执 行时间为1us。
+5V C3 K R1 RST
89C51
相应程序:MOV P1,#00H;灯亮
ACALL delay ;延时 MOV P1,#01H;灯灭 ACALL delay
学习指导和要求
• 理解和掌握指令的 三种编码格式; • 熟练掌握七种寻址 方式; • 熟记各种类型的指 令格式及功能,并 能编写简单程序。
80C51的机器指令按编码的字节数可分为 如下三种指令编码格式:
1、单字节指令(49条)
7 0
opcode 7 opcode 3 2 reg 0 0 0 0 0 1 1 1 1

单片机的指令系统

80C51单片机的指令系统具有较强的控制操作类指令,容易实现“面向控制”的功能;具有 位操作类指令,有较强的布尔变量处理能力。
3、简述80C51指令的分类和格式。
答:80C51单片机的指令系统共有111条指令,按其功能可分为5大类:数据传送类指令(28 条)、算术运算类指令(24条)、逻辑运算类指令(25条)、控制转移类指令(17条)和布尔 操作(位)类指令(17条)。
BCD码采用4位二进制数编码,并且只采用了其中10个编码,即 0000~1001,分别代表BCD码0~9,而1010~1111为无效码。当两个BCD码 相加结果大于9时,说明已进入无效编码区;当两个BCD码相加结果有进 位时,说明已跳过无效编码区。若结果进入或跳过无效编码区,则结果 是错误的,相加结果均比正确结果小6(差6个无效编码)。
指令的表示方法称之为“指令格式”,其内容包括指令的长度和指令内部信息的安排等。 在80C51系列的指令系统中,有单字节、双字节和三字节等不同长度的指令。
单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。 双字节指令:包括两个字节,其中一个字节为操作码,另一个字节是操作数。 三字节指令:操作码占一个字节,操作数占两个字节。其中操作数既可能是数据,也可能 是地址。
例如:
INC R7
;R7的内容为操作数,加1后再送回R7
(4)寄存器间接寻址。在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才
是操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址
方式中,寄存器中存放的则是操作数的地址。
寄存器间接寻址须以寄存器符号名称的形式表示,为了区别寄存器寻址和寄存器间接寻
寄存器间接寻址须以寄存器符号名称的形式表示为了区别寄存器寻址和寄存器间接寻址在寄存器间接寻址中应在寄存器的名称前面加前缀
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机原理与C语言程序设计
29
2.1 数据传送指令(29条)
——16位数据传送指令(1条)
MOV DPTR,#data16
——外部数据传送指令(4条)
MOVX
<目的操作数>,<源操作数>
A MOVX
A
@DPTR , @DPTR
@Ri @Ri
2013-7-30
单片机原理与C语言程序设计
30
——交换和查表类指令(9条)
SWAP A
2013-7-30 单片机原理与C语言程序设计 31
2.2算术运算类指令(24条)
——加法指令(8条) Rn ADD A , direct @Ri ——减法指令(4条) #data ADDC A , Rn direct @Ri #data
Rn ADDC A , B (A+B+CY→A )
3A
32 2A 22 1A 12 0A 02
39
31 29 21 19 11 09 01
38
30 28 20 18 10 08 00 25
单片机原理与C语言程序设计
立即数寻址 直接寻址
SETB 3DH
寄存器寻址
寄存器间接寻址 变址寻址 相对寻址 位寻址
28H 0 27H 0 0 1 0 0 0 0 0
2013-7-30
单片机原理与C语言程序设计
28
2.1 数据传送指令(29条)
——8位数据传送指令(15条) MOV <目的操作数>,<源操作数> A Rn MOV A Rn
目的地址
A
源地址
数 据
20H
direct1 , direct2
@Ri @Ri #data
MOV A,#20H
2013-7-30
寻址比较
① ② ③ ④
直接将20H这个数送P1口 地址在寄存器R0里面 地址是寄存器R0 地址是内存20H
对!
错!
2013-7-30 单片机原理与C语言程序设计 20
对!
MOV P1,R0 MOV P1,@R0 MOV P1,20H MOV P1,#20H
寻址比较
错!
① ② ③ ④ 直接将20H这个数送P1口 地址在寄存器R0里 地址是寄存器R0 地址是内存20H
2013-7-30 单片机原理与C语言程序设计
直接给出地址 20H——直接寻址
注:寻址是寻操作数的“地 操作数 址”! 内部RAM
目的地 或SFR区
20H
XXH
20H
15
目的地
立即数寻址 直接寻址
R0-R7
寄存器寻址
寄存器间接寻址 变址寻址 相对寻址 位寻址
你能说出为什么 叫寄存器寻址吗?
目的地
A B DPTR
操作数
寄存器
XXH
MOV P1, A
单片机原理与C语言程序设计
2013-7-30
16
你能说出1号箱 立即数寻址 子和2号箱子分 别对应内存中哪 直接寻址 一部分吗?
目的地
寄存器寻址
寄存器间接寻址
内部RAM
变址寻址 相对寻址 位寻址
目的地
3AH
65H
操作数
R0
寄存器
R1 DPTR
3AH
寄 存 器 间 接 寻 址 寄 存 器
SUBB A ,
direct @Ri #data SUBB A , B (A – B – CY→A )
2013-7-30
单片机原理与C语言程序设计
32
——BCD码调整指令(1条)
DA A 注意:DA A指令只能跟在ADD或ADDC加法指令后,不适用于减法指令。
十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 二进制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 BCD码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101
控制转移类: 操作码 操作数1 ,操作数2 ,转移目的地址
2013-7-30
单片机原理与C语言程序设计
8
常用符号说明
Rn :当前被选中的工作寄存器, R0~R7,共8个 Ri :当前选定的工作寄存器中能作为间接 寻址的两个寄存器R0或R1,i=0,1 #data : 8位二进制立即数 #data16 : 16位二进制立即数 direct :8位片内RAM的地址(或SFR), 为字节地址 rel : 带符号的8位相对地址偏移量 (-128~127)
0
三字节指令:
操作码
数据或寻址方式
数据或寻址方式 例如:MOV DPTR,#2010H
指令的格式:
标号: 操作码
操作数或操作数地址
;注释
2013-7-30
单片机原理与C语言程序设计
12
一、寻址方式(找信方式)
我的信在他 那!找信去!


你能说出第 二封信的 “地址”吗?
2013-7-30
注:找信是寻找信的“地 址”! 单片机原理与C语言程序设计
#data16 表示16位立即数,即0000H~FFFFH
Rel
Bit (X) ←
2013-7-30
带符号的8位偏移量(-128~+127)
位寻址区的直接寻址位 X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容 将 ← 后面的内容传送到前面去
单片机原理与C语言程序设计 27
2、MCS-51的指令 2.1 2.2 2.3 2.4 2.5 2.6 数据传送指令(29条) 算术运算指令(24条) 逻辑运算指令(24条) 控制转移指令(17条) 位操作指令(17条) 常用伪指令(8条)
2013-7-30
单片机原理与C语言程序设计
3
第三章
指令系统
单字节 双字节 三字节
49条 45条 17条
单周期单片机原理与C语言程序设计
4
一、助记符:(指令助记符) 由助记符组成的指令系统成为汇编语言 助记符与二进制码(机器码)有对照表 共42个助记符,组成111条指令,形成33种功能 数据传送类指令 算术运算类指令 逻辑运算类指令 控制转移类指令 29条 24条 24条 17条
· · ·
21H 20H
· · ·
2013-7-30
单片机原理与C语言程序设计
26
二、指令系统
1、指令描述约定
符 号 Rn Ri #data addr16 addr11 direct 含 表示作为间接寻址的地址指针R0~R1 表示8位立即数,即00H~FFH 表示16位地址,用于64K范围内寻址 表示11位地址,用于2K范围内寻址 8位直接地址,可以是内部RAM区的某一单元或某一专用功能寄存器的地址 义 表示当前选定寄存器组的工作寄存器R0~R7
单片机原理与C语言程序设计 9
2013-7-30
常用符号说明

addr11 : addr16 : bit : @ : / : (x) :
((x))
11位二进制数的目的地址 16位二进制数的目的地址 片内RAM或SFR中的位地址 间址寄存器前缀符号 位操作数的前缀,表示对该位取反 表示寄存器或存储单元x(地址) 中的内容 :表示以寄存器或存储单元x内容作为地 址的存储单元的内容(即表示x不是我 们要的数据,而是我们所要数据的地址) :数据传送方向(左边的内容被右边的内 容代替)
错!
2013-7-30 单片机原理与C语言程序设计
错!
21
内部ROM 内部RAM
立即数寻址 直接寻址
3AH 46H
65H
操作数
寄存器
寄存器寻址
寄存器间接寻址 变址寻址 相对寻址 位寻址
目的地
3AH 46H
A
DPTR PC
基址寄存器 12H
变址寄存器 34H
MOVC A, @A+DPTR
2013-7-30
27H
26H 25H 24H 23H 22H 21H 20H 2013-7-30
3F
37 2F 27 1F 17 0F 07
3E
36 2E 26 1E 16 0E 06
3D
35 2D 25 1D 15 0D 05
3C
34 2C 24 1C 14 0C 04
3B
33 2B 23 1B 13 0B 03
3DH
7E 76 6E 66 5E 56 4E 46 7D 75 6D 65 5D 55 4D 45 7C 74 6C 64 5C 54 4C 44
位寻址地址表
位地址
7B 73 6B 63 5B 53 4B 43 7A 72 6A 62 5A 52 4A 42 79 71 69 61 59 51 49 41 78 70 68 60 58 50 48 40
MOV P1,
2013-7-30
@R0
17
单片机原理与C语言程序设计
寻址比较
错!
MOV P1,R0 MOV P1,@R0 MOV P1,20H MOV P1,#20H ① ② ③ ④
错!
直接将20H这个数送P1口 地址在寄存器R0里 地址是寄存器R0 地址是内存20H
对!
2013-7-30 单片机原理与C语言程序设计
1)字节交换指令(3条)
4)查表指令(2条)
direct XCH A
MOVC A , @A+PC MOVC A , @A+DPTR
相关文档
最新文档