3第三章 MCS-51单片机指令系统与汇编语言《单片机原理与项目实践——基于C语言》课件

合集下载

第3章 MCS-51单片机指令系统和汇编语言程序示例 136页 4.7M

第3章  MCS-51单片机指令系统和汇编语言程序示例 136页 4.7M

(7) bit:表示可位寻址的直接位地址。
(8) (X):表示X单元中的内容。
(9) ((X)):表示以X单元的内容为地址的存储器单元内容,
即(X)作地址,该地址单元的内容用((X))表示。
(10) / 和→符号:“/”表示对该位操作数取反,但不影响该
位的原值。“→”表示操作流程,将箭尾一方的内容送入箭头 所指另一方的单元中去。
第3章 MCS-51单片机指令系统和汇编语言程序示例
3.2.7 位寻址
位寻址是在位操作指令中直接给出位操作数的地址,可以 对片内RAM中的128位和特殊功能寄存器SFR中的93位进行寻 址。
第3章 MCS-51单片机指令系统和汇编语言程序示例
3.3 数据传送类指令
第3章 MCS-51单片机指令系统和汇编语言程序示例
采用机器语言编写的程序称之为目标程序。采用汇编语言编写
的程序称之为源程序。计算机能够直接识别并执行的只有机器 语言。汇编语言程序不能被计算机直接识别并执行,必须经过 一个中间环节把它翻译成机器语言程序,这个中间过程叫做汇 编。汇编有两种方式:机器汇编和手工汇编。机器汇编是用专
门的汇编程序,在计算机上进行翻译;手工汇编是编程员把汇
是用于访问高128个单元的特殊功能寄存器SFR的唯一方法。由于 52子系列的片内RAM有256个单元,其高128个单元与SFR的地址 是重叠的。为了避免混乱,单片机规定:直接寻址的指令不能访 问片内RAM的高128个单元(80H~FFH),若要访问这些单元只能用 寄存器间接寻址指令,而要访问SFR只能用直接寻址指令。另外, 访问SFR可在指令中直接使用该寄存器的名字来代替地址,如 MOV A,80H,可以写成MOV A,P0,因为P0口的地址为80H。 直接寻址访问程序存储器的转移、调用指令中直接给出了程 序存储器的地址,执行这些指令后,程序计数器PC的内容将更换 为指令直接给出的地址,机器将改为访问以所给地址为起始地址

MCS-51系列单片机的指令系统和汇编语言程序

MCS-51系列单片机的指令系统和汇编语言程序

3·1 汇编指令第3 章MCS 一51 系列单片机的指令系统和汇编语言程序3·1·1 请说明机器语言、汇编语言、高级语言三者的主要区分,进一步说明为什么这三种语言缺一不行。

3·1·2 请总结:(1)汇编语言程序的优缺点和适用场合。

(2)学习微机原理课程时,为什么肯定要学汇编语言程序?3·1·3MCS 一51 系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。

3·1·4 要访问片内RAM,可有哪几种寻址方式?3·1·5 要访问片外RAM,有哪几种寻址方式?3·1·6 要访问ROM,又有哪几种寻址方式?3·1·7 试按寻址方式对MCS 一51 系列单片机的各指令重进展归类(一般依据源操作数寻址方式归类,程序转移类指令例外)。

3·1·8 试分别针对51 子系列与52 子系列,说明MOV A,direct 指令与MOV A,@Rj 指令的访问范围。

3·1·9 传送类指令中哪几个小类是访问RAM 的?哪几个小类是访问ROM 的?为什么访问ROM 的指令那么少?CPU 访问ROM 多不多?什么时候需要访问ROM?3·1·10 试绘图示明MCS 一51 系列单片机数据传送类指令可满足的各种传送关系。

3·1·11 请选用指令,分别到达以下操作: (1)将累加器内容送工作存放器R6.(2)将累加器内容送片内RAM 的7BH 单元。

(3)将累加器内容送片外RAM 的7BH 单元。

(4)将累加器内容送片外RAM 的007BH 单元。

(5)将ROM007BH 单元内容送累加器。

3·1·12 区分以下指令的不同功能:(l)MOV A,#24H 与MOV A.24H(2)MOV A,R0 与MOV A,@R0(3)MOV A,@R0 与MOVX A,@R03·1·13 设片内RAM 30H 单元的内容为40H;片内RAM 40H 单元的内容为l0H;片内RAM l0H 单元的内容为00H;(Pl)=0CAH。

