MCS-51单片机指令系统及编程举例

合集下载

MCS-51单片机程序设计

MCS-51单片机程序设计

+1
,当X>0
Y= 0
,当X=0
开始
-1
,当X<0
X=0
N
程序流程框图如图4.1所示。 Y
Y←0
X>0 Y
Y←1
N Y←-1
结束
程序如下: ORG
MOV CJNE MOV AJMP MP1: JB MOV LJMP MP2: MOV HERE: SJMP
1000H A,R0 A,#00H,MP1 R1,#00H HERE ACC.7 MP2 R1,#01H HERE R1,#0FFH HERE
1000H DPTR,#2000H DPL DPH DPTR,#3000H R2,DPL R3,DPH
;源数据区首地址 ;源首址暂存堆栈
;目的数据区首地址 ;目的首址暂存寄存器
LOOP:
POP POP MOVX INC PUSH PUSH MOV MOV MOVX MOV MOV DJNZ SJMP
;源数据区首地址 ;目的数据区首地址 ;循环次数 ;取数据 ;数据传送 ;源地址加1 ;目的地址加1 ;循环控制 ;结束
例4.8 外部RAM之间的数据传送程序。
把外部RAM 2000H开始单元中的数据传送到外部RAM 3000H开始的单 元中,数据个数在内部RAM的35H单元中。
START:
ORG MOV PUSH PUSH MOV MOV MOV
K=?
K=0
K=1
转向 0 分支 转向 1 分支
K= n-1
K=n
转向 n-1 分支 转向 n 分支
例4.5 设内部RAM的30H单元有一个数,根据该数值的不同 转移到不同的程序段进行处理,设数值的范围为0~10的 无符号数。

MCS-51单片机应用系统设计

MCS-51单片机应用系统设计

6 通信电路的设计 单片机应用系统一般需要其具有数据通信的能力,通常采用RS-
232C、RS-485、I2C、CAN、工业以太网、红外收发等通信标准。
7 印刷电路板的设计与制作 电路原理图和印制电路板常采用专业设计软件进行设计, 如
Protel、Proteus、OrCAD等。设计印制电路板需要有很多的技巧和经 验。设计好印制电路板图后,应送到专业厂家制作生产,在生产出来 的印制电路板上安装好元件,则完成硬件设计和制作。
3. 程序设计 1 建立数学模型:描述出各输入变量和各输出变量之间 的数 学关系。
2 绘制程序流程图:以简明直观的方式对任务进行描述。 3 程序的编制:选择语言、数据结构、控制算法、存储 空间 分配,系统硬件资源的合理分配与使用,子程序的入/出口 参 数的设置与传递。
4. 软件装配 各程序模块编辑之后,需进行汇编或编译、调试,当满足设
单 片 机 应 用 系 统 设 计 的 一 般 过 程
7.1 MCS-51单片机应用系统设计过程
1. 总体设计 2. 硬件设计 3. 软件设计 4. 可靠性设计 5. 单片机应用系统的调试、测试
7.1.1 总体设计
1.明确设计任务 单片机应用系统的设计是从确定目标任务开始的。 认真进行目标分析,根据应用场合、工作环境、具体用途,
2. 程序设计技术
软件结构实现结构化,各功能程序实行模块化、子程序化。 一般有以下两种设计方法:
1 模块程序设计:优点是单个功能明确的程序模块的设 计和 调试比较方便,容易完成,一个模块可以为多个程序所共 享 。其缺点是各个模块的连接有时有一定难度。
2 自顶向下的程序设计:优点是比较符合于人们的日常 思维 ,设计、调试和连接同时按一个线索进行,程序错误可以 较早的发现。缺点是上一级的程序错误将对整个程序产生影响, 一处修改可能引起对整个程序的全面修改。

MCS-51单片机指令表

MCS-51单片机指令表

