1、第三章第三章 MCS-51 单片机指令系统单片机指令系统学习目的 1了解指令的形式,掌握MCS-51汇编语言指令的格式。2了解掌握指令系统的分类,掌握MCS-51单片机指令的寻址方式。3掌握指令系统中各指令的使用及应用重点难点 1寻址方式 2指令系统31 单片机指令常用的 表示方式和寻址方式 一 指令的表示方式 MCS51单片机主要有两种指令形式:机器语言指令 汇编语言指令。1 1机器语言指令机器语言指令用二进制代码表示的指令称为机器语言指令机器语言指令,也称机器码。例如:“累加器A加1”指令用二进制数表示时,是“00000100”,在程序存储器中占用一个字节单元。2 2汇编语言指令汇编语言指
2、令 用容易记忆的缩写符号表示机器语言指令就是汇编语言指令。例如,“A加B”用英语写出来是“Add B to A”,缩写成“ADD A,B”。这个“ADD A,B”就是汇编语言指令。MCS-51单片机的开发商约定:“ADD A,B”与25F0H对应。我们将“ADD”缩写符号称为“助记符”。编写机器语言程序实质上就是用汇编语言编写程序。比较:汇编语言指令 机器语言指令 MOV A,#0AH 74H 0AH ADD A,#14H 24H 14H8051汇编语言指令 指令组成:指令组成:操作码助记符 操作数括号内的部分是可选项。每个字段之间要用分隔符分隔,可以用作分隔符的符号有空格、冒号、逗号、分号等
3、。w指令格式:指令格式:标号:操作码目的操作数,源操作数;注释 LOOP:MOV A,3AH ;(A)(3AH)1标号标号是语句地址的标志符号,代表该语句指令代码第一个字节的地址。(1)标号由18个ASCII字符组成,且第一个字符必须是字母,其余字符可以是字母、数字或其他特定字符。(2)不能使用该汇编语言已经定义了的符号作为标号。如指令助记符、寄存器符号名称等。(3)标号后必须跟冒号。2操作码操作码用于规定语句执行的操作。它是汇编语句中唯一不能空缺的部分,也是语句的核心,它用指令助记符表示。3操作数 操作数用于给指令的操作提供数据或地址。在一条汇编语句中操作数可能是空缺的,也可能包括一项,还可
4、能包括两项或三项。当有多个操作数时,各操作数间以逗号分隔。(1)工作寄存器名。(2)特殊功能寄存器名。(3)标号名。(4)常数。(5)符号“$”,表示程序计数器PC的当前值。(6)表达式。4注释注释不属于汇编语句的功能部分,它只是对语句的说明。注释字段可以增加程序的可读性,有助于编程人员的阅读和维护。注释字段必须以分号“;”开头,长度不限可以换行接着书写,但换行时应注意在开头使用分号“;”。二二 指令的描述中经常用到一些特殊符号指令的描述中经常用到一些特殊符号 RnRn工作寄存器工作寄存器R0R0R7R7,即即n=0n=07 7。RiRi寄存器寄存器R0R0、R1R1,即,即i=0i=0、1
5、1。directdirect8 8 位内部位内部RAMRAM单元的地址单元的地址datadata:指令中的指令中的8 8 位常数。位常数。data16data16指令中的指令中的1616位常数。位常数。addr16addr16:1616位的目的地址位的目的地址addr11addr111111位的目的地址位的目的地址relrel8 8位带符号的偏移量字节位带符号的偏移量字节bitbit:内部数据内部数据RAMRAM或或SFRSFR的可直接寻址位。的可直接寻址位。/位操作数的前缀,表示对该位取反。位操作数的前缀,表示对该位取反。(X X)X X中的内容。中的内容。(X)(X)由由 X X寻址的单元
6、中的内容。寻址的单元中的内容。表示数据的传送方向。表示数据的传送方向。表示数据交换。表示数据交换。三三 MCS-51指令系统的指令系统的寻址方式,就是指如何找到存放被操作数据的位置(地址)的方法。1立即数寻址立即数寻址是由指令直接给出操作数的寻址方式。#为立即数的标识符。目的地目的地MOV A,#30H速递快信速递快信30A2 2 寄存器寻址寄存器寻址寄存器寻址是指令中指定寄存器的内容作为操作数的寻址方式。寄存器寄存器目的地目的地R0R7ABDPTRMOV A,R13.3.直接寻址直接寻址 直接寻址是指令直接给出操作数所在单元的地址的寻址方式。指令中操作数部分给出直接地址,用direct表示。
7、XXH目的地目的地内部RAMSFRXXHMOV A,3AH例:MOV A,3AH操作码直接地址1001111110011111APC程序存储器1110010100111010PC+1内部RAM3AH39H1001111114.4.位寻址位寻址位寻址适用于可以进行单独位操作的指令,指令中直接给出位地址寻找位操作数。参与操作的数据是bit而不是1B。位地址用bit表示,以区别字节地址direct。PC PC PC+1PC+1 10100010 00110111程序存储器操作码0 0Cy AC FO RSI RS0 OV PPSW内部RAM位地址空间26H 37 36 35 34 33 32 31
8、30 MOV C,37H0 0XXH目的地目的地R0、R1DPTRMOV A,R15 5寄存器间接寻址寄存器间接寻址 指令操作数的地址事先存放在某个寄存器中,由该寄存器的内容指定操作数地址的寻址方式,称为寄存器间接寻址,为间接寻址指示符。信在信在XXH中中寄存器寄存器可寻址内部RAM128B、外部RAM寻址DPTRMOV A,R0PC操作码程序存储器11100110.内部4765H65H65HR0R0.47A6 6变址寻址(基址寄存器变址寄存器变址寻址(基址寄存器变址寄存器间接寻址)间接寻址)变址间接寻址是将指令中基地址(基址寄存器)和偏移量地址(变址寄存器)的内容相加形成真正的操作数地址。变
9、址寄存器变址寄存器PCDPTRA程序存储器程序存储器65H65H.1000H+30H1030H3065H7 7相对寻址相对寻址 以当前的PC值加上指令中给出的相对偏移量rel而形成转移目的地址的寻址方式。2000H+2H+28HSJMP 28H202AH程序存储器2000H2002H源地源地址址目的地址rel转移指令本身字节数rel是有符号的8位二进制数,用补码表示。相对偏移在127128字节单元之间。寻址空间及举例 寻址方式 存储器空间 寄存器寻址 R0R7、A、B、Cy(位)、DPTR直接寻址 内部数据存储器00H7FH字节单元 特殊功能寄存器寄存器间接寻址 内部数据存储器(R1、R0)外
10、部数据存储器(R1、R0、DPTR)立即数寻址 程序存储器(操作常数)变址间接寻址 程序存储器(A+DPTR、A+PC)相对寻址 程序存储器(修改了PC值)位寻址 内部数据存储器及特殊功能寄存器中某 些单元位 表3-1 每一种寻址方式可涉及的存储器空间 判断下列指令各操作数的寻址方式(1)MOV A,#65H(2)MOV R1,65H(3)MOV 30H,R2(4)MOV C,20H(5)DJNZ R2,LOOP(6)MOV 60H,R1(7)MOVC A,A+PC 寄存器寻址变址寻址直接寻址寄存器间接寻址寄存器寻址相对寻址位寻址位寻址直接寻址寄存器寻址寄存器间接寻址直接寻址寄存器寻址立即数寻址