如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第3章MCS-51指令系统3.1MCS-51单片机指令系统概述◆指令的属性◆指令系统指令系统是计算机能够执行的全部操作所对应的指令集合,是提供用户使用计算功能的软件资源。它是表征计算机性能的重要标志,每台计算机都有它自己特有的指令系统。MCS-51单片机指令系统共有111条指令,分5大类:1)数据传送类指令(29条);2)算术运算类指令(24条);3)逻辑运算及移位类指令(24条);4)控制转移类指令(17条);5)位操作类指令(17条)。MCS—51单片机汇编语言指令的标准格式如下:[标号:]操作码[目的操作数][,源操作数][;注释]例如:LOOP:ADD#A,#10H;(A)←(A)+10H(1)方括号[]表示该项是可选项,可有可无。(2)标号是用户设定的符号,它实际代表该指令所在的地址。标号必须以字母开头,其后跟1~8个字母或数字,并以“:”结尾。(3)操作码是用英文缩写的指令功能助记符。它确定了本条指令完成什么样的操作功能。如:ADD表示加法操作。任何一条指令都必须有该助记符项,不得省略。(4)目的操作数提供操作的对象,并指出一个目标地址,表示操作结果存放单元的地址,它与操作码之间必须以一个或几个空格分隔。如上例中A表示操作对象是累加器A的内容,并指出操作结果又回送A存放。(5)源操作数指出的是一个源地址(或立即数),表示操作的对象或操作数来自何处。它与目的操作数之间要用“,”号隔开。(6)注释部分是在编写程序时,为了增加程序的可读性,由用户拟写对该条指令或该段程序功能的说明。它以分号“;”开头,可以用中文、英文或某些符号来表示,显然它不存入计算机,只出现在源程序中。指令通常由两部分组成:操作码,操作数。2.二字节指令:3.三字节指令:3.1.3操作数的类型在分类介绍各类指令之前,先对描述指令的一些符号意义进行一些简单约定:(1)Ri和Rn:R表示当前工作寄存器区中的工作寄存器,i表示0或1,即R0和R1。n表示0~7,即R0~R7,当前工作寄存器的选定是由PSW的RS1和RS0位决定的。(2)#data:#表示立即数,data为8位常数。#data是指包含在指令中的8位立即数。(3)#data16:包含在指令中的16位立即数。(4)rel:相对地址,以补码形式表示的地址偏移量,范围为-128~+127,主要用于无条件相对短转移指令SJMP和所有的条件转移指令中。(5)addr16:16位目的地址。目的地址可在全部程序存储器的64KB空间范围内,主要用于无条件长转移指令LJMP和子程序长调用指令LCALL中。(6)addr11:11位目的地址。目的地址应与下条指令处于相同的2KB程序存储器地址空间范围内,主要用于绝对转移指令AJMP和子程序绝对调用指令ACALL指令中。(7)direct:表示直接寻址的地址,即8位内部数据存储器RAM的单元地址(0~127/255),或特殊功能寄存器SFR的地址。对于SFR可直接用其名称来代替其直接地址。(8)bit:内部数据存储器RAM和特殊功能寄存器SFR中的可直接寻址位地址。(9)@:间接寻址寄存器或基地址寄存器的前缀,如@Ri,@DPTR,表示寄存器间接寻址。(10)(X):表示X中的内容。(11)((X)):表示由X寻址的单元中的内容,即(X)作地址,该地址的内容用((X))表示。(12)/和→符号:/表示对该位操作数取反,但不影响该位的原值。→表示指令操作流程,将箭头一方的内容,送入箭头另一方的单元中去。3.2MCS-51单片机寻址方式对由指令选定的工作寄存器(R0—R7)进行读/写。例:MOVA,R3—将R3内容送累加器。INCR0;(R0)+1R0只能在内部RAM中进行直接寻址。三种地址空间:内部RAM;位地址空间;特殊功能寄存器。唯一能访问特殊功能寄存器的寻址方式。以某寄存器内容为地址进行寻址。@间址提示符。间接寻址采用@Ri或@DPTR,@是区别寄存器寻址的标记MCS-51规定工作寄存器R0、R1可作为间接寻址寄存器,用以寻址内部或外部数据存储器256个单元;用数据指针DPTR作间址寄存器,寻址外部64K字节单元。本寻址方式不能用来访问特殊功能寄存器。寄存器间接寻址示意图基址寄存器内容加变址寄存器内容作为有效地址进行间接寻址。MCS-51指令系统独有的。用于访问程序存储器(ROM)中的数据表格。基址寄存器:DPTR、PC和变址寄存器A的内容作为无符号数相加形成16位地址,访问程序存储器中的数据表格。变址寻址示意图例:JMP@A+DPTRMOVCA,@A+PCMOVCA,@A+DPTR后两条指令通常用于查表操作。功能完全一样,使用起来有一些差别。DPTR在使用前可以赋值,