第三章MCS-51单片机的指令系统1
CH3 MCS-51单片机指令系统-1 单片机优秀课件

2020/7/3
§3-3 寻址方式
寻址方式:寻找操作数存放单元的地址的方式。 1、立即寻址 1)定义
操作数在指令中直接给出,通常把出现在指令中的 操作数称之为立即数,因此就把这种寻址方式称之为 立即寻址。 2)举例
8位立即数操作:MOV A,#data 1620/7/3
MCS-51指令格式: [标号:] [操作码][第一操作数][,第二操作数][;注释]
LOOP: MOV A,#40H ;取参数
§3-2 指令格式
助记符举例:
MOV __ move
传送
XCH __ exchange
交换
ANL __ and logic
与逻辑运算
XRL __ exclusive or logic 异或运算
CH3 MCS-51单片机指令系统及汇编程序设计
内容提要: §3-1 指令系统简介 §3-2 指令格式 §3-3 寻址方式 §3-4 指令系统 §3-5 汇编语言程序设计 CH3 习题课
2020/7/3
2020/7/3
§3-2 指令格式
指令 = 操作码 + 操作数 操作码:表示了该指令所能执行的操作功能。 操作数:表示参加操作的数的本身或操作数所在的地址。
MUL __ multiply
乘法
RR __ rotate right
右循环
SJMP __ short jump
短跳转
RET __ return
子程序返回
§3-2 指令格式
操作数的表示形式: (1)无操作数或操作数隐藏在操作码中
如:NOP RET
(2)只有一个操作数 如:INC A DEC A
(3)有两个操作数 如:MOV A, #00H
MCS-51指令系统

4、控制转移类指令(二)
无条件转移:(LJMP,AJMP,SJMP,JMP—4条) LJMP addr16 长跳转指令
——可在64K范围内跳转 AJMP addr11 绝对跳转指令
——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令
——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令
1
累加器清零/取反操作 (CLR,CPL—2条)
CLR A —对累加器清零
1 Byte 1 Tm
CPL A ——对累加器按位取非 1 Byte 1 Tm 15
3、逻辑运算及移位类指令(三)
逻辑运算指令在程序中的应用(下面的例子认为Acc 的内容为9AH)
逻辑与ANL运算用于对某些位进行清0或者保留: 例: ANL A, #0FH; 则(A) = 0AH
位清零/置位指令(4条): CLR bit(或C) —— (bit或 C)“0” SETB bit(或C) —— (bit或 C)“1”
位逻辑与/或/非指令(6条): ANL C,bit(或/bit) ORL C,bit(或/bit) CPL bit (或 C) 注: “/bit”表示对bit位先取反然后再参加运算
带借位减法(SUBB):(A) ← (A)- (Cy)- (第二操作数)
10
2、算术运算类指令(三)
加1/减1操作: (INC,DEC—9条) INC, DEC与用加/减法指令做加1/减1 操作不 同之处在于INC、DEC不影响标志位。
单字节乘/除运算: (MUL,DIV—2条) 两个单字节数的乘/除法运算只在A与B之间 进行。 MUL AB: (A)与(B)相乘, 积为16位数,
第三章 MCS-51单片机的寻址方式和指令系统

由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址
以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)
单片机原理及应用课后习题参考答案~章

