03第三章 MCS-51的指令系统A

合集下载

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

第三章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口的高四位保持不变。

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

第三章MCS51系列单片机指令系统及汇编语言程序设计
AJMP addr11 绝对转移指令为2K地址范围内的转移指令,对转移目的地址的要求与 ACALL指令中对子程序入口地址的要求相同。 【3】短转移指令
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章 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指令系统
的寻址方式,以及数据传送类指令、算术运算类 指令、逻辑操作类指令、位操作指令和控制转移 类指令操作的含义和具体使用方法。 教学目标 • 掌握指令系统的寻址方式。 • 掌握汇编语言指令的格式。 • 掌握汇编语言指令的功能及应用。 • 掌握伪指令的格式及应用。

第3章MCS-51指令系统

第3章MCS-51指令系统

第3章 MCS-51指令系统 4. 伪指令 在汇编语言源程序中,除了包含可以转化为特定计算机系 统的机器语言指令所对应的汇编语言指令外,还可能包含一些 伪指令,如“ORG 2000H”、“END”等。“伪”者,假也,尽 尽 管它不是计算机系统对应的指令,汇编时也不产生机器码,但 管它不是计算机系统对应的指令,汇编时也不产生机器码, 汇编语言程序中的伪指令并非可有可无。伪指令的作用是指导 汇编语言程序中的伪指令并非可有可无。 源程序的汇编过程, 源程序的汇编过程,例如“ORG 2000H”伪指令,指示汇编程序 将该伪指令后的汇编语言指令对应的机器码从2000H单元开始存 放。
第3章 MCS-51指令系统
· 52/54子系列内部RAM后128字节(即地址编码为80~FFH) 各单元之间不能直接传送。原因是高128字节内部RAM只能使 用寄存器间接寻址方式,而一条指令中,最多只允许一个操作 数使用寄存器间接寻址方式。 数据传送指令一般不会影响程序状态字寄存器PSW中的标 志位,但当数据传送到累加器A时,PSW中的奇偶标志位P会改 变,原因是奇偶标志位P总是体现累加器A中“1”的个数的奇偶 性。
第3章 MCS-51指令系统 1. 内部 内部RAM与特殊功能寄存器之间的数据传送 与特殊功能寄存器之间的数据传送 表3-1 内部RAM与特殊功能寄存器之间的数据传送指令
指令名称 指令格式 MOV A,Rn 以累加器A作为 目的操作数 MOV A,direct MOV A,@Ri MOV A,#data 机器码 11101rrr 11100101 direct 1110011i 01110100 data 功能 A←Rn A←(direct) A←(Ri) A←data 指令周期 1 1 1 1
MOV 90H,0F0H ; 将特殊功能寄存器0F0H单元(即寄存器B) 内容传送到特殊功能寄存器90H ; 单元(即P1口锁存器)中

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

第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指令系统

第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地址段。

第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的指令系统

第三章MCS51的指令系统

3.4.1 MCS-51数据传送指令
[1]. 以累加器A为目的操作数类指令(4条) 这4条指令的作用是把源操作数指向的内容送到累加器A。有直接、
立即数、寄存器和寄存器间接寻址方式:
MOV A,direct
(direct)→(A)直接单元30H
MOV A,0A2H
§3.1 概述
7种寻址方式,111条指令
指令所占用空 间(字节数)
指令执行周期 (运算速度)
单字节指令:49条 双字节指令:45条 三字节指令:17条
单周期指令:64条 双周期指令:45条 四周期指令:2 条
试问
1 如果一条指令执行时间为3个机器周 期,那么需要经历多少个时钟周期?
2 如果一条指令执行时使用了2us,而 晶振使用的是12MHz,请问执行这条指 令需要多少个机器周期?
(A)+((Ri))+(C)→(A) 累加器A中的内容与工作寄存 器Ri指向地址单元中的内容、连同进位位相加,结果存在A中
3.4.2 MCS-51算术运算指令
[3]. 带借位减法指令(4条)
这组指令包含立即数、直接地址、间接地址及工作寄存器与累加器A连同借位 位C内容相减,结果送回累加器A中。
3.4.1 MCS-51数据传送指令
[2]. 以寄存器Rn为目的操作数的指令(3条)
这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器 Rn中。有直接、立即和寄存器寻址方式:
MOV Rn, direct (data)→(Rn) 直接寻址单元中的内容送到寄存器Rn中 MOV R4,37H
**补充知识
MCS51系列单片机为复杂指令单片机CISC。目前单片机大 量使用的是精简指令集RISC结构单片机.