第3章 MCS-51单片机指令系统和汇编语言程序示例

第3章  MCS-51单片机指令系统和汇编语言程序示例

②当访问片外RAM时, 可使用R0、 R1(外部RAM的 低256单元)及 DPTR(外部RAM的64KB单元)作为 地址指针。
例如: MOVX A,@DPTR
4. 直接寻址
在指令中直接给出操作数的地址,即指令 的操作数部分直接是操作数的地址。 例如指令: MOV A,40H 在MCS -51 单片机指令系统中, 直接寻址方 式中可以访问 2 种存储器空间: (1) 内部数据存储器的低 128 个字节单元 (00H~7FH)。 (2) 特殊功能寄存器。除了以单元地址的形式外, 还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。
使用最频繁的一类指令,共29条。 为便于理解记忆指令,对数据传送类指令再 作如下分类:
8位(15条) 一般传送指令 访问片内数据 存储器指令 特殊传送指令 访问片外数据存 储器指令(4条) 数据交换(5条) 16位(1条) 堆栈操作(2条)
访问数据存 储器指令
数据传送 类指令 访问程序存储 器指令(2条)
有相当深入的了解。
(2) 助记符指令和机器指令一一对应,用汇编语言编 写的程序效率高,占用存储空间小,运行速度快, 用汇编语言能编写出最优化的程序。
编语言和机器语言都脱离不开具体机器的硬件, 均是面向“机器”的语言,缺乏通用性。
3.高级语言
不受具体机器的限制,使用了许多数学公式和数学 计算上的习惯用语,非常擅长于科学计算。常用的如 BASIC、FORTRAN以及C语言等。 高级语言优点:通用性强,直观、易懂、易学, 可读性好。 对于程序的空间和时间要求很高的场合,汇编语 言仍是必不可缺的。
R0~R7(n=0~7)。
(2)Ri:表示当前工作寄存器区中可作间接寻址寄

第3章-MCS-51系列单片机的指令系统和汇编语言程序范文

第3章-MCS-51系列单片机的指令系统和汇编语言程序范文

第3章MCS一51系列单片机的指令系统和汇编语言程序3·1汇编指令3·1·1请阐明机器语言、汇编语言、高级语言三者的主要区别,进一步说明为什么这三种语言缺一不可。

3·1·2请总结:(1)汇编语言程序的优缺点和适用场合。

(2)学习微机原理课程时,为什么一定要学汇编语言程序?3·1·3MCS一51系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。

3·1·4要访问片内RAM,可有哪几种寻址方式?3·1·5要访问片外RAM,有哪几种寻址方式?3·1·6要访问ROM,又有哪几种寻址方式?3·1·7试按寻址方式对MCS一51系列单片机的各指令重新进行归类(一般根据源操作数寻址方式归类,程序转移类指令例外)。

3·1·8试分别针对51子系列与52子系列,说明MOV A,direct指令与MOV A,@Rj 指令的访问范围。

3·1·9传送类指令中哪几个小类是访问RAM的?哪几个小类是访问ROM的?为什么访问ROM的指令那么少?CPU访问ROM多不多?什么时候需要访问ROM?3·1·10试绘图示明MCS一51系列单片机数据传送类指令可满足的各种传送关系。

3·1·11请选用指令,分别达到下列操作:(1)将累加器内容送工作寄存器R6.(2)将累加器内容送片内RAM的7BH单元。

(3)将累加器内容送片外RAM的7BH单元。

(4)将累加器内容送片外RAM的007BH单元。

(5)将ROM007BH单元内容送累加器。

3·1·12 区分下列指令的不同功能:(l)MOV A,#24H 与MOV A.24H(2)MOV A,R0与MOV A,@R0(3)MOV A,@R0与MOVX A,@R03·1·13设片内RAM 30H单元的内容为40H;片内RAM 40H单元的内容为l0H;片内RAM l0H单元的内容为00H;(Pl)=0CAH。

3第三章 MCS-51单片机指令系统与汇编语言《单片机原理与项目实践——基于C语言》课件

3第三章 MCS-51单片机指令系统与汇编语言《单片机原理与项目实践——基于C语言》课件

