--指令系统及程序设计(第一部分)

上传人:宝路 文档编号:48326023 上传时间:2018-07-13 格式:PPT 页数:68 大小:703.04KB
返回 下载 相关 举报
--指令系统及程序设计(第一部分)_第1页
第1页 / 共68页
--指令系统及程序设计(第一部分)_第2页
第2页 / 共68页
--指令系统及程序设计(第一部分)_第3页
第3页 / 共68页
--指令系统及程序设计(第一部分)_第4页
第4页 / 共68页
--指令系统及程序设计(第一部分)_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《--指令系统及程序设计(第一部分)》由会员分享,可在线阅读,更多相关《--指令系统及程序设计(第一部分)(68页珍藏版)》请在金锄头文库上搜索。

1、3.1 指令系统简介本章分为五节,主要介绍:3.2 寻址方式 3.3 指令系统 3.4 汇编语言程序设计3.5 设计实例13.1 指令系统简 介3.1.1 机器语语言和汇编语汇编语 言机器语语言:0或1等组组合而成的二进进制编码编码 。 缺点:人不容易记记住! 汇编语汇编语 言:用英文单词单词 及其缩缩写表示机器语语言的、 有利于记忆记忆 的符号,实际实际 上是符号化的机器语语言。例如:INC A,该该指令的二进进制编码编码 (机器语语言) 为为:0000 0100B 汇编汇编 :把用汇编语汇编语 言写的源程序翻译译成机器语语言的 过过程,称为汇编为汇编 。2指令系统:所有的指令的集合。MCS

2、-51系列单片机指令系统共有111条指令。(1)指令的分类标准之一:按照所占存储空间大 小分类: 单字节指令、双字节指令、三字节指令。 (2)指令的分类标准之二:按照执行时耗费时间长 短分类:单周期、双周期、四周期等。 (3)其他分类方法:功能,操作数数量等 了解上述分类方法3.1 指令系统简介33.1.2 指令的格式一般格式为:操作助记符 目的操作数,源操作数;注释关于“ ”符号:指令的一般格式中使用了可选择符 号“ ”,包含的内容因指令的不同可以有或无。43.1.3 符号说说明(暂时了解)Rn(n=07)-当前选中的工作寄存 器组中的寄存器R0R7之一; Ri(i=0,1)-当前选中的工作

3、寄存 器组中的寄存器R0或R1; -间址寄存器前缀; #data -8位立即数; #data16-16位立即数; direct-片内低128个RAM单元地 址及SFR地址(可用符号名称表示 );5addr11-11位目的地址; addr16-16位目的地址; rel-补码形式表示的8位地址偏移量,值在 128127范围内; bit-片内RAM位地址、SFR的位地址(可用 符号名称表示); /-位操作数的取反操作前缀; ()- 表示 地址单元或寄存器中的内容 ; -将箭头右边的内容送入箭头左边的单元 中。 3.1.3 符号说说明(暂时了解,结合后 边指令逐步掌握) 63.2 寻寻址方式 寻址:是

4、寻找操作数或指令的地址的方式。 寻址方式:寄存器寻址、直接寻址、寄存器间 接寻址、立即寻址、基址寄存器加变址寄存器变 址寻址、相对寻址和位寻址。若不特别声明,我们后面提到的寻址方 式均指源操作数的寻址方式。指令格式:操作助记符 目的操作数 ,源操作数7操作数存放在寄存器中,指令中直接给出该寄存 器名称的寻址方式。如:MOV A,R0 ;A-(R0) 注意括号的含义寻址空间(寄存器可以)是:R0R7;A;B(以AB寄 存器对形式出现);DPTR。3.2 寻址方式-寄存器寻址特点:较高的传送和运算速度。8指令操作码之后的字节存放的是操作数的地址 ,操作数本身存放在该地址指示的存储单元中的 寻址方式

