单片机原理及应用李建忠课件第3章
单片机原理及应用李建忠课件第3章
储器地址,再寻址该单元,读取数据。
*以数据指针寄存器DPTR或PC作为基址寄存器,累加
器A作为变址寄存器(@DPTR+A, @PC+A)。
* 常用于访问程序存储器中的常数表。
第3章 MCS-51单片机指令系统和汇编语言程序示例
图3.2 变址寻址示意图
第3章 MCS-51单片机指令系统和汇编语言程序示例
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 乘、除法指令
(B)←((A)×(B))15~8(A)←((A)×(B))7~0 机器码:A4H MUL AB; CY←0
*
乘数放在累加器A和寄存器B中,乘积16位数中的低8位
存放在A中,高8位存放在B中。 * 若乘积大于FFH(255),OV置1,否则OV清零。 * 乘法指令执行后CY总是零。
则该位与"0" 相异或。还可利用异或指令对某单元自身异或,
以实现清零操作。
第3章 MCS-51单片机指令系统和汇编语言程序示例
* 用移位指令还可以实现算术运算,左移一位相当于原内
容乘以2,右移一位相当于原内容除以2,但这种运算关系只对
某些数成立。
第3章 MCS-51单片机指令系统和汇编语言程序示例
得到并执行,不需要经过别的途径去寻找。 * 在一个数的前面冠以"#"符号作前缀。
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 寄存器寻址 在指令选定的某寄存器中存放或读取操作数,以完成
指令规定的操作。
* ACC,DPTR,AB,Rn,Cy
第3章 MCS-51单片机指令系统和汇编语言程序示例
第3章 MCS-51单片机指令系统和汇编语言程序示例
《单片机原理与应用》(金龙国)电子教案-3145课件
MCS-51单片机的典型芯片是8031、8051、 8751。8051内部有4KB ROM,8751内部有4KB EPROM,8031内部无ROM;除此之外,三者的 内部结构及引脚完全相同。因此,以8051为例, 说明本系列单片机的内部组成及信号引脚。 8051单片机的基本组成请参见图2-1。下面介 绍各部分的基本情况。
图2-2 MCS-51引脚图
8031 8051 8751
2) 信号引脚介绍
表2-1 P3口的第二功能表
2.2 8051的内部存储器
2.2.1 内部数据存储器低128单元
图2- 3 片内RAM的配置
表 2-2 片内RAM位寻址区的位地址
字节地址 D7 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 7FH 77H 6FH 67H 5FH 57H 4FH 47H 3FH 37H 2FH 27H 1FH 17H 0FH 07H D6 7EH 76H 6EH 66H 5EH 56H 4EH 46H 3EH 36H 2EH 26H 1EH 16H 0EH 06H D5 7DH 75H 6DH 65H 5DH 55H 4DH 45H 3DH 35H 2DH 25H 1DH 15H 0DH 05H D4 7CH 74H 6CH 64H 5CH 54H 4CH 44H 3CH 34H 2CH 24H 1CH 14H 0CH 04H 位 地 址 D3 7BH 73H 6BH 63H 5BH 53H 4BH 43H 3BH 33H 2BH 23H 1BH 13H 0BH 03H D2 7AH 72H 6AH 62H 5AH 52H 4AH 42H 3AH 32H 2AH 22H 1AH 12H 0AH 02H D1 79H 71H 69H 61H 59H 51H 49H 41H 39H 31H 29H 21H 19H 11H 09H 01H D0 78H 70H 68H 60H 58H 50H 48H 40H 38H 30H 28H 20H 18H 10H 08H 00H
单片机原理及应用(李肃义)chapter3-文档资料157页
寻 址
方
第三章 MCS-51指令系统及汇编语言程序设计
式
寄存器间接寻址
寄存器间接寻址方式可用于访问内部RAM 或外部RAM。
内容为操作数的地址。
例如 MOV A, Ri ;(i=0或1),其中 (Ri)=40H
指 令
系
统
的
寻
址
方
第三章 MCS-51指令系统及汇编语言程序设计
式
访问外部数据存储器,还可用数据指
设A的原有内容为05H,DPTR的内容为
4000H,该指令执行的结果是把程序存储器 4005H单元的内容传送给累加器A。
指
令
系
统
的
寻
址
方
第三章 MCS-51指令系统及汇编语言程序设计
指
B、DPTR和C位(位处理机的累加器)也可作为寻址的对 象。
被寻址寄存器中的内容就是操作数。
令 系
例如 MOV A,Rn(n=0~7)
统 的
注意:Rn一般指R0~R7;Ri指R0与R1。
寻
址
方
第三章 MCS-51指令系统及汇编语言程序设计
式
例如 MOV A,R7 ;机器码为EFH
该指令功能是把寄存器R7的内容送给累
针DPTR作为间址寄存器。
指
例如 MOVX A,DPTR
令
把数据指针DPTR所指的某一外部存
系
储单元的内容送给累加器A。
统
的
寻
址
方
第三章 MCS-51指令系统及汇编语言程序设计
式
立即寻址
立即寻址是双字节指令。第一个字节是操作
码,第二字节就是操作数。
例如 MOV A,#5AH
单片机原理及运用_第三章答案解析
第三章单片机的汇编语言与程序设计习题1.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?MOV A,59HMOV R0,AMOV A,#00HMOV @R0,AMOV A,#25HMOV 51H,AMOV 52H,#70H解:MOV A,59H ;A=50HMOV R0,A ;RO=50HMOV A,#00H ;A=00HMOV @R0,A ;50H=00HMOV A,#25H ;A=25HMOV 51H,A ;51H=25HMOV 52H,#70H ;52H=70H所以:A=25H R0=50H ;50H=00H 51H=25H2.请选用合适的指令对P0口内容做修改(例如使P0.0~P0.3不变,P0.4~P0.7为0)。
解:MOV A,P0ANL A,0fhMov P0,A3.试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
解:访问外部数据存储器指令有:MOVX @DPTR,A MOVX DPTR,#0100H MOV @DPTR,AMOVX A,@DPTR MOVX DPTR,#0200H MOV A,@DPTRMOVX A,@Ri MOVX A,@R0MOVX @Ri,A MOVX @RI,A访问程序存储器指令有:MOVX A,@A+PCMOVX A,@A+DPTR4.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H,#00HMOV 31H,#0FFH解:PUSH 30H ;61H=24HPUSH 31H ;62=10H SP=62HPOP DPL ;DPL=10HPOP DPH ;DPH=24H SP=60HMOV 30H,#00H ;30H=00HMOV 31H,#0FFH ;31H=0FFH5.设(A)=40H,(R1)=23H,(40H)=05H。
单片机原理及应用(李伟)章 (3)
第 3 章 单片机 C 语言开发基础
• 尽量不要使用过长的标识符,以便于使用和程序理解方 便。
• 自定义的 C51 标识符不能使用 C51 语言保留的关键字, 也不能和用户已使用的函数名或 C51 库函数同名。例如“ char ”是关键字,所以不能作为标识符使用。
第 3 章 单片机 C 语言开发基础
(4 ) float :浮点型,是符合 IEEE 754 标准的单精度浮 点型数据,在十进制中具有 7位有效数字。 float 型数据占用 四个字节( 2 位二进制数)。需要指出的是,对于浮点型数据, 除了有正常数值之外,还可能出现非正常数值。
第 3 章 单片机 C 语言开发基础
(5 ) * :指针型,不同于以上四种基本数据类型,它本身是 一个变量,在这个变量中存放的不是一般的数据而是指向另一 个数据的地址。指针变量也要占据一定的内存单元,在C51 中 指针变量的长度一般为 1~3 个字节。指针变量也具有类型,其 表示方法是在指针符号“ * ”的前面冠以数据类型符号。如 “char*point1 ”表示 point1 是一个字符型的指针变 量;“float*point2 ”表示 point2 是一个浮点型的指针变量。 指针变量的类型表示该指针所指向地址中数据的类型。使用指 针型变量可以方便地对 8051 单片机的各部分物理地址直 接进行操作。
第 3 章 单片机 C 语言开发基础
第 3 章 单片机 C 语言开发基础
3.1 C 语言源程序的结构特点 3.2 标识符和关键字 3.3 数据类型与运算符
任务 3-1 不同数据类型控制 LED 闪烁 任务 3-2 数据运算的 LED 显示 3.4 C 语言的语句 任务 3-3 用 if 语句控制 LED 的亮灭状态 任务 3-4 用 for 语句控制 LED 的循环亮灭状 态
单片机原理与应用第3章课件
相对寻址示意图
注意:在相对寻址方式时,在rel为正数和负数两种不同情况下, 目的地址PC的求法可以用下列不同的公式求:
当rel为正数时, PC目的=PC当前+当前指令字节数+rel
当rel为负数时, PC目的=PC当前+当前指令字节数+rel-100H
在人工汇编时,往往知道PC目的和PC当前,需要求rel,如果 PC目的>PC当前,采用第一个公式;如果PC目的≤PC当前,采用第二个公式。
立即数寻址示意图
3.2.3 寄存器寻址
寄存器寻址(register addressing)方式在指令中指出了参 与运算的操作数所在的寄存器,操作数 存储在寄存器中。寄存器寻址方式中的 寄存器为工作寄存器R0~R7、DPTR、累 加器A、寄存器B(仅在乘除法时)和布尔 累加器C。
例如: MOV A,R0 ;(A)←(R0) 该指令执行的操作是把工作寄存器 R0中的数送到累加器A中,若R0寄存器 单元中的内容是55H,则该指令执行后A 的内容就是55H。
源操作数
机器语言指令格式 (1)单字节指令格式:操作码 【例】汇编语言指令 ADD A,R0 对应的机器语言是:
28 (2)双字节指令格式:操作码 操作数 【例】汇编语言指令 ADD A,#31H 对应的机器语言是:
24 31 (3)三字节指令格式:操作码 第一操作数 第二操作数 【例】汇编语言指令 MOV 30H,#7AH 对应的机器语言是:
3.2.7 位寻址
位寻址就是对内部RAM和特殊功能寄存器的可寻址位的内容进行操 作的寻址方式。这种寻址方式只是对指令指定的1位进行操作,其寻址 方式与直接寻址方式相同。 【例】如果A=74H,则执行指令
SETB ACC.3 后,A=7CH,见下图。
单片机原理及应用电子PPT课件
•RS1 RS0(PSW.4 PSW.3): 工作寄存器组指针,用以选择CPU当前工作 的寄存器组。
32
RS1 RS0与工作寄存器组的对应关系
33
•OV(PSW.2): 溢出标志,当进行算术运算时,如果产生溢出,则由硬件将 OV位置1,否则清“0”。
16
1.3.2 嵌入式计算机系统与通用型计算机的特点 1. 嵌入式系统是面向特定的应用 2. 嵌入式系统是知识集成系统 3. 嵌入式系统的硬、软件必须具有高效率 4. 嵌入式系统和实际应用有机地结合在一起 5. 嵌入式系统的软件固化于内部存储器中 6. 嵌入式系统本身无自举开发能力
17
1.3.3 嵌入式系统的发展趋势 1. 嵌入式系统应用软件的开发需要强大的开发工具和操作系统的支持 2. 联网成为发展的必然趋势 3. 支持小型电子设备实现小尺寸、微功耗和低成本 4. 应能提供精巧的多媒体人机界面
当执行有符号数的加法指令ADD或减法指令SUBB时,当D6位有向D7位的 进位或借位时 D6CY=1时,而D7位没有向CY位的进位或借位D7CY =0时,则 OV=1或D6CY =0,D7CY=1则OV=1所以溢出的逻辑表达式为:
OV= D6CY⊕ D7CY •F1(PSW.1): 用户标志位,同F0。 •P(PSW.0): 奇偶标志位,该位始终跟踪累加器A内容中“1”的奇偶性。当 累加器A内容中有奇数个“1”时,P置1;否则,P置“0”。改变累加器A中内容 的指令均会影响P标志位。
和逻辑运算、移位操作、位操作等功能。ALU的两个操作数,一个由A通过暂存 器2输入,另一个由暂存器1输入,运算结果的状态送PSW。
(3) 程序状态字寄存器PSW PSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。它可以进
精品文档-单片机原理及应用(李建忠)-第3章
第3章 51单片机指令系统和汇编语言程序示例
14
3.2.2 寄存器寻址 在指令选定的某寄存器中存放或取得操作数的方式,称为
寄存器寻址。 例如:MOV A,R0指令中的源操作数是寄存器寻址。该指
令的功能是把工作寄存器R0中的内容传送到累加器A中,如R0中 的内容为30H,则执行该指令后A的内容也为30H。
(2) #data: 表示包含在指令中的8位立即数。 (3) #data16: 表示包含在指令中的16位立即数。
第3章 51单片机指令系统和汇编语言程序示例
10
(4) rel: 以补码形式表示的8位相对偏移量, 范围为128~127, 主要用在相对寻址的指令中。
(5) addr16和addr11: 分别表示16位直接地址和11位直 接地址。
第3章 51单片机指令系统和汇编语言程序示例
4
因此, 学习指令系统时, 既要从编程使用的角度掌握指 令的使用格式及每条指令的功能, 又要掌握每条指令在计算 机内部的微观操作过程(即工作原理), 从而进一步加深对硬 件组成原理的理解。
指令一般有功能、 时间和空间三种属性。 功能属性是 指每条指令都对应一个特定的操作功能; 时间属性是指一条 指令执行所用的时间, 一般用机器周期来表示; 空间属性是 指一条指令在程序存储器中存储时所占用的字节数。
27
图3.3中一条单向箭头线表示一种传送操作,箭头线尾是 源操作数,箭头指向的是目的操作数,箭头线旁的标识符 表示对片内RAM的某种寻址方式。因此,一条单向箭头线对 应一种寻址方式,就有一条“MOV”指令。双向箭头线可以 看做两条单向箭头线。
第3章 51单片机指令系统和汇编语言程序示例
28
从图中可以看出,立即数只能作为源操作数,而不能作 为目的操作数;工作寄存器中的内容只能和直接寻址方式寻址 的片内RAM单元的内容相互传送,不能和其他寻址方式寻址的 单元进行数据传送;累加器A的内容可以和寄存器间接寻址方 式、直接寻址方式寻址的片内RAM单元的内容相互传送;寄存 器间接寻址方式寻址的片内RAM单元的内容可以和直接寻址方 式寻址的另一个RAM单元的内容相互传送;直接寻址方式寻址 的两个不同RAM单元的内容可以相互传送。16位传送指令只有 一条,它是给DPTR置数的指令。根据图3.3可很快推写出本类 的16条指令。表3.1给出了这些指令及相关说明。
最新单片机原理及应用(李建忠)精品课件第三章例题(教材)
例17
将片外RAM首地址为DATA1的一个数据块转送到片内
RAM首地址为DATA2的存储区中。
MOV R0,#DATA1 MOV R1,#DATA1 LOOP: MOVX A,@R0 HERE: JZ HERE MOV @R1,A INC R0 INC R1 SJMP LOOP ;循环取数 ;R0作为外部数据块的地址指针 ;R1作为内部数据块的地址指针 ;取外部RAM数据送入A ;数据为零则终止传送 ;数据传送至内部RAM 单元 ;修改指针,指向下一数据地址
表示的被减数和减数,两数相减的差仍以BCD码的形式存放在
32H单元中。 CLR C MOV A,#9AH SUBB A,31H ADD A,30H DA A MOV 32H,A ;求减数的十进制补码 ;作十进制补码加法 ;进行BCD调整 ;将BCD码的差送存32H单元
例12
(P1)=C5H=11000101B,屏蔽P1口高4位而保留低4位。
例4
设外部RAM(0203H)= FFH,分析以下指令执行后的结果。 ;(DPTR)←0203H ;(A)←((DPTR)) ;(30H)←(A) ;(A)←0FH ;((DPTR))←(A)
MOV DPTR,#0203H MOVX A,@DPTR MOV 30H,A MOV A,#0FH MOVX @DPTR,A
MOV A,#03H PUSH DPH PUSH DPL MOV DPTR,#2000H MOVC A,@A+DPTR POP DPL POP DPH ;(A)←03H ;保护DPTR高8位入栈 ;保护DPTR低8位入栈 ;(DPTR)←2000H ;(A)←(2000H+03H) ;弹出DPTR低8位 ;弹出DPTR高8位
结果为:(DPTR)=0203H,(30H)=FFH,(0203H)=(A)=0FH。
教学课件 单片机原理及应用--李建忠
从物理空间上:片内ROM、片外ROM、片内RAM、 片外RAM。
从功能上:片内外统一的ROM、片内RAM、片外 RAM。
2.4 存 储 器
2.4.1 程序存储器
1.编址与访问 程序计数器PC:用以存放将要执行的指令地址。 可寻址的地址空间为64 KB(0000H~0FFFFH)。
图2.5 程序存储器编址图 (a) 51子系列;(b) 52子系列
2.4.2 数据存储器
1.编址与访问 片内、外数据存储器是两个独立的地址空间,单独编址。
片内数据存储器除RAM块外,还有特殊功能寄存器(SFR)块。 51子系列: RAM有128个字节(00H~7FH)
SFR有128个字节(80H~FFH) 52子系列: RAM有128个字节(00H~0FFH)
SFR有128个字节(80H~0FFH)
C
AC
F0
RS1 RS0 OV
--- P
字节地址D0H
3.布尔处理机
指令系统中的位处理指令集(17条位操作指令),存储器中的位地址空间,程序状 态寄存器PSW中的进位标志CY作为位操作"累加器",构成了MCS-51单片机内的布 尔处理机。
2.3.2 控制部件及振荡器
控制部件包括定时和控制电路、指令寄存器、译码器以及信息传送控制等部件。
1
40
2
39
3
38
4
37
5
36
6
35
7
34
8
33
9 8051 32
10 8751 31
11 8031 30
12
29
13
28
14
27
15
26
16
单片机原理及应用(李桂林)章 (3)
@DPTR 。
第 3 章 单片机指令系统
#data : 8 位立即数,即包含在指令中的 8 位常数, 00H~FFH 。
#data16 : 16 位立即数,即包含在指令中的 16 位常数, 0000H~FFFFH 。
direct : 8 位直接地址,既可以是片内 RAM 的低 128 字 节的单元地址,也可以是 SFR的单元地址或名称(包括 I / O 口 P0 、 P1 、 P2 和 P3 )。
(1 )数据传送类指令( 29 条); (2 )算术运算类指令( 24 条); (3 )逻辑运算类指令( 24 条); (4 )控制转移类指令( 17 条); (5 )位操作类指令( 17 条)。
第 3 章 单片机指令系统
按空间属性划分, MCS 51 指令系统可分为以下三类: (1 )单字节指令( 49 条); (2 )双字节指令( 45 条); (3 )三字节指令( 17 条)。 按时间属性划分, MCS 51 指令系统可分为以下三类: (1 )单机器周期指令( 64 条); (2 )双机器周期指令( 45 条); (3 )四机器周期指令(只有乘、除法 2 条指令)。
第 3 章 单片机指令系统
第 3 章 单片机指令系统
3. 2. 1 立即寻址 在指令中直接给出操作数的寻址方式称为立即寻址。在指
令编码中,操作数紧跟在操作码后面,与操作码一起存放在指令 代码段( ROM )中,这样的操作数称为立即数。采用汇编语言编 写指令时, 把 “ # ”号放在立即数前面 ,以表示该寻址方式 为立即寻址。
第 3 章 单片机指令系统
③ 操作数为指令的操作对象,既可以是参加操作的数据,也 可以是操作数所在的地址。 MCS-51 单片机的指令可以没有 操作数,也可以有 1~3 个操作数。多个操作数之间必须用逗号 “,”分隔,操作数与操作码之间要用空格分隔。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
★ 相对寻址
以当前程序计数器PC值加上指令中给出的偏移量rel,而 构成实际操作数地址。
* 用于访问程序存储器,常出现在相对转移指令中。 * 当前PC值指相对转移指令的存储地址加上该指令的字节 数。
* 偏移量rel是有符号的单字节数,以补码表示,范围是128~+127。转移的地址(目的地址)为: 目的地址=当前PC值+rel = 指令存储地址+指令字节数+rel
3.10 汇编程序设计示例
第3章 MCS-51单片机指令系统和汇编语言程序示例
3.1 MCS-51单片机指令系统概述
★ 指令、指令系统的概念
指令:计算机内部执行的一种操作,提供给用户编程使用的 一种命令。 指令系统:计算机能够执行的全部操作所对应的指令集合。
第3章 MCS-51单片机指令系统和汇编语言程序示例
第3章 MCS-51单片机指令系统和汇编语言程序示例
第3章 MCS-51单片机指令系统 和汇编语言程序示例
3.1 MCS-51单片机指令系统概述 3.2 寻址方式 3.3 数据传送类指令
3.4 算术运算类指令
3.5 逻辑运算及移位指令 3.6 控制转移类指令
3.7 子程序调用与返回指令
3.8 位操作类指令 3.9 汇编程序格式与伪指令
图3.1 寄存器间接寻址示意图
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 直接寻址
指令中直接给出操作数所在的存储器地址供存取数。 * 直接寻址可用于访问片内数据存储器(低128字节)、SFR。
第3章 MCS-51单片机指令系统和汇编语言程序示例 ★ 变址寻址 基址寄存器加变址寄存器两者内容的和作为程序存
第3章 MCS-51单片机指令系统和汇编语言程序示例 * 访问程序存储器的数据传送指令又称作查表指令, 采用基址寄存器加变址寄存器间接寻址方式。 *前一条指令采用DPTR作基址寄存器,数据表格可 以存放在程序存储器64 KB地址范围的任何地方。
*后一条指令以PC作为基址寄存器,查表范围只能
在256个字节范围内。编程时需要进行偏移量的计算, 即MOVC A,@A+PC指令所在地址与表格存放首地址间
DA A ; 若(A)3~0>9或(AC)=1,则(A)3~0←(A)3~0+06H 若(A)7~4>9或(CY)=1,则(A)7~4←(A)7~4+06H
第3章 MCS-51单片机指令系统和汇编语言程序示例 * 若AC=1,CY=1同时发生,或者高4位虽等于9但低4位修正 后有进位,则A应加66H修正。
功能:实现数在片内RAM单元之间、寄存器之间、寄存器与 RAM单元之间的传送。 格式: MOV <目的操作数>,<源操作数>;目的操作数单元←源 操作数(或单元)
第3章 MCS-51单片机指令系统和汇编语言程序示例
图3.3 访问片内RAM的一般传送指令操作关系图
第3章 MCS-51单片机指令系统和汇编语言程序示例
第3章 MCS-51单片机指令系统和汇编语言程序示例 2.除法指令
(A)←(A)÷(B)之商,(B)←(A)÷(B)之余数 (CY)←0,(OV)←0
DIV AB;
机器码:84H
* 被除数放在累加器A,除数放在寄存器B中,商存于累加
器A中,余数存于寄存器B中。 * 进位标志位CY和溢出标志位OV均被清零。 * 若B中的内容为0,OV被置1,CY仍为0。
的距离字节数的计算,并需要一条加法指令进行地址
调整。偏移量计算公式为: 偏移量 = 表首地址-(MOVC指令所在地址+1)
第3章 MCS-51单片机指令系统和汇编语言程序示例
3.4 算术运算类指令
算术操作类指令共24条,包括加法、带进位加法、带
减位减法、加1、减1、乘除及十进制调整指令。
* 算术运算结果影响标志位Cy、AC、OV 、P。
3.6 控制转移类指令
控制转移类指令共17条,分为无条件转移指令、条件
表3.1 访问片内RAM的一般传送指令表
第3章 MCS-51单片机指令系统和汇编语言程序示例
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 片内特殊传送指令
▲ 堆栈操作指令
第3章 MCS-51单片机指令系统和汇编语言程序示例
PUSH direct ; (SP)←(SP)+ 1 修改指针,使其指向栈顶上的一个存数单元
★ 寄存器间接寻址
由指令指出某一寄存器的内容作为操作数地址的寻址方法。 * 寄存器中的内容不是操作数本身,而是操作数的地址,
到该地址单元中才能得到操作数。 * @Ri,@DPTR
* 可寻址内部RAM(@Ri)和外部数据存储器(@Ri,@DPTR)
第3章 MCS-51单片机指令系统和汇编语言程序示例
▲ 数据交换指令
第3章 MCS-51单片机指令系统和汇编语言程序示例 ★ 片外数据存储器数据传送指令 指令助记符 MOVX A,@DPTR MOVX A,@Ri MOVX @DPTR ,A 操作功能注释 ; (A)←((DPTR)) ; (A)←((Ri)) ; ((DPTR))←(A) 机器码(H) E6 E2、E3 F0
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 位寻址
在位操作指令中直接给出位操作数的地址。 * 片内RAM中的128位和特殊功能寄存器SFR中的93位。
第3章 MCS-51单片机指令系统和汇编语言程序示例
3.3 数据传送类指令
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 访问片内数据存储器的一般数据传送指令
第3章 MCS-51单片机指令系统和汇编语言程序示例
表3.2 加减法指令表
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 加、减法指令
图3.4 加减法指令形式结构图 (a) 加减法指令关系图;(b) 加1、减1指令关系图
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 十进制调整指令
((SP))←direct
把直接地址单元的内容压入SP所指单元内
(direct)←((SP)+ 1) 把栈顶的数据弹出到直接寻址单元中去 POP direct ; (SP)←(SP)-1 修改指针,指向新栈顶
* 机器码分别为:C0
direct 和 D0
direct。
第3章 MCS-51单片机指令系统和汇编语言程序示例
第3章 MCS-51单片机指令系统和汇编语言程序示例 * 逻辑“或”指令常用来使字节中某些位置“1”,其它位 保持不变。则欲置位的位用"1"与该位相或,保留不变的位用 "0" 与该位相或。
第3章 MCS-51单片机指令系统和汇编语言程序示例 * 逻辑"异或"指令常用来使字节中某些位进行取反操作, 其它位保持不变。欲某位取反该位与"1"相异或;欲某位保留
则该位与"0" 相异或。还可利用异或指令对某单元自身异或,
以实现清零操作。
第3章 MCS-51单片机指令系统和汇编语言程序示例
* 用移位指令还可以实现算术运算,左移一位相当于原内
容乘以2,右移一位相当于原内容除以2,但这种运算关系只对
某些数成立。
第3章 MCS-51单片机指令系统和汇编语言程序示例
MOVX @Ri,A
; ((Ri))←(A)
F2、F3
* 对片外扩展的数据存储器RAM或I/O口进行数据传送,必须
采用寄存器间接寻址的方法,通过累加器A来完成。
第3章 MCS-51单片机指令系统和汇编语言程序示例 ★ 访问程序存储器的数据传送指令
指令助记符
操作功能注释
机器码(H) 93 83
MOVC A, @A+DPTR ;(A)←((A)+(DPTR)) MOVC A, @A+PC ;(PC)←(PC)+1,(A)←((A)+(PC))
第3章 MCS-51单片机指令系统和汇编语言程序示例
3.5 逻辑运算及移位指令
表3.3 逻辑操作指令表
第3章 MCS-51单片机指令系统和汇编语言程序示例 表3.3 逻辑操作指令表
第3章 MCS-51单片机指令系统和汇编语言程序示例
图3.5 逻辑指令形式结构图
(a) 与加、减法指令寻址方式相同的逻辑指令; (b) 与加、减法指令寻址方式不同的逻辑指令
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 立即寻址
★ 寄存器寻址
★ 寄存器间接寻址
★ 直接寻址
★ 变址寻址
★ 相对寻址
★ 位寻址
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 立即寻址 操作数直接出现在指令中,紧跟在操作码的后面,作为
指令的一部分与操作码一起存放在程序存储器中,可以立即
第3章 MCS-51单片机指令系统和汇编语言程序示例 ■ 描述指令的一些符号的约定意义的说明: ▲ Ri和Rn:表示当前工作寄存器区中的工作寄存器,i
取0或1,表示R0或R1。n取0~7,表示R0~R7。 ▲ #data:表示包含在பைடு நூலகம்令中的8位立即数。
▲ #data16:表示包含在指令中的16位立即数。 ▲ rel:以补码形式表示的8位相对偏移量,范围为-
得到并执行,不需要经过别的途径去寻找。 * 在一个数的前面冠以"#"符号作前缀。
第3章 MCS-51单片机指令系统和汇编语言程序示例
★ 寄存器寻址 在指令选定的某寄存器中存放或读取操作数,以完成
指令规定的操作。
* ACC,DPTR,AB,Rn,Cy
第3章 MCS-51单片机指令系统和汇编语言程序示例
第3章 MCS-51单片机指令系统和汇编语言程序示例