第三章MCS-51指令系统

第三章MCS-51指令系统
第三章 MCS-51单片机指令系统
3.1 概述
3.2
3.3
寻址方式
MCS-51的指令系统
3.4
伪指令
3.1
概述
指令:使计算机完成某种操作的命令。 指令系统 :计算机能够执行的全部操作所对应的指 令集合。 机器语言: 采用二进制编码表示指令,是计算机能够直 接识别和执行的语言。 汇编语言: 采用助记符 、符号、数字来表示指令的程序 语言,它与机器语言指令时一一对应的。
如果我们分别向DPH,DPL送数,则结果也一样。
如下面两条指令: 则就相当于执行了 MOV DPH,#35H MOV DPTR,#3512H。 MOV DPL,#12H。
(6) 累加器A与片外RAM之间的数据传递类指令(4条)
MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所 有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外 部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接 进行数据的传递,而外部则不行。 比如,要将外部RAM中某一单元(设为0100H单元的数据)送 入另一个单元(设为0200H单元),也必须先将0100H单元中的内 容读入A,然后再送到0200H单元中去。
MOV B,R0
PUSH ACC
;R0→B,R0为寄存器寻 址,B为直接寻址。
;A的内容压入堆栈
3.2.4
寄存器间接寻址
例:MOV A, @R0
• 以寄存器中内容为地址,以该地址中内容为操作数的
寻址方式。间接寻址的存储器空间包括内部RAM和
外部RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR, SP。其中R0、R1必须是工作寄存器组中的寄存器。 SP仅用于堆栈操作。

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

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

2.操作码:指明指令功能,是指令功能的英文缩写。 汇编语句格式中唯一不能空缺的部分。
MOV__move传送 XCH__exchange交换 ANL__and logic与逻辑运算 XRL__exclusive or异或运算
MUL__Multiply乘法
RR__rotate right右循环 SJMP__short jump短跳转 RET__return 子程序返回 操作码助记符
MCS-51系列单片机指令系统分类
按寻址方式分为以下七种 1、立即寻址 2、直接寻址 3、寄存器寻址 按功能分为以下五种: 1、数据传送指令 2、算术运算指令 3、逻辑运算指令
4、寄存器间接寻址指令
5、相对寻址
4、控制转移指令
5、位操作指令
6、变址寻址
7、位寻址
3.3 指令系统的寻址方式
我的信在她 那!找信去!
快件
目的地
MOV A,#30H
30H
A
这类指令大都是双字节指令,仅有指令:MOV DPTR,#DATA16是三字节指令,它提供两字节立即 数。 第一位数字
是A~F时在 其前加0
对立即数的书写要求:对于单字节立即数,若 数值大于等于A0H,则要在其前面加一个0,如指令 “MOV A,#0A0H”,该指令含义是把立即数A0H送 累加器;对于双字节立即数,若数值大于等于 A000H,则要在其前面加一个0。对于直接地址和偏 移量也按相同方法书写。
1.标号:指令的符号地址 一般由字母和数字组成,第一位必须为字母,冒 号 “ :” 结 束 。 字 符 个 数 不 能 超 过 8 个 。 AD5 、 Q555、BB5D、pat、loop等为合法标号;5P、PA、10AD、+A等为非法标号。 不能用汇编语言已定义的符号作标号。如助记符、 伪指令、寄存器名称等。 同一标号在一个程序中只能定义一次。 标号在语句中的有无取决于本语句是否被访问。

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

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