5、称为直接寻址。如:MOV A,50H ;A-(50H) 直接寻址中的SFR经常采用符号形式表示。寻 址空间为:片内RAM低128字节;SFR。3.2 寻址方式-直接寻址9*103.2.3 寄存器间接寻址寄存器中的内容是操作数的地址 寻址空间: 片内RAM(Ri) 片外RAM(Ri、DPTR)【例】若(R0)=30H,(30H)=5AH 执行MOV A,R0后,(A)=5AH 片内:MOV(暂时了解) 片外:MOVX3.2 寻址方式-寄存器间间接寻寻址10*11操作数在指令编码中 寻址空间:ROM对于MOV DPTR,#2100H指令,立即数高8位“21H”装入DPH 00装入DPL 【例】执行

6、MOV A,#50H 结果:(A)=50H 3.2 寻址方式-立即寻寻址11*12操作数地址:基地址+偏移量 寻址空间: ROM变址寻址还用于跳转指令,如JMP A+DPTR 【例】(A)0FH (DPTR)=2400H 执行MOVC A,A+DPTR”后结果:(A)=88H 3.2 寻址方式-变址寻寻址12将PC中的当前内容与指令第二字节给出的数相加, 结果作为跳转指令的转移地址(转移目的地址)。 PC中的当前内容称为基地址(本指令后的字节地址)指令第二字节给出的数据称为偏移量,1字节带符号数 (128127 ).3.2 寻址方式-相对寻寻址常用于跳转指令。如: JC 23H若C=0,不跳转

7、; C=1,跳转.执行过程如下13JC 23H 执行过程程序存储区ALU1025H1000H 401025H 451001H 23 1024H 471002H 3023H1002H指令代码当前PC3.2 寻址方式-相对寻寻址上述的用法实际很少,了解一下就可以。更多的时候 使用标号,比如:JZ lOOP(暂时先了解) 14v寻址位数据(实质属于位的直接寻址)。寻址空间为:片内RAM的20H2FH单元中的 128可寻址位;SFR的可寻址位。习惯:特殊功能寄存器的寻址位常用符号位地 址表示。如: CLR ACC.0 MOV 30H,C3.2 寻址方式-位寻寻址15寻址方式功能立即寻址操作数接在指令中

8、, MOV A,#00H直接寻址操作数本身存放在该该地址指示的存储单储单 元中,MOV A,00H寄存器寻址操作数存放在寄存器中,MOV A,R0寄存器间接寻 址寄存器中的内容是操作数的地址,MOV A,R0变址寻址操作数地址:基地址+偏移量, MOVC A,A+DPTR相对寻址将PC中的当前内容与指令第二字节给节给 出的数相加,结结果作为为跳转转 指令的转转移地址(转转移目的地址),JC 23H位寻址实质实质 属于位的直接寻寻址,CLR ACC.0 本节总结寻址:查找源操作数的方法注意:重点明白指令的含义,而不是单纯的去区分寻址方式!163.3 指令系统助记符:MOV、MOVX、MOVC X

9、CH、XCHD、SWAP PUSH、POP v除了目的操作数为ACC的指令影响偶校验标志P外,一般不影响 标志位。 当A中为偶数个1时,p=0;当A中为奇数个1时,p=1;凑成偶数个1 关于偶校验了解即可3.3.1 数据传送类指令(29条)17MOV DPTR,#data1651是一种8位机,这是唯一的一条16位立即数传递 指令。功能:将一个16位的立即数送入DPTR中去。其中 高8位送入DPH,低8位送入DPL。例:MOV DPTR,#1234H执行完了之后DPH中的值为12H,DPL中的值为34H。如果我们分别向DPH,DPL送数,则结果也一样。如下面两条指令: MOV DPH,#35HM