《单片机原理及应用》习题答案第一章计算机基础知识1-1 微型计算机主要由哪几部分组成?各部分有何功能?答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。
CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。
存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。
按其功能可分为RAM和ROM。
输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。
总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。
1-3 什么叫单片机?其主要由哪几部分组成?答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
1-4 在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用?答:单片机片内ROM的配置状态可分四种:(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;(2)片内EPROM型单片机(如8751),适合于研制产品样机;(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;(4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。
1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制)1-6 写出下列各数的BCD参与:第二章MCS-51单片机的硬件结构2-1 8052单片机片内包含哪些主要逻辑功能部件?答:8052单片机片内包括:①8位中央处理器CPU一个②片内振荡器及时钟电路③256B数据存储器RAM。
④8KB片内程序存储空间ROM⑤21个特殊功能寄存器SFR⑥4个8位并行I/O端口(32条线)⑦1个可编程全双工串行口⑧可寻址64KB的外部程序存储空间和外部数据存储空间⑨3个16位的定时器/计数器⑩6个中断源、2个优先级嵌套中断结构2-2 8052的存储器分哪几个空间?如何区别不同空间的寻址?答:⑴8052的存储器分为6个编址空间:①片内ROM的容量为8KB,其地址为0000H~1FFFH;②可扩展片外ROM的容量为64KB,其地址为0000H~FFFFH;片内RAM的容量为256B,其地址为00H~FFH分为二块:③地址00H~7FH共128B 为片内RAM低区,④另128B为片内RAM高区,其地址空间为80H`FFH,其地址空间与SFR功能寄存器地址重叠;⑤可扩展片外RAM的容量为64KB,其地址为0000H~1FFFH;⑥特殊功能寄存器SFR的空间为128B,其地址为80H~FFH,但实际只定义了26B单元,这26B单元分散在80H`F0H。
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。
单片机课后习题答案

第一章计算机基础知识1-1微型计算机主要由哪几部分组成?各部分有何功能?答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。
CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。
存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。
按其功能可分为RAM和ROM。
输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。
总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。
1-3什么叫单片机?其主要由哪几部分组成?答:单片机是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
1-4在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用?答:单片机片内ROM的配置状态可分四种:(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;(2)片内EPROM型单片机(如8751),适合于研制产品样机;(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;(4)EEPROM(或FlashROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。
1-5写出下列各数的另两种数制的表达形式(二、十、十六进制)1100010100111001000111100100100111111101101100111011011101011119862H200394E47H585249H162363F6CH291D14955D71-6写出下列各数的BCD参与:59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010389.41:001110001001.01000001第二章MCS-51单片机的硬件结构2-1 8052单片机片内包含哪些主要逻辑功能部件?答:8052单片机片内包括:①8位中央处理器CPU一个②片内振荡器及时钟电路③256B数据存储器RAM。
第3章 51单片机指令系统
3.1.3 堆栈操作指令
(1)入栈指令:
PUSH direct; SP ← SP+1, (SP) ← (direct)
入栈操作:栈指针SP+1指向栈顶的上 一个空单元,将直接地址direct寻址的单元 内容压入当前SP所指示的堆栈单元中。 (本操作不影响标志位)
例3-3 在中断响应时,SP=09H,数据 指针DPTR的内容为0123H。执行下列指令 后:
MOV @Ri , A ; (Ri)←A MOV @Ri , direct ; (Ri)←(direct) MOV @Ri , data ; (Ri)←#data 上述指令将累加器A,直接地址单元内 容或立即数送到Ri间接寻址单元中。由于内 容较多,下面需要说明:
累加器A是个使用最多的寄存器,MCS-51单 片机以A为中心体系结构。绝大部分指令均需通 过A送到ALU进行运算,结果存于A中,有些指令 仅在A中进行。 直接地址direct ,8位直接地址可寻址0~255个 单元。对于8051则直接寻址内部RAM0~127地址 空间的单元及128~255地址空间的特殊功能寄存 器。这里需注意128~255地址空间很多单元开始 时无定义,对无定义单元进行读/写,则读数不定, 欲写入的数将丢失。 间接寻址@Ri,@间接寻址的符号,是以Ri 的内容作为地址进行寻址,亦即Ri的内容不是操 作数,而是地址。此地址所对应的单元内容才是 所要找的操作数。间接寻址的寻址范围与直接寻 址相同(0~255)。直接寻址单元在编程时就已 明确,而间接寻址单元是在程序运行中明确。
单片机原理及应用习题集(含答案)
(B)11100001B
3、十进制 29 的二进制表示为原码( (A)11100010B (B) 10101111B
4、十进制 0.625 转换成二进制数是( )。 (A)0.101 (B) 0.111 (C)0.110 )。 (C) 07 )。 (C) 11 ) (D) 1011 (D) 47 (D)0.100
5、二进制数、十进制数、十六进制数各用什么字母尾缀作为标识符?无标识符时表示什么进 制数? 6、试比较 MCS-51,MSP430,EM78,PIC,M6800 及 AVP 等系列单片机的特点。 第二章 MCS-51 单片机的硬件结构与工作原理 2-1 单项选择 1、要 MCS-51 系统中,若晶振频率屡 6MHz,一个机器周期等于( A 1 B 2 C 3 D 0.5 ): D 存储器 ) μ s
2、以下不是构成的控制器部件(
A 程序计数器、 B 指令寄存器、 C 指令译码器、 3、以下不是构成单片机的部件( A 微处理器(CPU)、B 存储器 4、下列不是单片机总线是( A 地址总线 B 控制总线 C 数据总线 )
C 接口适配器(I\O 接口电路) D 打印机 ) D 输出总线
5、PSW=18H 时,则当前工作寄存器是( ) (A)0 组 (B)1 组 (C)2 组 ) (B)4个TTL低电平负载 (D)10个TTL低电平负载 ) (D)3 组
(A)C (B)F0 (C)OV (D)P 5、下面条指令将 MCS-51 的工作寄存器置成 3 区( (A)MOV PSW,#13H (B)MOV PSW,#18H (C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.4 6、执行 MOVX A,DPTR 指令时,MCS-51 产生的控制信号是( (A)/PSEN (B)ALE (C)/RD (D)/WR 7、MOV C,#00H 的寻址方式是( ) ) )
MCS-51指令系统
间 (A)←(Rn) (A)←(direct) (A)←((Ri)) (A)←#data
(2)以直接地址为目的的传送指令
MOV MOV MOV MOV MOV direct,A ;(direct) ←(A) direct,Rn ;(direct) ←(Rn) direct1,direct2;(direct1) ←(direct2) direct,@Ri ;(direct1) ←( (Ri)) direct,#data ;(direct1) ←data 这组指令的目的操作数都是直接寻址单位,源地址
(1)半字节交换指令
XCHD A,@Ri ;(A)3~0 <=>((Ri))3~0 SWAP A ;(A)3~0<=>(A)7~4 第一条指令将 Ri 间接寻址的单元内容的低 4 位 与累加器 A 内容的低 4 位互换,高四位内容不变, 不 影 响 标 志 位 。 例 如 , 设 ( A ) =0ABH , ( R0 ) =30H ,( 30H ) =12H ,执行指令 XCHD A , @R0 后, (A)=A2H,(30H)=1BH。 第二条指令将累加器 A 的高 4 位与低 4 位内容互换, 不影响标志位。
(4)以寄存器间接地址为目 的的传送指令
MOV @Ri,A ; ((Ri)) ←(A) MOV @Ri,direct ; ((Ri)) ←(direct) MOV @Ri,#data ; ((Ri)) ←data 这组指令的目的操作数都是间接寻址单 元,源地址单元可采用寄存器寻址、直接寻 址和立即数寻址方式。
MCS-51 单片机指令系统
第3章 MCS-51 单片机指令系统
3.1 3.2 3.3 3.4 3.5 3.6 3.7 指令系统概述 寻址方式 数据传送指令 算术运算类指令 逻辑运算类指令 控制转移类指令 位操作类指令
第3章指令系统
XCHD A, @Ri 结果:(A)=? (30H)=?
(3) 累加器A中高四位与低四位交换指令
SWAP A
功能: 交换A中高、低半字节(3~0和7~4), 结果不影响标志寄存器PSW。
例: 设(A)=0A5H(10100101B) SWAP A 结果:(A)=5AH(01011010B)
3.3.2算术运算类指令
弹出指令:POP direct ; ((SP))←(direct),SP←SP-1
PUSH ACC PUSH B 则出栈的顺序为: POP B POP ACC
9.数据交换指令
(1)字节交换指令
目的操 作数 XCH A, XCH A, XCH A, 源操作数 功能说明 direct @Ri Rn (direct) ((Ri)) (Rn) 源操作数寻址 方式 直接寻址 间接寻址 寄存器寻址
5.16位目标地址传送指令
目的操 作数 MOV DPTR, 源操作数 功能说明 #data16 源操作数 寻址方式
;(DPTR)←data16 立即寻址
16位立即数的高8位送入DPH中,低8位送入DPL中。 该指令的执行,不影响程序状态寄存器PSW。
6.外部数据存储器(或I/O口)与累加器A传送指令
第3章
MCS-51单片机的指令系统
汇编语言的指令格式及符号简介
寻址方式 数据传送类指令 算术运算类指令 逻辑运算类指令 位操作类指令 控制转移类指令 思考练习题
3.1 汇编语言的指令格式及符号简介
3.1.1 指令格式
[标号:] 操作码助记符 [目的操作数] [, 源操作数]
例如: LOOP: MOV A, #50H DEC R0 DJNZ R0, LOOP END