类型
助记符格式
CLR A
清零
CLR C CLR bit RL A RLC A
循环移位 RR A RRC A
执行的操作 A←0
C←0 bit←0 A左移一位 A带进位左移一位
A右移一位 A带进位右移一位
指令说明 累加器清零指 令 位清零指令
循环左移指令 带进位循环左 移指令 循环右移指令 带进位循环右 移指令
类型 片内RAM传送
助记符格式 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct MOV @Ri,#data MOV DPTR,#data16
指令说明 不带进位加法指令
带进位加法指令
带借位减法指令
加1指令
类型 减1 乘法 除法 调整
助记符格式 执行的操作 指令说明
DEC A
A←A-1
减1指令
DEC Rn Rn←Rn-1
DEC @Ri (Ri)←(Ri)-1
DEC direct DPTR←DPTR-
1
MUL AB DIV AB
BA←A×B高位 乘法指令 存B,低位存A A←A/B(商), 除法指令 B←余数
以@DPTR为目 的操作数的传送
类型 ROM传送 堆栈指令
数据交换
助记符格式 MOVC A,@A+PC MOVC A,@A+DPTR
PUSH direct

单片机原理及应用03 第3章 MCS-51单片机指令系统与汇编语言程序设计

单片机原理及应用03 第3章  MCS-51单片机指令系统与汇编语言程序设计
伪指令主要用于指定源程序存放的起始地址、定义符号、 指定暂存数据的存储区以及将数据存入存储器、结束汇编等。
3.1.2 汇编语言指令格式与伪指令
1.常用单位与术语
位(bit),字节(Byte),字(Word)。
2.汇编语言指令格式
指令的表示方式称为指令格式,它规定了指令的长度和内部 信息的安排。
3.伪指令
学习目标• • •
掌握MCS-51单片机指令的基本格式和寻址方式; 掌握MCS-51单片机的指令系统; 掌握汇编语言基本程序结构及编写方法; 理解熟悉汇编语言程序设计的基本思想、基本方法 和调试方法。
知识结构• • •
目录 CONTENTS
3.1 概述 3.2 MCS-51单片机的寻址方式 3.3 MCS-51单片机的指令系统 3.4 汇编语言程序设计基础 3.5 汇编语言程序设计方法 3.6 实验与实训
; LG与10H等值
DE EQU 30H
; DE与30H等值
MOV A, LG
; 将10H中的内容送入A中
MOV R1,DE
; 将30H中的内容送入R1中
(4)定义字节伪指令DB
格式:[标号:] DB x1, x2,…, xn
功能:通知汇编程序从当前程序存储器地址开始,将DB后面 的数据存入存储单元中,即把x1, x2,…, xn存入从标号开始的连续 单元中。xi可以是8位数据、ASCII码、表达式,也可以是括在单引 号内的字符串。两个数据之间用逗号“,”分隔。长度不应超过80 个字符。
(3)赋值伪指令EQU
格式:字符名称x EQU 赋值项n
功能:给字符名称x赋予一个特定的值n,赋值后,其值在整
个程序中有效。赋值项n可以是常数、地址、标号或表达式。在使

3 MCS-51单片机的汇编语言指令系统

3 MCS-51单片机的汇编语言指令系统