MCS-51单片机指令表序号__-__-__年__-__序号__-__附录1MCS-51单片机指令表数据传送类指令指令格式指令功能字节MOVA,RnRn内容传送到A1MOVA,direct 直接地址内容传送到A2MOVA,@Ri间接RAM单元内容送A1MOVA,#data立即数送到A2MOVRn,AA内容送到Rn1MOVRn,direct直接地址内容传送到Rn2MOVRn,#data立即数传送到Rn2MOVdirect,AA传送到直接地址2MOVdirect,RnRn传送到直接地址2MOVdirect2,直接地址传送到直接地址3direct1MOVdirect,@Ri间接RAM内容传送到直接地址2MOVdirect,#data立即数传送到直接地址3MOV@Ri,AA内容送间接RAM单元1MOV@Ri,direct直接地址传送到间接__@Ri,#data立即数传送到间接__CA,@A+DPTR代码字节送A(DPTR为基址)1MOVCA,@A+PC代码字节送A(PC为基址)1MOVXA,@Ri外部RAM(8地址)内容传送到A1MOVXA,@DPTR外部RAM内容(16地址)传送到A1__,#data1616位常数加载到数据指针1MOVX@Ri,AA内容传送到外部RAM(8地址)1MOVX@DPTR,AA内容传送到外部RAM(16地址)1PUSHdirect直接地址压入堆栈2POPdirect直接地址弹出堆栈2XCHA,RnRn内容和A交换1XCHA,direct直接地址和A交换2XCHA,@Ri间接RAM内容A交换1XCHDA,@Ri间接RAM内容和A交换低4位字1节算术运算类指令指令格式指令功能字节INCAA加11INCRnRn加11INCdirect直接地址加12INC@Ri间接RAM加11__数据指针加11DECAA减11DECRnRn减11DECdirect直接地址减12周期__-__-__-__1111周期__-____-__年__序号__-__-__年__-__DEC@Ri__DDA,RnADDA,directADDA,@RiADDA,#dataADDCA,RnADDCA,di rectADDCA,@RiADDCA,#dataSUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#d ata间接RAM减1A和BRn相乘A除以BRnA十进制调整Rn与A求和直接地址与A求和间接RAM与A求和立即数与A求和Rn与A求和(带进位)直接地址与A求和(带进位)间接RAM与A求和(带进位)立即数与A 求和(带进位)A减去Rn(带借位)A减去直接地址(带借位)A减去间接RAM(带借位)A减去立即数(带借位)逻辑运算类指令指令格式指令功能ANLA,RnRn“与”到AANLA,direct直接地址“与”到AANLA,@Ri间接RAM“与”到AANLA,#data立即数“与”到AANLdirect,AA“与”到直接地址ANLdirect,#data立即数“与”到直接地址ORLA,RnRn“或”到AORLA,direct直接地址“或”到AORLA,@Ri间接RAM“或”到AORLA,#data 立即数“或”到AORLdirect,AA“或”到直接地址ORLdirect,#data立即数“或”到直接地址XRLA,RnRn“异或”到AXRLA,direct直接地址“异或”到AXRLA,@Ri间接RAM“异或”到AXRLA,#data立即数“异或”到AXRLdirect,AA“异或”到直接地址XRLdirect,#data立即数“异或”到直接地址CLRAA清零CPLAA求反RLAA循环左移RLCA带进位A循环左移RRAA循环右移RRCA带进位A 循环右移SWAPAA高、低4位交换1__-__-__字节__-__-__-__1__周期__-__-__-__1序号__-__-__-__7序号__-__-__-__7指令格式JMP@A+DPTRJZrelJNZrelCJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNE@Ri,#data,relDJNZRn,relDJNZdirect,relNOPACALLadd11LCALLadd16__AJMPadd11LJMPadd16SJMPrel指令格式__bit__TBbit__bitANLC,bitANLC,/bitORLC,bitORLC,/bitMOVC,bitMOVbit,CJCrelJNCrelJBbit,relJNBbit,relJBCbit,rel 伪指令控制转移类指令指令功能相对DPTR的无条件间接转移A为0则转移A为1则转移比较直接地址和A,不相等转移比较立即数和A,不相等转移比较Rn和立即数,不相等转移字节__周期__-__-__2周期__-__-__2比较立即数和间接RAM,不相等转3移Rn减1,不为0则转移2直接地址减1,不为0则转移3空操作,用于短暂延时1绝对调用子程序2长调用子程序3从子程序返回1从中断服务子程序返回1无条件绝对转移2无条件长转移3无条件相对转移2 位操作指令指令功能字节清进位位1清直接寻址位2置位进位位1置位直接寻址位2取反进位位1取反直接寻址位2直接寻址位“与”到进位位2直接寻址位的反码“与”到进位位2直接寻址位“或”到进位位2直接寻址位的反码“或”到进位位2直接寻址位传送到进位位2进位位位传送到直接寻址2如果进位位为1则转移2如果进位位为0则转移2如果直接寻址位为1则转移3如果直接寻址位为0则转移3直接寻址位为1则转移并清除该3位指令中的符号标识__TEND$指明程序的开始位置定义数据表定义16位的地址表RnRi@Ri工作寄存器R0-R7工作寄存器R0和R1间接寻址的8位RAM单元地址(00H-FFH)8位常数16位目标地址,范围64KB11位目标地址,范围2KB8位偏移量,范围-128~+127片内RAM中的可寻址位和SFR的可寻址位直接地址,范围片内RAM单元(00H-7FH)和80H-FFH给一个表达式或一个字符串#data8起名给一个8位的内部RAM起名addr16给一个8位的外部RAM起名addr11给一个可位寻址的位单元起。

