单片机学教程ppt第3章(1) 指令系统

上传人:kms****20 文档编号:51007122 上传时间:2018-08-12 格式:PPT 页数:93 大小:776KB
返回 下载 相关 举报
单片机学教程ppt第3章(1) 指令系统_第1页
第1页 / 共93页
单片机学教程ppt第3章(1) 指令系统_第2页
第2页 / 共93页
单片机学教程ppt第3章(1) 指令系统_第3页
第3页 / 共93页
单片机学教程ppt第3章(1) 指令系统_第4页
第4页 / 共93页
单片机学教程ppt第3章(1) 指令系统_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《单片机学教程ppt第3章(1) 指令系统》由会员分享,可在线阅读,更多相关《单片机学教程ppt第3章(1) 指令系统(93页珍藏版)》请在金锄头文库上搜索。

1、第3章:51单片机指令系统 Instruction Set1.Keil软件的使用; 2.7种寻址方式;3.MCS-51指令集(难点、重点);熟练掌握、记住指令的 英文全称,多上机调试,不要杜撰指令;把8086汇编指令 忘记,完全不同,容易混淆4.(复习)把所有指令英文全称过一遍13.1 Keil 软件的使用 3.2 指令、指令系统的概念 3.3 汇编指令的格式 3.4 单片机指令的寻址方式 3.4.1 寄存器寻址 3.4.2 立即寻址 3.4.3 寄存器间接寻址3.4.4 直接寻址 3.4.5 变址寻址 3.4.6 相对寻址 3.4.7 位寻址 3.5 单片机汇编指令集 3.5.1 数据传送类

2、指令 3.5.2 算术运算类指令 3.5.3 逻辑运算及移位类指令3.5.4 控制转移类指令 3.5.5 位操作类指令23.1 Keil 软件的使用(Keil软件演示) Keil实例教程 uVision2入门教程(一)Keil工程文件的建立、设置与目标文件的获得 1.Keil 工程的建立-建立工程文件,源文件的建立 2.工程的详细设置 3.编译、连接 (二)Keil的调试命令、在线汇编与断点设置 1.常用调试命令 2.在线汇编 3.断点设置3(三)Keil 程序调试窗口 1.存储器窗口 2.工程窗口寄存器页 3.观察窗口 (四)Keil 的辅助工具和部份高级技巧 辅助工具1、外围接口 2、性能

3、分析 3、变量来源浏览 4、代码作用范围分析 部份高级调试技巧 1、串行窗口与实际硬件相连 2、从端口送入信号 3、直接更改内存值41.检查源程序;2.测出源程序中的语法错误,并给出出错信息;(1)expression type does not match instruction(2)syntax error3.产生目标文件(.OBJ),并可给出列表文件(同时列出汇编语 言源程序和机器语言目标程序的文件,称之为.LST文件)和 交叉索引文件(列出程序中使用的符号、变量和标号以及引 用情况,称之为.CRF文件)。52.连接程序(了解,计算机工作 机理) v汇编之后生成的OBJ文件必须经过链接过

4、程,才能成为扩 展名.EXE的可执行文件。v链接的过程就是调用连接程序(LINK.EXE),对OBJ文件进 行定位、链接,最后生成扩展名为EXE的可执行文件。v如果需要,也可生成MAP文件和LIB文件。6view-memory windowI: 00H 内部RAM(256 0x00-0xff) X:00H 外部RAM(64k 0x0000-0xffff) C:00H ROM鼠标右键modify memory 可以修改其中的数7扩展(了解):HEX是intel的目标文件格式,hex是结果输出的目标文件格式,至少 Intel和Franklin是采用“intel hex格式”。hex格式不难辨认,它

5、的格 式是文件中的所有字节是可打印的ASCII字符.其它更紧凑格式“BIN” 以单一字节表示每个程序代码字节,这样文件中有许多非打印的ASCII字 符代码。HEX文件中的冒号(:)标示一个新记录,接着的两个字符是以实际数据 字节数表示的记录块的长度.典型的1O代表一个16个数据字节的块.再下 面的四个字符是十六进制数用于表示块中数据的起始地址.再下面的两 个字符是块的类型码:00表示是可重定位数据,01是文件的结束标志.接 下去是实际数据,每个十六进制的数字对表示一个字节,16字节数据以32 个字符表示.最后两位数字表示校验和,很容易与数据混淆.当所有的两 字符十六进制值与校验和加起来以256