指令: 指令:SJMP rel
3.2.7 位寻址方式 位处理功能, 位处理功能,可以对数据位进行操作 如:MOV C,3AH , 把3AH位的状态送进位位 位的状态送进位位C 位的状态送进位位 寻址范围: 寻址范围: (1)内部 )内部RAM中的位寻址区 中的位寻址区 单元地址为20H~2FH,共16个单元 位,位地址 , 个单元128位 单元地址为 个单元 是00H~7FH (2)专用寄存器的可寻址位 ) 可供寻址的专用寄存器共有11个 实有寻址位 位 可供寻址的专用寄存器共有 个,实有寻址位83位
3.3.1 数据传送类指令(29条) 数据传送类指令( 条 1. 普通传送指令 MOV <目的操作数 ,<源操作数 目的操作数> 源操作数> 目的操作数 源操作数 源操作数:累加器A、通用寄存器Rn、 direct、 源操作数:累加器A、通用寄存器Rn、直接地址 direct、 间址寄存器和立即数
3.3 MCS-51单片机指令系统 单片机指令系统
指令111条 分为五大类: 指令 条,分为五大类: 数据传送类指令( ) 数据传送类指令(29)条 算术运算类指令( 条 算术运算类指令(24条) 逻辑运算及移位类指令( 条 逻辑运算及移位类指令(24条) 控制转移类指令( 条 控制转移类指令(17条) 位操作类指令( 条 位操作类指令(17条)
(4)以寄存器间接寻址为目的操作数的指令(3条) )以寄存器间接寻址为目的操作数的指令( 条 MOV @Ri , #data ;( )←data ;(Ri) MOV @Ri , direct ;( )←(direct) ;(Ri) ( ) MOV @Ri , A ;(Ri) ( ) ;( )←(A)
第3章 MCS-51单片机的汇编语言指令系统 章 单片机的汇编语言指令系统

3.MCS-51单片机指令系统及汇编语言程序设计

3.MCS-51单片机指令系统及汇编语言程序设计

ROM、内部RAM SFR XXH
14
例:MOV A,3AH
程序存储器 内部RAM … …
PC
PC+1
11100101 操作码 00111010 直接地址
3AH
39H
100111111
A 10011111
15

3.寄存器寻址
定义:操作数存放在MCS-51内部的某个工作寄存器Rn(R0~R7) 或部分专用寄存器中,这种寻址方式称为寄存器寻址。 特点:由指令指出某一个寄存器的内容作为操作数。存放操作 数的寄存器在指令代码中不占据单独的一个字节,而是嵌入 (隐含)到操作码字节中。寻址范围:四组通用寄存器组Rn (R0~R7)、部分专用寄存器( A, B, DPTR, Cy )。
1000H+30H
PC DPTR
基址寄存器 1000H
变址寄存器 30H 65H
A
20
特点:指令操作码中隐含作为基址寄存器用的DPTR(或 PC )和作为变址用的累加器A。在执行变址寻址指令时, MCS-51单片机先把基地址( DPTR或PC 的内容)和地址偏 移量(A的内容)相加,以形成操作数地址,再由操作数地 址找到操作数,并完成相应的操作。变址寻址方式是单字 节指令。
其中:00H是片内RAM中20H地址单元的第0位。
24
(2)字节地址加位序号的形式。如:
MOV 20H.0, C ; (20H.0)←(Cy) 其中:20H.0是片内RAM中20H地址单元的第0位。
第3章 MCS-51单片机指令系统 与汇编语言程序设计
主要内容: 介绍 MCS-51单片机的寻址方式、指令系统、 基本程序结构及汇编语言的开发和调试。重点在 于寻址方式、各种指令的应用、程序设计的规范、 程序设计的思想及典型程序的理解和掌握。难点 在于控制转移、位操作指令的理解及各种指令的 灵活应用,以及程序设计的基本方法和针对具体 的硬件设计出最合理的软件。

第3章 MCS-51型单片机指令系统和汇编语言程序设计

第3章 MCS-51型单片机指令系统和汇编语言程序设计
它分为加、减、乘、除、加 1、减 1 及十进制调整指令。 3.逻辑运算类指令 24 条 它分为逻辑“与”、“或”、“异或”、“非”及移位指令。
4.位操作类指令 12 条
它分为位传送、置位、清零及位逻辑指令。 5.控制转移类指令 22 条
它分为无条件转移、条件转移、比较转移、循环转移及子程序调用和返回指令。
表 3-1 寻址方式与相应的存储器空间
存储器空间 程序存储器 ROM 片内 RAM 低 128 字节、专用寄存器 SFR 和片内 RAM 可位寻址的单元 20H~2FH 工作寄存器 R0~R7、A、B、Cy、DPTR、A、B 片内 RAM 低 128 字节(@R0、@R1、SP)、片外 RAM(@R0、@R1、@DPTR) 程序存储器(@A+PC、@A+DPTR) 程序存储器 256 字节范围(PC+偏移量) 片内 RAM 20H~2FH 字节地址中的所有位和 SFR 中字节地址能被 8 整除单元的位
MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data
;A←Rn ;A←(direct) ;A←(Ri) ;A←data
【例 3-1】 指出下列各条指令的含义。 (1) MOV A,R0 ;将寄存器 R0 中的数据传送至 A 中,即完成 A←R0。R0 中的 ;内容不变 (2) MOV A,30H ;将直接地址 30H 单元中的数据传送至 A 中,即完成 A←(30H) ;若(30H)=37H,则执行指令 MOV A,30H 后,A=37H (3) MOV A,@R1 ;将 R1 中的数据作为地址,将这个地址中的数据送至累加器 A 中 ;若 R1=30H,(30H)=18H,则执行指令 MOV A,@R1 后,A=18H (4) MOV A,#40H ;将立即数 40H 送至累加器 A 中,即执行该指令后,A=40H (2) 以 Rn 为目的字节的传送指令(3 条)。

第3章MCS-51单片机指令系统

第3章MCS-51单片机指令系统

第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。

第三章――MCS51系列单片机的指令系统和汇编语言程序示列PPT课件

第三章――MCS51系列单片机的指令系统和汇编语言程序示列PPT课件
单片微机原理及应用
——丁元杰
第三章——MCS51系列单片机的指令系统和汇编语言程序示列

§3.1 汇编语言与指令系统
指令格式: [标号:] 操作码 [,操作数][;
一、汇编语言程序设计的重要性 学习微机原理课程时通常都相伴着学习汇编语言程序,一方面掌握这一机 型的结构、性能;另一方面掌握它的指令系统以及与指令系统紧密结合的 汇编语言程序。同时学习两者可以达到融会贯通和相互促进的作用。
• 在这种寻址方式中, 寄存器的内容为操作数的地址。 寄存器间接寻 址只能使用寄存器R0、R1 作为地址指针,寻址内部RAM区的数据; 当访问外部RAM时,可使用R0、 R1及DPTR作为地址指针。寄存 器间接寻址符号为“@”, 例如:
§3.2 寻址方式
四、直接寻址 • 直接给出操作数所在的存储器地址,以供寻址取数或存放的寻址方
式称为直接寻址。 • 在这种方式中, 指令的操作数部分直接是操作数的地址。 直接寻址可
用于访问程序存储器,也可用于访问数据存储器 。 • 直接寻址方式中可以访问 3 种存储器空间:
(1) 内部数据存储器的低 128 个字节单元(00H~7FH (2) 特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。 (3) 位地址空间。
§3.1 汇编语言与指令系统
二 、MCS一51系列单片机的指令系统
MCS一51系列单片机的指令系统共有 111条指令。
按 数据传送
照 操
算术操作
作 逻辑操作
性 程序转移 质 分 位操作
按照 指令 周期

单字节指令(49条) 双字节指令(46条) 三字节指令( 16条)
按照 指令 长度

单机器周期指令 64条 双机器周期指令 45条 4个机器周期指令(乘、除)

(单片机原理及应用)第3章MCS-51单片机指令系统

(单片机原理及应用)第3章MCS-51单片机指令系统

3
模块化设计
将相关的函数和功能模块化,最小化每个模块的功能,便于调试程序。
单片机的发展趋势
人工智能
通过运用神经网络、深度学习 等技术,单片机正在向智能控 制方向发展。
虚拟现实
单片机和传感器技术的发展为 虚拟现实提供了广泛的应用场 景,可以用于游戏、医疗、工 业、设计等领域。
智慧城市
单片机和物联网技术将成为智 慧城市的基石,可以提供更加 智能化的交通、能源、环境、 安全等方面的控制。
SWAP
交换累加器A的低4位和高4位。
循环指令
JMP
无条件跳转到目标地址处。
JZ
当累加器A 为0时,跳转到目标地址处。
DJNZ
将某个存储单元的数值减1,若减去1后不为0, 则跳转到目标地址处。
CJNE
比较两个操作数,并进行条件跳转。
分支指令
1
JBC
判断某一位是否为1,若为1,则跳转到指定地址,并将该位清0。
单片机系统设计实例
L ED 跑马灯
通过循环移位操作,使LED 灯组织成流动效果。
温度控制器
通过D S18B20传感器采集温度信号,使用PWM技术控制风扇的转速,实现温度控制。
红外遥控器
通过学习已有遥控器的编码序列,使用红外遥控模块控制其他设备。
单片机应用案例分析
1 汽车电子
单片机广泛应用于发动机控制、安全气囊、中控系统、车载娱乐设备等方面。
EEPROM
只读、只写存储器,用于存储程序和数据。
地址寻址模式
1
直接寻址
用地址直接指向寄存器或存储单元。

寄存器寻址
用寄存器中存放的地址确定要寻找的存储单元。
3
寄存器间接寻址

单片机课件第三章 MCS-51系列单片机的指令系统和汇编语言程序设计.ppt

单片机课件第三章 MCS-51系列单片机的指令系统和汇编语言程序设计.ppt
例: ORG 1000H STORE: DS 08H
从1000H单元开始,保留8个连续单元备用。
7)赋值年伪指令EQU 格式: 名字 EQU 表达式 把表达式表示的值赋给名字。
例:
ABC EQU 8500H DEF EQU ABC+50H
§3-2 寻址方式
指令给出参与运算的数据的方式称为寻址方式。
对!
错!
MOV P1,R0
寻址比较
对!
错!
① 直接将20H这个数送P1口
MOV P1,@R0
② 地址在寄存器R0里面
MOV P1,20H
③ 地址是寄存器R0
MOV P1,#20H
④ 地址是内存20H
错!
错!
错!
错!
寻址比较
MOV P1,R0 MOV P1,@R0 MOV P1,20H MOV P1,#20H
49
48
41
40
39 38
31
30
29
28
21
20
19
18
11
10
09
08
01
00
立即数寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址
SETB 3DH
28H 27H
21H 20H
0 0 10 0 0 0 0 0
···
···
例: 指令地址 机器码 0100H 7402 0102H 83 0103H 00 0104H 00 0105H 56


注:找信是寻找信的“地 址”!
你能说出第 二封信的
“地址”吗?
立即数寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址

第3章_MCS-51单片机指令系统及汇编语言程序设计

第3章_MCS-51单片机指令系统及汇编语言程序设计
实现ROM、RAM、SFR、外部RAM之间的数据复制
(1)立即数#data传送指令
MOV MOV MOV MOV MOV A,#data Rn,#data direct,#data @Ri,#data DPTR,#data16
(2)寄存器Rn传送指令
MOV MOV MOV MOV MOV A,Rn Rn,A direct,Rn Rn,direct Rn,#data
PUSH DPL ;(SP)=0AH,(0AH)=23H ;(SP)=0BH,(0AH)=23H, (0BH)=01H
PUSH
DPH
解:
例 2-2-6 :设初始值为 SP=#30H,A=#20H,R0=#45, DPTR=#0450H,以下程序执行过程中的 SP、A、R0、 DPTR的变化情况如何?
五大类
2、指令中操作数的助记符号
Rn —— 工作寄存器R0 ~ R7 Ri —— 间接寻址寄存器R0、R1 Direct —— 直接地址,包括内部128B RAM单元地址、 26个SFR地址。
#data —— 8位常数
#data 16 —— 16位常数
addr 16 —— 16位目的地址
addr 11 —— 11位目的地址 rel —— 8位带符号的偏移地址 DPTR —— 16位外部数据指针寄存器 bit —— 可直接位寻址的位
;SP=#34H,A=#45, R0=#45,DPTR=#0450H
DPTR,#1000H ;SP=#34H,A=#45, R0=#45,DPTR=#1000H
POP
POP POP
DPL
DPH R0
;SP=#33H,A=#45, R0=#45,DPTR=#1050H
;SP=#32H,A=#45, R0=#45,DPTR=#0450H ;SP=#31H,A=#45, R0=#45,DPTR=#0450H

第3章MCS51系列单片机的指令系统及汇编语言程序设计

第3章MCS51系列单片机的指令系统及汇编语言程序设计

30H
Eg:MOV A,30H
A XX A
结果
A 33H 30H 10H
33H
结果
Eg:MOV A,#10H
10H
XX

Eg.: MOV A,R2 R2 A 33H XX
A
33H
Eg. : MOV A,@R0
R0
55H
地址
55H
取出
A
78H
78H
注意:在使用Ri进行间址寻址时,只能够使用R0和R1。

当前工作寄存器中的某一个,即R0~R7; R0或者R1 单片机内部RAM低128字节(00h~7fh)中的某 个字节地址, 或者是某个专用寄存器的名字; #data 8位(1字节)立即数 #data16 16位(2字节)的立即数 Addr16 16位目的地址,在LJMP和LCALL的指令中采用 Addr11 11位目的地址,只在AJMP和ACALL指令中采用 Rel 相对转移指令中的偏移量。 DPTR 数据指针(由DPH和DPL构成) Bit 内部RAM(包括专用寄存器)中可寻址位的地址或 名字 Rn Ri Direct


有两个操作数,如MOV 相隔;
有三个操作数,如CJNE 也以逗号相隔。 注释
A, #00H指令,操作数之间以逗号
A, #00H, NEXT指令,操作数之间


注释是对指令的解释说明,用以提高程序的可读 性;注释前必须 以“;”和指令分开,注释在每条 指令后都可以设有。
2.1.2

指令中符号的意义说明
2.以通用寄存器Rn为目的的传送指令:( 3条)
MOV Rn,A ; Rn ← (A) MOV Rn,direct ; Rn←(direct) MOV Rn,#data ; Rn← data
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以@DPTR为目 的操作数的传送
类型 ROM传送 堆栈指令
数据交换
助记符格式 MOVC A,@A+PC MOVC A,@A+DPTR
PUSH direct
POP direct
XCH A,Rn XCH A,@Ri XCH A,direct XCH A,@Ri
执行的操作 指令说明 A←(A+PC) 以累加器 A←(A+DPTR) A为目的
执行的操作 若A=0,则PC←PC+rel,否则顺序进行 若A≠0,则PC←PC+rel,否则顺序进行
指令说明 累加器A判断转移指令
CJNE A,#data,rel CJNE A,direct,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel DJNZ direct,rel
C←bit bit←C A←(Ri) A←(DPTR)
(Ri)←A
(DPTR)←A
指令说明 以累加器A为目 的操作数的传送
以Rn为目的操 作数的传送
以direct为目的 操作数的传送
以@Ri为目的操 作数的传递
以DPTR为目的 操作数的传递
位地址传送
以累加器A为目 的操作数的传递
以@Ri为目的的 操作数的传送
JC rel JNC rel
JB bit,rel JNB bit,rel JBC bit,rel
若CY=1,则PC←PC+rel,否则顺序执行 若CY≠1,则PC←PC+rel,否则顺序执行
若bit=1,则PC←PC+rel,否则顺序执行 若bit≠1,则PC←PC+rel,否则顺序执行 若bit=1,则PC←PC+rel,bit←0,否则顺序执行
类型
助记符格式
AJMP addr11
SJMP rel 无条件转移
LJMP addr16
执行的操作 PC11~15←0 PC←PC+rel
PC←addr16
指令说明 绝对转移指令,2KB内绝对寻址
相对转移指令 -80H~7FH短转移 长转移指令,64KB内绝对寻址
JMP @A+DPTR PC←A+DPTR
表>
(8位)数值依次存入
标号开始的存储单元中
[标号:] DW <项或项 把项或项表中的字(16
表>
位)数值依次存入标号
开始的存储单元中
伪指令
格式
功能描述
EQU 标识符 EQU 将数或汇编符号赋给左边的
数或汇编符号 标识符
DATA 标识符 DATA 将内部数据地址赋给左边的
内部数据地址 标识符
BIT 标识符 BIT 位 将位地址赋给左边的标识符
地址
END END
汇编程序源程序段结束
DS [标号:] DS 表达 预留表达式所表示数量的内

存单元
类型 片内RAM传送
助记符格式 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct MOV @Ri,#data MOV DPTR,#data16
执行的操作 A←A+Rn A←A+(Ri) A←A+data A←A+direct A←A+Rn+CY A←A+Ri+CY A←A+data+CY A←A+direct+CY A←A-Rn-CY A←A-(Ri)-CY A←A-data-CY A←A-direct-CY A←A+1 Rn←Rn+1 (Ri)←(Ri)+1 DPTR←DPTR+1 direct←direct+1
A←A∨Rn
ORL A,@Ri
A←A∨(Ri)
ORL A,#data
A←A∨data
ORL A,direct
A←A∨direct
ORL direct,A direct←direct∨A
ORL direct,#data direct←direct∨data
ORL C,bit ORL C,/bit
C←C∨bit C←C∨/bit
若A≠data,则PC←PC+rel,否则顺序进行;若 A<data,则CY=1,否则CY=0
比较条件转移指令
若A≠(direct),则PC←PC+rel,否则顺序进行;若 A<data,则CY=1,否则CY=0
若Rn≠data,则PC←PC+rel,否则顺序进行;若 Rn<direct,则CY=1,否则CY=0
执行的操作
指令说明
A←A∧Rn
字节逻辑与
A←A∧(Ri)
指令,通常
A←A∧data
用于将一字
A←A∧direct
节中的指定
direct←direct∧A 位清零,其
direct←direct∧data 余位不变
C←C∧bit C←C∧/bit
位逻辑与指 令
类型 或
助记符格式
执行的操作
ORL A,Rn
变而其余பைடு நூலகம்取反
XRL direct,A direct←direct A
XRL direct,#data direct←direct data
CPL A CPL C CPL bit SETB C SETB bit
A←/A C←/C bit←/bit C←1 bit←1
累加器取反指令 位取反指令
位置1指令
间接寻址转移,64KB内相对寻址
ACALL addr11
LCALL addr16 子程序调用
及返回 RET RETI
PC←PC+2,(SP)←(SP)+1, 绝对调用指令,调用范围同AJMP
(SP)←PC0~7 (SP)←(SP)+1,(SP)←PC8~ 15,PC←addr11 PC←PC+3,(SP)←SP+1, 长调用指令,调用范围同LJMP
类型
助记符格式
CLR A
清零
CLR C CLR bit RL A RLC A
循环移位 RR A RRC A
执行的操作 A←0
C←0 bit←0 A左移一位 A带进位左移一位
A右移一位 A带进位右移一位
指令说明 累加器清零指 令 位清零指令
循环左移指令 带进位循环左 移指令 循环右移指令 带进位循环右 移指令
指令说明 不带进位加法指令
带进位加法指令
带借位减法指令
加1指令
类型 减1 乘法 除法 调整
助记符格式 执行的操作 指令说明
DEC A
A←A-1
减1指令
DEC Rn Rn←Rn-1
DEC @Ri (Ri)←(Ri)-1
DEC direct DPTR←DPTR-
1
MUL AB DIV AB
BA←A×B高位 乘法指令 存B,低位存A A←A/B(商), 除法指令 B←余数
MOV C,bit MOV bit,C MOVX A,@Ri MOVX A,@DPTR
MOVX @Ri,A
MOVX @DPTR,A
执行的操作 A←Rn A←direct A←(Ri) A←data Rn←A Rn←direct Rn←data direct←A direct←Rn direct←direct direct←(Ri) direct←data (Ri)←A (Ri)←direct (Ri)←data DPTR←data16
操作数的 传送
SP←SP+1 (SP)←direct direct←(SP) (SP)←SP-1
A←→Rn A←→(Ri)
堆栈的入 栈和出栈 操作
数据相互 交换
A←→direct A0~3←→(Ri)0~
3
类型 加法 减法 加1
助记符格式 ADD A,Rn ADD A,@Rn ADD A,#data ADD A,direct ADDC A,Rn ADDC A,@Ri ADDC A,#data ADDC A,direct SUBB A,Rn SUBB A,@Ri SUBB A,#data SUBB A,direct INC A INC Rn INC @Ri INC DPTR INC direct
指令说明
字节逻辑 或指令, 通常用于 将一字节 中的指定 位置1, 其余位不 变
位逻辑或 指令
类型 异或
求反 置位
助记符格式
执行的操作
指令说明
XRL A,Rn
A←A Rn
逻辑异或指令,
XRL A,@Ri
A←A (Ri)
通常用于使一字
XRL A,#data A←A data
节中的指定位不
XRL A,direct A←A direct
(SP)←PC0~7
(SP)←(SP)+1,(SP)←PC8~
15,PC←addr16
PC8~15←(SP),SP←SP-1
子程序返回指令
PC0~7←(SP),SP←SP-1
PC8~15←(SP),SP←SP-1
中断返回指令
PC0~7←(SP),SP←SP-1
类型 条件转移
助记符格式 JZ rel JNZ rel
DA A
若AC=1或A3~ 十进制加法
0>9,则
调整指令
A←(A)+06H;若
CY=1或A7~4>9, 则A←(A)+60H
相关文档
最新文档