mcs51单片机指令集

mcs51单片机指令集

一个单片机所需执行指令的集合即为单片机的指令系统。

单片机使用的机器语言、汇编语言及高级语言,但不管使用是何种语言,最终还是要“翻译”成为机器码,单片机才能执行之。

现在有很多半导体厂商都推出了自己的单片机,单片机种类繁多,品种数不胜数,值得注意的是不同的单片机它们的指令系统不一定相同,或不完全相同。

但不管是使用机器语言、汇编语言还是高级语言都是使用指令编写程序的。

所谓机器语言即指令的二进制编码,而汇编语言则是指令的表示符号。

在指令的表达式上也不会直接使用二进制机器码,最常用的是十六进制的形式。

但单片机并不能直接执行汇编语言和高级语言,都必须通过汇编器“翻译”成为二进制机器码方能执行,但如果直接使用二进制来编写程序,那将十分不便,也很难记忆和识别,不易编写、难于辨读,极易出错,同时出错了也相当难查找。

所以现在基本上都不会直接使用机器语言来编写单片机的程序。

最好的办法就是使用易于阅读和辨认的指令符号来代替机器码,我们常称这些符号为助记符,用助记符的形式表示的单片机指令就是汇编语言,为便于记忆和阅读,助记符号通常都使用易于理解的英文单词和拼音字母来表示。

每种单片机都有自己独特的指令系统,那么指令系统是开发和生产厂商定义的,如要使用其单片机,用户就必须理解和遵循这些指令标准,要掌握某种(类)单片机,指令系统的学习是必须的。

MCS-51共有111条指令,可分为5类:[1].数据传送类指令(共29条)[2].算数运算类指令(共24条)[3].逻辑运算及移位类指令(共24条)[4].控制转移类指令(共17条)[5].布尔变量操作类指令(共17条)一些特殊符号的意义在介绍指令系统前,我们先了解一些特殊符号的意义,这对今后程序的编写都是相当有用的。

Rn——当前选中的寄存器区的8个工作寄存器R0—R7(n=0-7)。

Ri——当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1)direct—内部数据存储单元的8位地址。

单片机常用指令

单片机常用指令

计算机通过执行程序完成人们指定的任务,程序由一条一条指令构成,能为CPU识别并执行的指令的集合就是该CPU的指令系统。