10、OV DPL,#12H则就相当于执行了 MOV DPTR,#3512H3.3.1数据传送类指令-十六位数的传递指令18MOVX A,RiMOVX Ri,AMOVX A,DPTRMOVX DPTR,A 说明:1.在51中,与外部存储器RAM打交道的只可以是A累加器。所有 需要送入外部RAM的数据必需要通过A送去,而所有要读入的外部 RAM中的数据也必需通过A读入。2、外部RAM的数据不能够直接传输。比如,要将外部RAM中某一 单元(设为0100H单元的数据)送入另一个单元(设为0200H单元) ,也必须先将0100H单元中的内容读入A,然后再送到0200H单元中 去。但内部RAM间可以直接进行数

11、据的传递。3.3.1数据传送类指令-累加器A与片外RAM之间的 数据传递类指令192.要读或写外部的RAM,当然也必须要知道RAM的地址, 在后两条指令中,地址是被直接放在DPTR中的。而前两条 指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提 供低8位地址。高8位地址由P2口来提供(暂时了解)。3.使用时应先将要读或写的地址送入DPTR或Ri中,然后 再用读写命令。例:将外部RAM中100H单元中的内容送入外部RAM中200H 单元中。 MOV DPTR,#0100H MOVX A,DPTR MOV DPTR,#0200H MOVX DPTR,A3.3.1数据传送类指令-累加器A与片

12、外RAM之间的 数据传递类指令20MOVC A,A+DPTRMOVC A,A+PC本组指令是将ROM中的数送入A中。本组指令也被称为查表指令,常用此指令来查一个已做好在 ROM中的表格(暂时了解,后续学习) 说明:查找到的结果被放在A中,上述两条指令的区别以及应用在后续课程中学习,此 处先掌握指令的功能3.3.1数据传送类指令-读程序存储器指令注意(暂时了解)(1)A中存放8位无符号数,即表格的变化范围为256;(2)PC的内容为当前值,即MOVC A,A+PC指令下边一个单元的地址21PUSH direct ;SPSP+1,(SP)(direct) POP direct ; (direct)

13、 (SP), SPSP-1 第一条为压入指令,就是将direct中的内容送入堆栈中,第二条为 弹出指令,就是将堆栈中的内容送回到direct中。例: MOV SP,#5FHMOV A,#100MOV B,#20PUSH ACCPUSH B执行PUSH ACC过程:将SP中的值加1,即变为60H,然后将A中的 值送到60H单元中,结果,(60H)=100,执行PUSH B时,是将SP+1,即变为61H,然后将B中的值送入到 61H单元中,即执行完本条指令后,(61H)=20。 注意:堆栈指针sp一直指向栈顶3.3.1数据传送类指令-堆栈操作指令22*23字节交换指令XCH数据交换属于同时进行的双

14、向传送 【例】若(R0)=80H,(A)=20H。执行指令 XCH A,R0 后, (A)=80H,(R0)=20H。 3.3.1数据传送类指令-数据交换指令23*24半字节交换指令XCHD【例】若(R0)30H,(30H)67H, (A)20H。执行指令XCHD A,R0 指令后,(A)27H,(30H)60H。 XCHD是间址操作数的低半字节与A的低半字节互换。 SWAP是累加器的高低4位互换【例】若(A)30H,执行指令SWAP A后,(A)03H 。 3.3.1数据传送类指令-数据交换指令24主要对8位无符号数;也可用于带符号数运算。包括:加、减、乘、除、加1、减1运算指令,影响PSW

15、有关位。 3.3.2算数运算类指令-24条25ADD A,#data ;(A)(A)+#data ADD A,direct ;(A)(A)+(direct) ADD A,Ri ;(A)(A)+(Ri) ADD A,Rn ;(A)(A)+(Rn)上述指令,把源字节变量(立即数,直接、间接地址单元,工作 寄存器内容)与累加器相加,结果保存在累加器中,影响标志AC、CY 、OV、P。 例 执行指令: MOV A,#0C3HADD A,#0AAH运算后,CY=1,OV=1,AC=0,(PSW)=85H,(A)=6DH 注意: 1:OV溢出标志取决于带符号数运算时。OV=1表示两正数相加,和变 成负数,或两负

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

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