6、取模,整个结果为0。893.2 指令、指令系统的概念指令(Instruction)是使计算机内部执行的一种操作,提供给用户编程使用的一种命令.由构成计算机的电子器件特性所决定,计算机只能识别二进制代码。以二进制代码来描述指令功能的语言,称之为机器语言.由于机器语言不便被人们识别/记忆/理解和使用,因此给每条机器语言指令赋予助记符号来表示,这就形成了汇编语言(assembly).也就是说,汇编语言是便于人们识别/记忆/理解和使用的一种指令形式,它和机器语言指令一一对应,也是由计算机的硬件特性所决定的。10(了解)指令的描述形式有两种:机器语言形式和汇编语言形式。现在描述计算机指令系统及实际应用中

7、主要采用汇编语言形式.采用机器语言编写的程序称之为目标程序.采用汇编语言编写的程序称之为源程序.计算机能够直接识别并执行的只有机器语言.汇编语言程序不能被计算机直接识别并执行,必须经过一个中间环节把它翻译成机器语言程序,这个中间过程叫做汇编。汇编有两种方式:机器汇编和手工汇编。机器汇编是用专门的汇编程序,在计算机上进行翻译;手工汇编是编程员把汇编语言指令逐条翻译成机器语言指令.现在主要使用机器汇编,但有时也用到手工汇编.11指令一般有功能、时间和空间三种属性(了解)。功能属性是指每条指令都对应一个特定的操作功能;时间属性是指一条指令执行所用的时间,一般用机器周期来表示 空间属性是指一条指令在程

8、序存储器中存储所占用的字节数。这三种属性在使用中最重要的是功能,但时间、空间属性在有些场合也要用到.如一些实时控制应用程序中,有时需要计算一个程序段的确切执行时间或编写软件延时程序,都要用到每条指令的时间属性;在程序存储器的空间设计,或相对转移指令的偏移量计算时就要用到指令的空间属性.1251系列单片机指令集含有111条指令 (1)每条指令在程序存储器ROM中占据一定的空间,以字节为单位。 按指令所占字节数分类: 单字节(49条);双字节(46条);3字节(16条) (2)每条指令在执行时要花去一定的时间,以机器周期为单位.按指 令执行时间分类: 单周期(64条);双周期(45条);4周期(2

9、条) (3)按指令的功能分类,可分为5大类: 数据传送类(29条);算术运算类(24条) 逻辑运算及移位类(24);控制转移类(17条) 位操作类(17条)13指令的 字节数(1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。INC DPTR (A3H)MOV A,RN (E8HEFH)(2)双字节指令:一个字节为操作码,另一个字节是操作数。MOV A,#data (74H data)(3)三字节指令:操作码占一个字节,操作数占二个字节。其中操作数 既可能是数据,也可能是地址。MOV DPTR,#4000H (90H 40H 00H)MOV 30H,#80H (75H,30H,8

10、0H)CJNE A,#20H,rel (B5H,20H,rel)143.3 汇编指令的格式(1)方括符 表示可选项 (2)标号代表指令所在地址,1-8个字母/数字,“:”结尾 (3)操作码就是指令功能助记符,指令实体,操作码表示 计算机执行该指令将进行何种操作 (4)目的操作数/源操作数 操作数表示参加操作的数的 本身或操作数所在的地址标号: 操作码 目的操作数,源操作数;注释例1: loop: djnz r7,next ;R7-10 跳转到nextnext: 15(5)4个区段之间要用分隔符分开 (6)标号与操作码之间用“:”(冒号)隔开 (7)操作码与操作数之间用空格隔开 (8)操作数与注