MCS-51单片机汇编语言指令格式:操作符目的操作数,源操作数指令中的常用符号Rn: n=(0~7),表示当前工作寄存器R0~R7中的一个Ri: i=(0、1),代表R0和R1寄存器中的一个,用作间接寻址寄存器dir : 8 位直接字节地址(片内RAM 和SFR )#data: 8位立即数,即8位常数。

可以为2进制(B)、10进制、16进制(H)、字符(‘ ’)#data16: 表示16位立即数,即16位常数,取值范围为#0000H~#0FFFFHaddr16 : 表示16位地址addr11 : 表示11位地址rel : 相对偏移量(为一字节补码)用于相对转移指令中bit :位地址,在位地址空间中。

$: 表示当前指令的地址。

寻址方式1、立即寻址指令中直接给出操作数的寻址方式。

在51系列单片机的指令系统中,立即数用一个前面加“#“号的8位数(#data,如#30H)或16位数(#data16,如#2052H)表示。

立即寻址中的数,称为立即数。

例如指令:MOV A,#30H2、直接寻址操作数的地址直接出现在指令中。

寻址对象:①内部数据存贮器:使用它的地址。

②特殊功能寄存器:既可使用它的地址,也可以直接使用寄存器名。

3、寄存器寻址操作数存放在寄存器中。

寻址对象:A,B,DPTR,R0~R7 。

B 仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。

A 可以寄存器寻址又可以直接寻址,直接寻址时写作ACC例如:MOV A,R0 ;R0→A,A、R0均为寄存器寻址,机器码E8MUL AB ;A*B→BA,A、B为寄存器寻址,机器码A4MOV B,R0 ;R0→B,R0为寄存器寻址,B为直接寻址机器码88F0,其中F0为B的字节地址(见表1-2)PUSH ACC ;A的内容压入堆栈机器码C0E04、寄存器间址操作数存放在以寄存器内容为地址的单元中。

第3章 MCS-51指令系

第3章  MCS-51指令系
bit——内部数据RAM或部分特殊功能寄存器里的可寻址 位的位地址。 • ——表示对该位操作数取反。 • rel——补码形式的8位偏移量。用于相对转移和所有条件 转移指令中。偏移量相对于当前PC计算,在-128~+127 范围内取值。
单片机技术及应用
3.3.2 数据传送类指令 • 数据传送类指令一般的操作是把源操作数传送到
单片机技术及应用
3.2.5 变址寻址
• 这种寻址方式用于访问程序存储器中的数据表格, 它把基址寄存器(DPTR或PC)和变址寄存器A的内 容作为无符号数相加形成16位的地址,访问程序
存储器中的数据表格。操作时是以某个寄存器的
内容为基础,然后在这个基础上再加上地址偏移
量,形成真正的操作数地址。需要特别指出的是, 用来作为基础的寄存器可以是PC或是DPTR,地 址偏移量存储在累加器A中。例如:
要操作数,因此在使用操作数的过程中就存在一个寻找存储 单元的问题。 MCS-51指令系统的寻址方式有下列几种: • ① 直接寻址。 • ② 立即数寻址。 • ③ 寄存器寻址。 • ④ 寄存器间接寻址。 • ⑤ 变址寻址。 • ⑥ 位寻址。 • ⑦ 相对寻址。
单片机技术及应用
3.2.1 直接寻址 • 在指令中含有操作数的直接地址,该地址指出了参与操作
单片机技术及应用
单片机技术及应用
第3章 MCS-51指令系
单片机技术及应用
教学提示 • 本章重、难点在于理解单片机MCS-51指令系统
的寻址方式,以及数据传送类指令、算术运算类 指令、逻辑操作类指令、位操作指令和控制转移 类指令操作的含义和具体使用方法。 教学目标 • 掌握指令系统的寻址方式。 • 掌握汇编语言指令的格式。 • 掌握汇编语言指令的功能及应用。 • 掌握伪指令的格式及应用。

MCS-51单片机 实验集合(9个实验)

