单片微型计算机原理及接口技术(杨光友版)课件ch3

上传人:mg****85 文档编号:49845791 上传时间:2018-08-03 格式:PPT 页数:51 大小:789.50KB
返回 下载 相关 举报
单片微型计算机原理及接口技术(杨光友版)课件ch3_第1页
第1页 / 共51页
单片微型计算机原理及接口技术(杨光友版)课件ch3_第2页
第2页 / 共51页
单片微型计算机原理及接口技术(杨光友版)课件ch3_第3页
第3页 / 共51页
单片微型计算机原理及接口技术(杨光友版)课件ch3_第4页
第4页 / 共51页
单片微型计算机原理及接口技术(杨光友版)课件ch3_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《单片微型计算机原理及接口技术(杨光友版)课件ch3》由会员分享,可在线阅读,更多相关《单片微型计算机原理及接口技术(杨光友版)课件ch3(51页珍藏版)》请在金锄头文库上搜索。

1、第三章 单片机指令系统3-1 3-1 指令格式指令格式3-23-2 指令寻址方式指令寻址方式3-33-3 MCS-51MCS-51指令系统指令系统一一. . 汇编语言指令格式汇编语言指令格式 标号:操作码 操作数1,操作数2;注释例:LOOP: MOV A,#40H ;取参数 1.标号:指令的符号地址。2.操作码:指明指令功能。3.操作数:指令操作对象。包括数据 、地址、寄存器名及约定符号。4.注释行:说明指令在程序中的作用 。操作码和操作数是指令主体。3-1 3-1 指令格式指令格式二二. . 机器语言指令格式机器语言指令格式操作码 操作数1 操作数2 分为单字节、双字节和三字节指令。指令中

2、操作码和操作数是指令主体,称为指令可执行部分,附录指令表中可查出对应指令代码。举例:汇编语言:机器语言:MOV A,R0E8HMOV R6,#32H7E 32HMOV 40H,#64H75 40 64H11101000 0111111000110010 011101010100000001100100三三. . 指令描述符号介绍指令描述符号介绍在介绍指令之前,先把描述指令的一些符号的意 义作些介绍。Rn当前工作寄存器区中的8个寄存器R.0R7(n=07)。Ri当前工作寄存器区中的2个工作寄存器R.0、R1(i=0,1) 。direct8位的内部数据存储器单元中的地址。 #data包含在指令中的

3、8位常数。 #data16包含在指令中的16位常数。 addr1616位目的地址。 addr1111位目的地址。 rel8位带符号的偏移字节,简称偏移量。 DPTR数据指针,可用作16位地址寄存器。bit内部RAM或专用寄存器中的直接寻址位。 A累加器。 B专用寄存器,用于乘法和除法指令中。 C进位标志或进位位,或布尔处理机中的累加器。 间址寄存器或基址寄存器的前缀, 如Ri, DPTR。 / 位操作数的前缀,表示对该位操作数取反,如 /bit。 单元中的内容。 ()由寻址的单元中的内容。 箭头左边的内容被箭头右边的内容所代替。3-2 3-2 指令寻址方式指令寻址方式3-2-13-2-1 寻址

4、方式和操作数类型寻址方式和操作数类型一、寻址方式一、寻址方式是指指令中确定操作数的形式。是指指令中确定操作数的形式。二、操作数类型二、操作数类型位(b) 位寻址区中的一位二进制数据 字节(B) 8位二进制数据 字(W) 16位双字节数据3-2-2 3-2-2 寻址方式寻址方式 一.立即寻址方式指令中给出实际操作数据(立即数)。举例:举例:8位立即数: MOV A,#40H ;A40H16位立即数: MOV DPTR,#2100H ;DPTR2100H二.直接寻址方式指令中直接给出操作数地址的寻址方式,能直接寻址的存储空间为内部RAM和特殊功能寄存器(SFR)。例2:MOV PSW,#20H;P

5、SW #20HPSW为直接寻址寄存器的符号地址。例1:MOV A,30H;A (30H)思考题:直接寻址方式指令和立即寻址方式指令的形 式有什么不同?65H 31H 7FH 30H 65HA 三.寄存器寻址方式 以通用寄存器的内容为操作数的寻址方式。(A B DPTR R0-R7) 例:MOV A,R0;AR0 设指令执行前 A=20H,R0=40H, 执行指令后,A= ?,R0= ? 四.寄存器间接寻址方式以寄存器中内容为地址,以该地址中内容为操作数 的寻址方式。存放地址的寄存器称为间址寄存器或数 据指针,包括R0,R1,DPTR,SP。例: MOV A,R0;A(R0)设指令执行前 A=2

6、0H,R0=40H,地址为40H存储器 单元内容如图。执行指令后, A= ?,R0 = ? ,(40H)= ?41H 67H40H 30H30H40H30H40H40H0100 0000 A0010 0000 R00100 0000R040H五.变址寻址方式由基址寄存器PC或DPTR中内容加上偏移量之和形 成操作数的地址的寻址方式。偏移量由累加器A提供 。 例:MOVC A,A+DPTR;A(A+DPTR)设指令执行前 A=09H,DPTR=2000H,存储器单元内 容如图所示。执行指令后,A= ? DPTR= ? 12H 2000H六.位寻址方式对位地址中的内容作位操作的寻址方式。它其实 是

7、一种直接寻址方式。 例: MOV C,40H;Cy(位地址40H)设指令执行前 Cy=1,位地址40H存储器单元如上图 ,执行指令后,Cy= ?02008H 89H 2009H 12H28H 01100010 29H 11010111位寻址区47H-40H位地址号4FH-48H七、相对寻址以当前程序计数器PC的内容为基础,加指令给出的一 偏移量形成新的PC值的寻址方式。 SJMP 06H2000H2008HPC20002PC+2008例:SJMP 06H;PC PC+2+06H假设该指令在程序存储器2000H(即PC=2000H), 则执行指令后, PC= ?程序的执行过程 如右图所示。 即:

8、程序转移到 2008H处执行。2008H3-33-3MCS-51MCS-51指令系统指令系统指令按功能可分为如下几类:数据传送、算术运算类、逻辑运算、程序转移、子 程序调用及返回、位操作指令。3-3-1 数据传送指令实现寄存器、存储器之间的数据传送。一. 内部传送指令:片内数据存储器数据传送。二. 外部传送指令: 片外数据存储器数据传送。三. 交换指令: 片内数据存储器数据传送。四. 堆栈操作指令: 片内数据存储器数据传送。五. 查表指令: 程序存储器数据传送。一、内部传送指令:实现片内数据存储器中数据 传送。 指令格式: MOV 目的操作数,源操作数 寻址方式:立即寻址、直接寻址、寄存器寻址

9、、寄 存器间址。指令机器码: E8EF E5 direct E6、E7 74 data F8FF A8AF direct 787F data MOV A,Rn ;ARn MOV A,direct;A(direct) MOV A,Ri ;A(Ri) MOV A,#data ;Adata MOV Rn,A;RnA MOV Rn,direct;Rn(direct) MOV Rn,#data;Rndata指令机器码: F5 dir 888F dir 85 dir2 dir1 75 dir data 8687 dir F6F7 dirA6A7 dir 7677 data 90 data16 MOV di

10、r,A ;(dir)A MOV dir,Rn;(dir)Rn MOV dir1,dir2;(dir1)(dir2) MOV dir,#data;(dir)data MOV dir,Ri;(dir)(Ri) MOV Ri,A;(Ri)A MOV Ri,dir;(Ri)dir MOV Ri,#data;(Ri)data MOV DPTR,#data16;DPTRdata16例1:顺序执行下列指令序列,求每一步执行结果。MOV A,#30H MOV 40H,A MOV R0,#20H MOV R0,40H MOV 30H,20H例2:用两种寻址方式实现,将片内RAM 60H单元的数 据传送给累加器A

11、。;A= 30H ;(40H)= 30H ;R0= 20H ;(20H)= 30H ;(30H)= 30H解2: MOV R0,#60HMOV A,R0解1: MOV A,60H说明:4.只有指令表中的指令才有对应指令代码,计算 机才能执行。编程时,不能随意创造发明指令。1. 一条指令中不能同时出现两个工作寄存器:非法指令:MOV R1,R2 MOV R2,R0 2. 间址寄存器只能使用 R0、R1、DPTR、SP。非法指令:MOV A,R23. SFR区只能直接寻址,不能用寄存器间接寻址。 非法指令:MOV R0,#80H MOV A,R0二、 外部传送指令 实现片外数据存储器和累加器A之间

12、的数据传送 。 指令格式:MOVX 目的操作数,源操作数寻址方式:片外数据存储器用寄存器间址方式。1. DPTR作16位数据指针,寻址64KB片外RAM空间 MOVX A,DPTR ;A(DPTR)MOVX DPTR,A;(DPTR)A2. Ri作8位数据指针,寻址256B片外RAM空间MOVXA,Ri;A(P2Ri) MOVXRi,A ;(P2Ri)A指 令 机 器 码E2 E3H F2 F3HE0H F0H例3: 将片外数据存储器数据从2000H传送到2100H。 MOV DPTR,#2000H MOVX A,DPTR MOV DPTR,#2100H MOVX DPTR,A习 题:将片外R

13、AM 0000H单元的数据传送到片内RAM 地址为60H的单元。; DPTR= 2000H ; A= X ; DPTR= 2100H ;(2100H)= X片外数据存储器不能直接 寻址。下列为非法指令:MOVX A,2000H MOVX 2100H,2000H思考题:为什么对DPTR的数据传送使用内部传送指令 ?三、 交换指令实现片内RAM区的数据双向传 送。1. 字节交换指令 XCH A,Rn ;A Rn XCH A,Ri;A (Ri) XCH A,direct;A (direct)习题:将片内RAM60H单元与61H单元的数据交换。例4:设A= 29H,(2AH)=38H,执行指令 XCH

14、 A,2AH 后,A= ?(2AH)= ?38H29HXCH 60H,61H 对吗 ?指令机器码: C8CFH C6C7H C5 dir 2. 半字节交换指令XCHD A,Ri ;A03 (Ri)03SWAP A ;A47 A03例5:将片内2AH和2BH单元中的ASCII码转换成压缩式BCD码存入20H单元。A0000000000H00001000100000001000010108H80H85HMOV A,#00H MOV R0,#2AH MOV R1,#2BH XCHD A,R0 SWAP A XCHD A,R1 MOV 20H, A0000000000H0000000000H85HR1

15、 R0习题:交换片内RAM 40H单元和 41H单元的低半字节 。指令机器码: D6D7H C4 四、堆栈操作指令 入栈指令:PUSH dir;SPSP+1,(SP)(dir) 出栈指令:POP dir;(dir)(SP),SPSP-1例:设 A=02,B=56H,执行下列指令后, SP= ?,A= ? ,B= ? SP SP 02 SP 56H02 56H 02H SP SP 56H02 SP 56H02 56H SP 02 02H A56HSBR: MOV SP,#30H ;设栈底PUSH APUSH BMOV A,#00HMOV B,#01HPOP BPOP A机器码 : C0 dir D0 dirPC PC PC PCPC PCB00H01H56H02H五、 查表指令实现从程序存储器读取数据到A累加器,只能使用变 址间接寻址

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号