11、释之间用“;”(分号)隔开 (9)如果操作数有两个以上, 则在操作数之间要用逗号 “,”隔开 (乘法指令和除法指令除外) (10)这些符号“: ; ,”必须是在英文状态下输入 (11)大小写不敏感例2: LED1:MOV DPTR,#4000H16指令的一些符号的意义:Rn 当前寄存器区的8个工作寄存器R0R7(n=07)。 Ri 当前选中的寄存器区中可作间接寻址寄存器的2个寄存器R0、R1(i=0,1) Direct 直接地址,即8位的内部数据存储器单元或特殊功能寄存器的地址。 #data 包含在指令中的8位立即数。Mov a,#60h #data16 包含在指令中的16位立即数(对DPTR

12、作用)。 rel 相对转移指令中的偏移量,为8位的带符号补码数(选择标号) DPTR 数据指针,可用作16位的地址寄存器。17bit 内部RAM或特殊功能寄存器中的直接寻址位C或Cy 进位标志位或位处理机中的累加器。addr11 11位目的地址addr16 16位目的地址$ 当前指令的地址(sjmp $,JNB TI,$)(常用)the same address of the current instruction183.4 单片机指令的寻址方式1.寄存器寻址 2.立即寻址 3.寄存器间接寻址 4.直接寻址 5.变址寻址(基址寄存器+变址寄存器间接寻址) 6.相对寻址 7.位寻址寻址方式:指令

13、按地址获得操作数的方式 七种寻址方式,一条指令可能含多种寻址方式191.寄存器寻址 Register Addressing 从寄存器中读取操作数或存放操作数进寄存器 例3:MOV A,B ;(A)(B)MOV 30H,R0 ;(30H)(R0)MOV A,R1 ;(A)(R1)寻址范围包括: (1)4组通用工作寄存区共32个工作寄存器 (2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器DPTR等。202.立即寻址 Immediate Addressing 操作数直接就出现在指令中 例4:MOV A,#64H ;(A) 立即数 64HADD A,#0F5H ;(A)(A)+立即数 F5H

14、注意:符号“#”表明其后跟的是立即数,立即数就是数字量本身. 例如:MOV A,#30H 指令中30H就是立即数.这一条指令的 功能是执行将立即数30H传送到累加器A中的操作.mov a,#20h;()十六进制数 mov a,#20 ;() = mov a,#20D ;十进制数 mov a,#10000101b ;() mov a,#10000101 ;(X)213.寄存器间接寻址 Register Indirect Addressing 寄存器中的内容是一个地址,由该地址单元寻 址到所需的操作数NOTE: 1)“间接”表示某寄存器中的“内容”只是一个“单元地址”,这个 地址单元中存放的数据才

15、是要找的“操作数”.(注意区分“内容 、地址”的关系) 2)符号“”表示“在”,其含义与读音皆同“at”.MOV R1,#30H ;(R1) 立即数30HMOV R1,#0FH ;(30H)立即数0FHMOV A,R1 ;(A)(30H)=#0FH22理解地址和内容的关系(自学)例如:MOV A,R1指令的源操作数是寄存器间接寻址。该指令的功能是将以工作寄存器R1中的内容为地址的片内RAM单元的数据传送到A中去。例如:若R1中的内容为80H,片内RAM地址为80H的单元中的内容为2FH,则执行该指令后,片内RAM 80H单元的内容2FH被送到A中。寄存器间接寻址示意图如图所示。23寻址范围:(1)访问内部RAM低128个单元,其通用形式为RiR0,R1 ;() R2,R7 ;(x) (2)对片外数据存储器的64K字节的间接寻址,MOVX A,DPTR(3)片外数据存储器的低256字节 MOVX A,Ri(4)堆栈区:堆栈操作指令PUSH(压栈)和POP(出栈)使用 堆栈指针(SP)作间址寄存器244.直接寻址 Direct Addressing 指令中直接直接给出存放数据的地址或名称 例:MOV R1,1FH ;(R1)(1FH)MOV 30H,4AH ;(30H)(4AH)NOTE:访问SFR只能采用直接寻址方式.例如:MOV A,SP ;(A) (SP)MOV

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

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

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