31 32 33
34 35
36
P C0 P C1
P C2 P C3
P C4 P C5
37 38
39 1
2 5
图 附A-1
附录A 实 验
名称 CPU 驱动器 4输入与门 共阳八段LED数码管 晶振 按键 DIP40插座 DIP14插座 DIP8插座 RS232电平转换芯片 并行口扩展芯片 I2C总线EEPROM存储器
该实验电路具有如下一些特点。 1. 结构简单
该电路所需元器件少,费用低,它几乎能完成“单片机原 理与应用”课程所必须的基本实验项目,如:
(1) 复位期间、复位后各引脚状态测试。 (2) I/O端口及禁止ALE引脚脉冲输出实验。 (3) 中断、定时/计数实验。 (4) 定时器T2可编程时钟输出实验。 (5) LED显示及驱动实验。 (6) 键盘接口实验。 (7) 串行通讯实验。
MOV R0,#80H ;将高128字节内部RAM地址80H传到R0中
MOV A,@R0
;将高128字节内部RAM 80单元内容传到A中
MOV 30H,A
;把存放在A中数据传到内部RAM30H单元中
附录A 实 验
3. 外部RAM与内部RAM之间的数据传送
(执行前,先将内部RAM 30H单元置为特定数值,如0AAH, 以便验证)
附录A 实 验
2. 可扩充性强
例如,增加RS232与TTL电平转换器件(如MAX232芯片)后, 即具备RS232电平转换功能,使该电路串行口能与其他串行设备 (如PC机)进行串行通讯。
增加8155并行口扩展芯片后即具备并行口扩展功能和256字 节外部RAM,即可进行外部RAM存取实验。
增加I2C总线EEPROM存储器(如24WC02、24WC32)或日历 时钟芯片PCF8563后,即可进行I2C总线设备存取实验。

MCS-51单片机汇编伪指令的用法解析

MCS-51单片机汇编伪指令的用法解析
1、DS ---预留存储区命令
格式:〔标号:〕DS 表达式值
其功能是从指定地址开始,定义一个存储区,以备源程序使用。

存储区预留的存储单元数由表达式的值决定。

TMP:DS 1
从标号TEP地址处开始保留1个存储单元(字节)。

2、BIT---定义位命令
格式:字符名称BIT 位地址
其功能用于给字符名称定义位地址。

SPK BIT P3.7
经定义后,允许在指令中用SPK代替P3.7。

3、USING指令
USING指令通知汇编器使用8051的哪一个工作寄存器组。