2.2 用@Ri进行间接寻址的指令 MOVX A, @Ri; ((Ri)) MOVX @Ri,A; (A) (A) ((DPTR))
说明:若外部扩展RAM小于等于256单元,用@Ri间接 寻址进行数据传送,8位地址线足够使用。
若外部扩展较大的RAM区域,须用P2口输出高8位地址, 用@Ri表示低八位地址,P0口分时作低8位地址线和数 据线,P2口应事先预置。
累加器
Rn #data 立即数
寄存器
2 外部数据存储器(或I/O)的读写指令 2.1 用@DPTR进行间接寻址的指令
MOVX A, @DPTR; ((DPTR)) (A)
MOVX @DPTR,A; (A)
((DPTR))
DPTR为16位数据指针,该指令可寻址外部RAM64K范围 (0000H-0FFFFH),地址低8位由P0口输出,地址高8 位由P2口输出,数据通过P0口读入或写出。
一 数据传送指令 1 内部数据传送指令(MOV) 指令格式:MOV <目的操作数〉,<源操作数> 指令的源操作数和目的操作数都在单片机内部。可以 是片内RAM地址,也可以是特殊功能寄存器SFR的地址 指令的功能是把源操作数指定的字节变量复制到目的 操作数所规定的单元或寄存器中,源字节不变。
1.1 立即数传送指令 源操作数为立即数 八位立即数传送指令: MOV A,#DATA; DATA (A) 例:MOV A,#02H; MOV Rn,#DATA; DATA (Rn) n=0-7 例:MOV R3,#02H; MOV @Ri,#DATA; DATA ((Ri)) i=0,1 例:MOV @R1,#02H; MOV direct,#DATA; DATA (direct) 例:MOV 30H,#02H;

第3章 MCS-51 的指令系统与汇编语言程序设计1

第3章 MCS-51 的指令系统与汇编语言程序设计1

每条指令在执行时要花去一定的时间,以机器周期为单 位。按指令的执行时间来分: (1) 1个机器周期(12个时钟振荡周期)指令64条 (2) 2个机器周期(24个时钟振荡周期)指令45条 (3) 4个机器周期(48个时钟振荡周期)只有乘、 除两条指令的执行时间。 12MHz晶振:机器周期为1s。 按指令的功能分类,可分为5大类: 数据传送类(29条);算术运算类(24条) 逻辑运算及移位类(24);控制转移类(17条) 位操作类(17条)
第3章 MCS-51的指令系统与汇编语言程序设计
【学习目标】 掌握单片机的指令系统,熟悉指令功能、指令格 式以及指令的寻址方式; 理解汇编语言的特点以及与机器语言之间的区别 和联系; 掌握汇编语言程序设计的步骤、汇编语言程序的 结构; 熟练掌握汇编语言应用程序的开发
xuminxm11@ 密码:xuminxm1111
2.汇编语言 4) (4)DB(Define Byte)
汇编结果:(1000H) 汇编结果:(2000H) =25H =25H
页码 P68 P70 P73
章节或标题
(5)DW(Define Word) (4)分配内存单元
原错误
例如, ORG 1000H
更正为
例如, ORG 2000H
分配内存工作单元,确 定层序和数据的真实地 址
; 取高位 ; 两数高位相加 ; 存“和”的高位
【例3.11】 有一数据块存放起始地址为DATA1的片外RAM 区,数据块以“0”为结束标志,要求将其传送到DATA2为 起始地址的片内RAM区。编写程序如下: MOV DPTR, #DATA1 MOV R0,#DATA2 LOOP:MOVX A, @DPTR JZ ENDO MOV @R0,A INC DPTR INC R0 AJMP LOOP ENDO: SJMP $ ;设置片外RAM数据块地址指针 ;设置片内RAM数据块地址指针 ;取数 ;检测是否为0?为0,转ENDO ;不为0,传送 ;修改地址指针

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

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