格式:USING 表达式(值必须为0-3,默认值为0。


USING 0
使用第0组工作寄存器。

4、SEGMENT指令
SEGMENT 指令用来声明一个再定位段和一个可选的再定位类型。

格式:再定位段名SEGMENT 段类型〔再定位类型〕
其中,“再定位段名”用于指明所声明的段。

“段类型”用于指定所声明的段将处的存储器地址空间。

可用的段类型有CODE、XDATA、DATA、IDATA和BIT。

STACK_SEG SEGMENT IDATA
DATA_SEG SEGMENT DATA
5、RSEG---再定位段选择指令。

第4章 MCS-51单片机汇编语言程序设计(2)

START:MOV DPTR,#TAB : MOV A,R7 ADD A,R7 MOV R3,A MOVC A,@A+DPTR
XCH A,R3 INC A MOVC A,@A+DPTR MOV DPL,A MOV DPH,R3 CLR A JMP @A+DPTR TAB DW DW A0 A1
…………. DW AN
INC
DPTR
MOVX A,@DPTR SUBB A,R7 JNC XCH BIG1 A,R7
BIG0:INC DPTR
实现程序如下: 实现程序如下
START:CLR C : MOV DPTR,#ST1 , MOVX A,@DPTR , MOV R7,A
MOVX @DPTR,A RET BIG1:MOVX A,@DPTR SJMP BIG0
实现程序如下: 实现程序如下 MOV 30H, 20H ANL 30H,#00011111B MOV A,21H SWAP A RL A ANL A,#11100000B ORL 30H,A
第4章 MCS-51单片机汇编语言程序设计
实现程序如下: 实现程序如下 例 A,@R1 ADDC4.3 做3个字节的 无符号的加法. 无符号的加法.设一个加 MOV R0,#52H , MOV @R0,A 数存放在内部RAM 50H、 RAM的 数存放在内部RAM的50H、 MOV R1,#55H , DEC R0 51H、52H单元中 单元中, 51H、52H单元中,另一 DEC R1 RAM的53H、 MOV A,@R0 个加数存放在RAM 个加数存放在RAM的53H、 MOV A,@R0 54H、55H单元中 单元中, 54H、55H单元中,相加 ADD A,@R1 结果存内部RAM的50H、 结果存内部RAM的50H、 RAM ADDC A,@R1 51H、52H单元 单元, 51H、52H单元,均从高 MOV @R0,A 字节开始存放, 字节开始存放,进位存放 MOV 00H,C 在位寻址区的00H位中。 00H位中 在位寻址区的00H位中。 MOV @R0,A DEC DEC R0 R1

C51指令系统详解(汇编)

汇编语言程序的指令学习要使用单片机,就要学会编写程序。

一台计算机,无论是大型机还是微型机,如果只有硬件,而没有软件(程序),是不能工作的。

单片机也不例外,它必须配合各种各样的软件才能发挥其运算和控制功能。

单片机的程序一般用汇编语言指令来表示。

所谓指令是规定计算机进行某种操作的命令。

一条指令只能完成有限的功能,为使计算机完成一定的或复杂的功能就需要一系列指令。

计算机能够执行的各种指令的集合称为指令系统。

计算机的主要功能也是由指令系统来体现的。

一般来说,一台计算机的指令越丰富,寻址方式越多,且每条指令的执行速度越快,则它的总体功能越强。

5.1 MCS-51单片机的指令系统MCS-51单片机的指令系统使用了7种寻址方式,共有111条指令,如按字节数分类,其中单字节指令49条,双字节指令45条,三字节指令17条;如按运算速度分类,单周期指令占64条,双周期指令占45条,四周期指令占2条。

可见,MCS-51指令系统在占用存储空间方面和运行时间方面效率都比较高。

另外,MCS-51有丰富的位操作指令,这些指令与位操作部件组合在一起,可以把大量的硬件组合逻辑用软件来代替,这样可方便地用于各种逻辑控制。

指令一般由两部分组成,即操作码和操作数。

对于单字节指令有两种情况:一种是操作码、操作数均包含在这一个字节之内;另一种情况是只有操作码无操作数。

对于双字节指令,均为一个字节是操作码,一个字节是操作数;对于三字节指令,一般是一个字节为操作码,二个字节为操作数。

由于计算机只能识别二进制数,所以计算机的指令均由二进制代码组成。

为了阅读和书写方便,常把它写成十六进制形式,通常称这样的指令为机器指令。

现在一般的计算机都有几十甚至几百种指令。

显然,即便用十六进制去书写和记忆也是不容易的。

为了便于记忆和使用,制造厂家对指令系统的每一条指令都给出了助记符。

助记符是根据机器指令不同的功能和操作对象来描述指令的符号。

由于助记符是用英文缩写来描述指令的特征,因此它不但便于记忆,也便于理解和分类。

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

MCS-51单片机指令系统及编程举例
微机原理及应用
对于任何一台计算机,必须有软件(程序)的支持,才能工作。

但是市场上所售的单片机是裸机,在使用之前要现对它编程,将程序固化在芯片内,才能使用。

指令系统是一种CPU所能直接执行的所有命令的集合,CPU的主要功能是由它的指令系统来体现的。

任何计算机语言编写的任何程序,都必须转换为指令系统中相应指令代码的有序集合,CPU才能执行单片机的指令系统是单片机能够识别并执行的所有指令的集合。

3.1指令系统简介每一种CPU都有其独立的指令系统。

MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令,45条双字节指令和17条三字节指令。

MCS-51指令系统的功能十分强大,它把体现单片机的各种功能的寄存器组织在统一的地址空间中,MCS-51指令系统在其存储空间、时间的利用率及工作效率方面都是较高的。

1.指令格式MCS-51指令系统中的每一条指令都有两级指令格式:CPU可直接识别并执行的机器语言指令(机器语言)。

汇编语言指令(简称汇编指令)。

符号说明:见书上.P.34
[标号:]操作码[目的操作数][,源操作数][;注释]
例:LOOP:MOVA,R1;AR1MOVA,R1
INCNOP
A
3.2寻址方式所谓寻址方式就是寻找或获得操作数的
方式。

指令的一个重要组成部分是操作数。

由寻址方式指定参与运算
的操作数或操作数所在单元的地址。

立即寻址:操作数直接出现在指令中,可以是8位,也可是16位。

该方式寻址中的操作数称为立即数,用“#”表示。

例:MOVA,#30H;A30H
执行结果:A=30H例:MOVDPTR,#1000H;DPTR1000H执行结果:DPTR=1000H,注意:只有MOVDPTR,#date16指令的立即数为16位,DPTR分为DPH和DPL,在上述例子中,DPH=10H,DPL=00H
直接寻址:操作数的地址直接出现在指令
中。

这类寻址方式的操作数只能是存放在内部RAM和SFR中。

见.P.23
(1)SFR例:MOVA,P1执行结果:将P1口的内容送到A中。

若P1的内容为78H,执行该指令后,A=78H
(2)内部RAM的低128字节例:MOVA,76H
执行结果:将76H单元的内容送到A中。

若(76H)=3FH,执行该指令后,A=3FH注意:若要表示某个单元的内容,将该单元用括号扩起来,如
(43H)、(76H)、(R0)等。

寄存器寻址:操作数为寄存器的内容。

此处的寄存器指的是工作寄存器
R0~R7
、累加器A、通用寄存器B、数据指针寄存器DPTR和位累加器C(即
进位位C)。

例:MOVA,R0执行结果:将R0的内容送入A中。

若R0的内容(R0)=5AH,则A=5AH
寄存器间接寻址:将指定寄存器中的内容
地址对应的内容送入A中。

若(R0)=46H,(46H)=2FH,则:
A=((R0))=(46H)=2FH
若(76H)=0FH,(R1)=23H,则:(23H)=0FH
变址寻址:以程序指针PC或数据指针DPTR为基址,以累加器A作为变址,两者
内容相加(即基址+偏移量)形成16位地址。

例:
TABLE:
相对寻址:以PC的当前值为基址,与指令中的第二字节给出的偏移量rel(8位有符号数)相加,所得之和为程序的转移地址。

转移范围为
+127~-128字节之间。

例:SJMP08H;双字节指令分析:若PC=2000H为该条指令的地址,则转移目标地址=2000H+02H+08H=200AH
位寻址:对片内RAM的20H~2FH字节地址中
的所有位和部分SFR的位进行寻址。

区分指令中是位地址还是存储器单元地址不太
容易,主要是由另一个操作数来区分。

例:SETBE某0;E某01,位寻址
MOVMOVMOV
C,07H;C(07H),位寻址A,20H;A(20H),直接寻址C,20H;C(20H),位寻址
3.3指令系统指令分类:MCS-51指令系统共有111条指令,分成5大类:(1)数据传送类(2)算术运算类(3)逻辑运算类(4)控制程序转移类(5)布尔变量操作(位操作类)
3.4汇编语言程序设计基础用汇编语言编写的源程序
汇编程序
目标程序
汇编语言是一种采用助记符表示的机器语言,即用助记符号来代表指令的操作码和操作数,用标号或符号代表地址、常数或变量。

而助记符一般都是英文单词的缩写,因此使用方便。

这种用助记符编写的程序称为源程序。

相关文档
最新文档