位操作类指令(17条)
位操作指令实际就是布尔处理机的指令系统,这 为开关量控制提供了非常有效的手段。
位传送
位置位复位
位运算 位控制转移
位数据传送指令(2条)
MOV MOV
C , bit bit,C
例:片内RAM中(20H)=7FH,执行指令
MOV C,07H 则C=0
位置位复位指令(4条)
调用与返回指令组(4条)
长调用指令 绝对调用指令 子程序返回指令
LCALL addr16 ACALL addr11 RET
中断服务程序返回指令 RETI
空操作指令(1条)
NOP
例:把2000H开始的外部RAM单元中的数据送到3000H
开始的外部RAM单元中,数据个数存放在内部RAM 35H单元。
ANL(ORL,XRL) A , { #data ; direct ; @Ri ; Rn }
2. 直接地址单元与累加器A、立即数之间的逻辑操作(6条)
ANL(ORL,XRL) direct , { A ; #data }
清零与取反指令(2条)
清零: 取反:
CLR A CPL A
循环移位指令(4条)
2. 带进位加法指令(4条) ADDC A , { #data ; direct ; @Ri ; Rn }
3. 带借位减法指令(4条) SUBB A , { #data ; direct; @Ri ; Rn }
影响所有标志位状态
例: 执行指令 MOV A , #0C2H ADD A , #0A9H 对PSW相应状态位的影响如下 1 1 1
3.2 MCS-51指令分类介绍
共分5大类,111条指令。
1.数据传送类指令(29条) 2.算术运算类指令(24条) 3.逻辑运算及移位类指令(24条) 4.控制转移类指令(17条) 5.位操作类指令(17条)

MCS-51指令系统概述

MCS-51指令系统概述

MCS-51指令系统概述1. 引言MCS-51指令系统是一种被广泛使用的8位微控制器指令集架构。

它是Intel公司于1980年代开发的,旨在满足各种嵌入式系统的需求。

MCS-51指令系统提供了丰富的指令集,包括数据操作、控制流程和I/O操作等指令,可用于开发各种应用。

2. 指令格式MCS-51指令系统的指令由不同长度的操作码组成,通常包括一个或多个操作数。

以下是MCS-51指令系统的指令格式:[操作码] [操作数1] [操作数2]其中,操作码表示要执行的操作,操作数用于指定相关数据或地址。

3. 数据操作指令MCS-51指令系统提供了丰富的数据操作指令,方便对数据进行加载、存储和处理。

以下是一些常用的数据操作指令:•MOV:将一个操作数的值复制到另一个操作数。

•ADD:将两个操作数相加,并将结果存储在目标操作数中。

•SUB:将第二个操作数从第一个操作数中减去,并将结果存储在目标操作数中。

•INC:将操作数的值加1。

•DEC:将操作数的值减1。

4. 控制流程指令MCS-51指令系统提供了各种控制流程指令,用于实现条件和无条件的控制流程。

以下是一些常用的控制流程指令:•JMP:无条件跳转到指定的地址。

•JZ:如果零标志位被设置,那么跳转到指定的地址。

•JC:如果进位标志位被设置,那么跳转到指定的地址。

•CALL:调用一个子程序,并将返回地址存储在堆栈中。

5. I/O操作指令MCS-51指令系统提供了丰富的I/O操作指令,用于控制外设设备的输入和输出。

以下是一些常用的I/O操作指令:•MOV:将一个操作数的值复制到特殊功能存放器或外设设备存放器。

•IN:将外设设备的数据读取到存放器中。

•OUT:将存放器的值输出到外设设备。

6. 中断处理MCS-51指令系统支持中断处理,用于实现实时响应和异步事件的处理。

中断处理机制允许在程序的任意位置响应外部或内部的中断请求。

通过使用中断向量表和相关中断效劳程序,可以在发生中断时自动跳转到指定的中断处理程序。

MCS-51指令系统

MCS-51指令系统

第三章MCS-51指令系统1、MCS-51指令系统具有哪几种寻址方式?2、MCS-51指令系统按功能可分为几类?3、MCS-51汇编语言重要伪指令有几条?它们分别具有哪些功能?4、设(70H)=60H,(60H)=20H。

P1口为输入口,当输入状态为B7H,执行下面程序MOV R0,#70HMOV A,@R0MOV R1,AMOV B,@R1MOV P1,#0FFHMOV @R0,P1试分析(70H)、(B)、(R1)、(R0)的内容是什么?5、试分析下列程序的功能CLR AMOV R2,AMOV R7,#4LOOP:CLR CMOV A,R0RLC AMOV R0,AMOV A,R1RLC AMOV R1,AMOV A,R2RLC AMOV R2,ADJNZ R7,LOOP6系统晶振为12MHZ,阅读下列程序,分析其功能,并人工汇编成机器代码START:SETB P1.0NEXT:MOV 30H,#10LOOP2:MOV 31H,#0FAHLOOP1:NOPDNJZ 31H,LOOP1DJNZ 30H,LOOP2CPL P1.0AJMP NEXT2780H AJMP 2530H1750H AJMP 1A00H1230H ACALL 1620H2780H ACALL 2530H2330H SJMP 2340H2866H SJMP 2800H27FEH SJMP 2730H7、分析以下程序段,何时转向LABEL1?何时转向LABEL2?MOV A,R0CPL AJZ LABEL1INC AJZ LABEL28、MCS-51单片机步尔处理器硬件由哪些不见构成?布尔处理器指令主要功能?9、布尔处理机的位处理与MCS-51的字节处理有何不同?10、有四个变量U、V、W、X分别从P1.0~P1.3输入,阅读如下程序,写出逻辑表达式并画出逻辑电路图。

MOV P1, #0FHMOV C , P1.0ANL C , P1.1CPL CMOV ACC.0 ,CMOV C , P1.2ORL C , /P1.3ORL C , ACC.0MOV F , C11、用布尔指令,求借逻辑方程。

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

第03章 MCS - 51单片机指令系统
这里源操作数不能进行寄存器间接寻址, 也就是MOV Rn , @Rn 这个指令是不能用 的。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
(2)将数据传送到工作寄存器Rn的指令(3条) 例:已知累加器A的内容为30H,寄存器R7的内容 为50H,内部RAM30H单元的内容为40H,内部 RAM50H单元的内容为10H,请指出下列每条指令 执行以后相应单元内容的变化.
第 一 节 指 令 格 式 与 寻 址 方 式
第3章 MCS-51单片机指令系统
(6) 相对寻址:
在MCS -51 指令系统中设有转移指令, 分 为直接转移和相对转移指令, 在相对转移 指令中采用相对寻址方式。这种寻址方式 是以PC的内容为基本地址, 加上指令中给 定的偏移量作为转移地址,也就是目的地 址(用来修改PC的值)。指令中给出的偏 移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。
第3章 MCS-51单片机指令系统
(1) 立即寻址:
立即寻址方式是将操作数直接存放在指令字 节中,作为指令的一部分存放在代码段里。 比如:MOV A, #3AH 跟在指令操作码后面的数就是参加运 算的数, 该操作数称为立即数。立即数有一字 节和二字节两种可能, 如指令: MOV DPTR, #0DFFFH 上述两条指令均为立即寻址方式, 第 一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据 指针DPTR中(DPH, 0FFH→DPL)。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
3.2数据传送指令
程序中使用最多的指令,主要用于内部RAM、 寄存器、外部RAM以及程序存储器之间的数据 传送、保存以及交换。 工作原理:将源操作数简单地传给目的 操作数,而源操作数的内容不变,PSW的内容 不改变。 分类:内部数据传送指令、外部传送指 令、查表指令、交换指令和堆栈指令。

单片机原理与应用(曹立军)章 (3)

单片机原理与应用(曹立军)章 (3)
它并非每条指令所必需的, 主要是为了方便软件的编制。标号以字母开始,后跟1~8
个字母或数字,并以冒号“:”结尾。
第三章 MCS-51指令系统
操作码部分规定了指令的操作功能,即说明了指令的操作 性质。操作码是指令中唯一不能缺少的部分。上例中的操作码 是MOV,表示指令进行的送数操作。操作码一般由2~5个英文 字母表示,例如ADD、JB、LCALL等。
第三章 MCS-51指令系统
这里,用MOV A,#01H代替74 01H。其中,74H是80C51的 指令码,表示一个数据送到累加器A的操作,用指令助记符MOV A来表示;01H是要传送的数据。同样,ADD A,#02H代替24 02H,24H是指令码,表示累加器和数据的加法操作,用指令助 记符ADD A表示;02H是要加的数据。
第三章 MCS-51指令系统
R1前面加“@”,则表示R0、R1中存放地址;若不加“@”则表 示存放数据。同样,若DPTR前面加“@”则表示数据指针寄存 器存放16位地址,否则表示存放16位数据。
应注意一条指令必须占用一行,不要在一行中写两条以上 指令。
第三章 MCS-51指令系统
8051单片机是MCS-51单片机系列中最早的一个成员,但它 和MCS-51系列的其它成员一样,都使用MCS-51指令系统。MCS5l指令系统共有111条指令,根据指令所占字节多少划分,单 字节指令49条,双字节指令45条,三字节指令17条;根据每条 指令执行所需时间划分,单机器周期指令64条,双机器周期指 令45条,四机器周期指令2条(乘、除法指令)。这样,根据指 令所占字节及执行所需时间不同,MCS-51指令系统共有6种情 况:单周期单字节、单周期双字节、双周期单字节、双周期双 字节、双周期三字节、四周期单字节。

第三章MCS-51指令系统及汇编语言程序设计

第三章MCS-51指令系统及汇编语言程序设计

指 令 系 统 的 寻 址 方 式
MCS-51指令系统及一般说明 MCS-51指令系统及一般说明
在介绍指令之前, 在介绍指令之前 , 先对指令中使用的一些符号意义进行简单 的说明。 的说明。 direct---直接地址, ---直接地址 ① direct---直接地址,即8位的内部数据存储器单元或特殊 功能寄存器的地址。 功能寄存器的地址。 #data--包含在指令中的8位常数。 --包含在指令中的 ② #data--包含在指令中的8位常数。 #datal6--包含在指令中的16位常数 包含在指令中的16位常数。 ③ #datal6--包含在指令中的16位常数。 rel-- 位的带符号的偏移量。用于SJMP --8 SJMP及所有的条件转移 ④ rel--8位的带符号的偏移量。用于SJMP及所有的条件转移 指令中。 指令中 。 偏移量按相对于下一条指令的第一个字节地址与跳转 后指令第一个字节地址之差计算, 范围内取值。 后指令第一个字节地址之差计算,在-128~+127范围内取值。 128 +127范围内取值 DPTR--数据指针,可用作16位的地址寄存器。 --数据指针 16位的地址寄存器 ⑤ DPTR--数据指针,可用作16位的地址寄存器。
指 令 系 统 的 寻 址 方 式
寄存器间接寻址
寄存器间接寻址方式可用于访问内部RAM 或外部数据存储器 寄存器间接寻址方式可用于访问内部 RAM或外部数据存储器 。 RAM 或外部数据存储器。 这种寻址方式是由指令指定某一寄存器的内容作为操作数的 地址。 地址。 其中(Ri)=40H (Ri)=40 例如 MOV A,@Ri ;(i=0或1),其中(Ri)=40H 这条指令表示从Ri中找到源操作数所在单元的地址, Ri中找到源操作数所在单元的地址 这条指令表示从Ri中找到源操作数所在单元的地址,把该地 址中的内容传送给A 即把内部RAM 40H单元的内容送到累加器A RAM中 址中的内容传送给A。即把内部RAM中40H单元的内容送到累加器A 中。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.1.2 指令表示法
• 指令的助记符表示法,则是用表征指令功能的字符 指令的助记符表示法,则是用表征指令功能的字符 助记符表示法 形式表示指令。 形式表示指令。通常用英文名称或缩写形式作为助 表示指令 记符。 记符。 例如,实现上述运算的指令用助记符表示为: 例如,实现上述运算的指令用助记符表示为: ADD A,#07 • 显而易见,助记符表示法便于书写、理解和记忆, 显而易见,助记符表示法便于书写、理解和记忆, 但计算机不能直接识别和执行这种以助记符表示的 指令,需要经过汇编程序翻译成机器码后才能执行。 汇编程序翻译成机器码后才能执行 指令,需要经过汇编程序翻译成机器码后才能执行。
3.2.3 直接寻址
• 特殊功能寄存器和位地址空间只能用直接寻址方式 特殊功能寄存器和位地址空间只能用直接寻址方式 空间只能用直接寻址 来访问。 来访问。 例如: 例如:指令 MOV A,45H A, 机器代码 E5 45
3.2.3 直接寻址
• 1、在直接寻址方式中,8位直接地址前不加任何符 在直接寻址方式中, 位直接地址前不加任何符 号,以便与立即数相区别。 以便与立即数相区别。 • 2、指令助记符中的direct是操作数所在的存储单元 指令助记符中的direct是操作数所在的存储单元 地址,由2位十六进制数表示。当直接地址为SFR 地址, 位十六进制数表示。当直接地址为SFR 中的某个寄存器的地址时,direct既可以用SFR的 既可以用SFR的 中的某个寄存器的地址时,direct既可以用 的名字符号, 实际地址,也可以使用SFR的名字符号 实际地址,也可以使用SFR的名字符号,通常是用 后者,有利于增强程序的可读性。但在汇编时,仍 后者,有利于增强程序的可读性。但在汇编时, 应将它翻译成实际地址,以便机器识别和执行。 应将它翻译成实际地址,以便机器识别和执行。
3.2.1 寻址空间
• 片内外ROM地址 片内外ROM地址
– 连续(0000H-FFFFH) 连续(0000H-FFFFH) – 低4K有重叠 4K有重叠
• 片内RAM地址 片内RAM地址
– – – 低128字节连续(00H-7FH) 128字节连续 00H-7FH) 字节连续( 高128字节SFR不连续,不全有效(21个有效地址) 128字节 字节SFR不连续,不全有效(21个有效地址) 不连续 个有效地址 8052高128字节 8052高128字节RAM连续(7FH-FFH) 字节RAM连续 7FH-FFH) 连续(
3.1.1 指令格式
• 在微型机中,一般 在微型机中, 采用变长字节的指 也就是说, 令,也就是说,不 同指令用不同长度 来表示, 来表示,但都是字 节的整数倍。MCS节的整数倍。MCS51指令格式有三种 51指令格式有三种 形式, 形式,它们分别占 个存储单元。 有1-3个存储单元。
3.1 指令及其表示方式
3.2 寻址方式
• • • • • • • • 3.2.1 寻址空间 3.2.2 立即寻址 3.2.3 直接寻址 3.2.4 寄存器寻址 3.2.5 寄存器间接寻址 3.2.6 变址寻址 3.2.7 相对寻址 3.2.8 位寻址
• 3.1.1 指令格式 • 3.1.2 指令表示法
3.1.2 指令表示法
• 指令有两种表示方法:机器码表示法和 指令有两种表示方法:机器码表示法和 助记符表示法。 助记符表示法。 表示法 • 指令的机器码表示法,就是用计算机能 指令的机器码表示法,就是用计算机能 直接识别、执行的二进制代码形式表示 直接识别、执行的二进制代码形式表示 指令,常用二进制代码的速记形式。即 指令,常用二进制代码的速记形式。 十六进制代码表示。 十六进制代码表示。
3.1.1 指令格式
• 此外,约定结果数的地址和一个操作数的地 结果数的地址和一个 此外,约定结果数的地址和一个操作数的地 址相同。例如,先把一个加数存入A中,当 相同。例如,先把一个加数存入A 它和另一个数相加后,其结果仍放在A 它和另一个数相加后,其结果仍放在A中, 于是可不在指令中指明该结果存放的地址。 于是可不在指令中指明该结果存放的地址。
3.2 寻址方式
• • • • • • • • 3.2.1 寻址空间 3.2.2 立即寻址 3.2.3 直接寻址 3.2.4 寄存器寻址 3.2.5 寄存器间接寻址 3.2.6 变址寻址 3.2.7 相对寻址 3.2.8 位寻址
3.2.1 寻址空间
• 寻址空间包括存储器的存储单元地址和位地 寻址空间包括存储器的存储单元地址 单元地址和 址。 • 对程序存储器、片外数据存储器都是以字节 程序存储器、片外数据存储器都是以 都是以字节 为单位寻址的; 为单位寻址的; • 对片内数据存储器既可以字节为单位寻址, 片内数据存储器既可以字节为单位寻址, 既可以字节为单位寻址 又可以位为单位寻址。 又可以位为单位寻址。 以位为单位寻址
3.2.1 寻址空间
• 位地址空间包括 片内数据存储器 地址20H-2FH区 地址20H-2FH区 间内的128个位 间内的128个位 地址。 地址。
3.2.1 寻址空间
• 还包括特殊功能寄存器SFR中能被8整除的寄 还包括特殊功能寄存器SFR中能被 中能被8 存器地址中的88个位地址 个位地址; 存器地址中的88个位地址;
3.2.1 寻址空间
• PC可不可以访问? PC可不可以访问? 可不可以访问
3.2 寻址方式
• • • • • • • • 3.2.1 寻址空间 3.2.2 立即寻址 3.2.3 直接寻址 3.2.4 寄存器寻址 3.2.5 寄存器间接寻址 3.2.6 变址寻址 3.2.7 相对寻址 3.2.8 位寻址
第三章 MCS-51的指令系统 MCS-51的指令系统
第三章 MCS-51的指令系统 MCS-51的指令系统 • 3.1 指令及其表示方式 • 3.2 寻址方式 • 3.3 指令系统
3.1 指令及其表示方式
• 3.1.1 指令格式 • 3.1.2 指令表示法
3.1.1 指令格式
• 微处理器的指令是完成一种特定操作的命令。 微处理器的指令是完成一种特定操作的命令。 通常,指令由操作码 操作数两部分组成一 操作码和 通常,指令由操作码和操作数两部分组成一 般来说.指令应具有如下功能: 般来说.指令应具有如下功能:
3.2.2 立即寻址
• 例如, 指令 MOV A,#45H A, 例如, 机器代码 74 45
• 立即寻址方式的指令主要用来对寄存器赋值。因为 立即寻址方式的指令主要用来对寄存器赋值。 操作数可以从指令中直接取得, 操作数可以从指令中直接取得,所以这种寻址方式 的特点是速度快。注意,立即数只能作源操作数。 的特点是速度快。注意,立即数只能作源操作数。
3.2 寻址方式
• • • • • • • • 3.2.1 寻址空间 3.2.2 立即寻址 3.2.3 直接寻址 3.2.4 寄存器寻址 3.2.5 寄存器间接寻址 3.2.6 变址寻址 3.2.7 相对寻址 3.2.8 位寻址
3.2.3 直接寻址
• 在直接寻址方式中.由指令直接给出参加操 在直接寻址方式中.由指令直接给出参加操 作的数的字节地址或位地址。由于操作数地 作的数的字节地址或位地址。由于操作数地 址只能以8位数指定, 址只能以8位数指定,所以直接寻址方式只能 在下述三种地址空间内寻址: 在下述三种地址空间内寻址: • (1)特殊功能寄存器(SFR); (1)特殊功能寄存器 特殊功能寄存器(SFR); • (2)内部数据存储器RAM的低128个字节; (2)内部数据存储器 内部数据存储器RAM的低 的低128个字节 个字节; • (3)位地址空间。 (3)位地址空间 位地址空间。
3.2.3 直接寻址
例如, 83H; 机器码: 例如, PUSH 83H; 机器码:C0 83 PUSH DPH; 机器码:C0 83 DPH; 机器码: DPH的实际地址为 DPH的实际地址为83H,所以两条指令的机 的实际地址为83H, 器码表示是一样的,执行效果相同。 器码表示是一样的,执行效果相同。
• 片外RAM地址连续(0000H-FFFFH) 片外RAM地址连续 0000H-FFFFH) 地址连续( • 位地址
– 低128位连续(00H-7FH) 128位连续 00H-7FH) 位连续( – 高128位不连续,不全有效(88个有效地址) 128位不连续,不全有效(88个有效地址 个有效地址) 位不连续
3.1.1 指令格式
• 通常,按指令排列顺序,由CPU中的程序计 通常,按指令排列顺序, CPU中的程序计 数器PC指出下一条要执行指令的地址 指出下一条要执行指令的地址, 数器PC指出下一条要执行指令的地址,每取 一个字节,PC能自动加 能自动加1 一个字节,PC能自动加1,这样在指令中就 不必指明下一条指令的地址。 不必指明下一条指令的地址。 • 若遇到程序转移的情况则由转移指令指明下 若遇到程序转移的情况则由转移指令指明下 一条指令的地址, 一条指令的地址,执行完后自动地把下一条 指令的地址赋予PC。 指令的地址赋予PC。
3.2 寻址方式
寻找操作数地址或 • 寻址方式就是寻找操作数地址或指令地址的 寻址方式就是寻找操作数地址 指令地址的 方式。形成操作数地址或指令地址的过程, 方式。形成操作数地址或指令地址的过程, 称为寻址过程。 称为寻址过程。 • MCS-51共有七种寻址方式。 MCS-51共有七种寻址方式。 共有七种寻址方式
– 操作码指明执行什么性质和类型的操作。例如, 操作码指明执行什么性质和类型的操作。例如, 数的传送、加法、减法等。 数的传送、加法、减法等。 – 操作数指定参加操作的数本身或者是操作数所在 的地址(操作数地址) 的地址(操作数地址)。 – 指定操作结果存放的地址。 指定操作结果存放的地址。 – 指定下一条指令存放的地址(指令地址)。 指定下一条指令存放的地址(指令地址)
3.1.2 指令表示法
• 例如,一条实现A=A+07的指令用机器码表 例如,一条实现A A+07的指令用机器码表 示为: 示为: 00100100 00000111 24 07 (二进制代码 (二进制代码) 二进制代码) (十六进制代码 (十六进制代码) 十六进制代码)
相关文档
最新文档