1. 什么是指令?
指令是指示CPU完成一定操作的命令。
2. 指令的2种表示方式
1)对人:用有意义的符号(助记符)表示,称为汇编指令。2)对CPU:二进制数表示,称为机器码。
3. AT89S51单片机指令系统概况
1)使用MCS-51指令系统,共111条
2)指令分类
按机器码字节分,分三种:
(1)单字节指令49条;
(2)双字节指令45条;
(3)三字节指令17条。
按执行时间来分,分三种:
(1)1个机器周期的指令64条;
(2)2个机器周期指令45条;
(3)4个机器周期——如乘法指令
二、指令格式
1)指令格式:指令的表示规则。
2)汇编指令的基本格式:由操作码和操作数构成。
操作码——指令进行什么操作(必有)
操作数——指令操作的数据
①操作数分为:
源操作数:被操作的数据
目的操作数:数据操作后存储的目的地
②操作数可以为没有、1个、2个或多个,由操作码决定。
③多个操作数用逗号间隔,目的操作数在前。
例:MOV A,#00000011B
MOV:一种操作码,表示数据传送操作。
#00000011B:源操作数
A:目的操作数
3)机器码指令基本格式
每条机器码指令由若干字节构成:
(1)单字节:操作码和操作数用一个字节二进制数表示。
例:ADD A, R1
00101001 (29H)
(2)双字节:一个字节为操作码,另一个字节是操作数。
例:MOV A,#00000011B
01110100 (74H)
00000011 (03H)
(3)三字节:操作码占一个字节,操作数占二个字节。
(一)什么是寻址方式?
是指令中指明操作数的具体方式。
例MOV A, R1
(二)7种寻址方式
1.寄存器寻址方式
以寄存器符号指明操作数为寄存器的内容(寄存器中存储的数据)。
例如:MOV A,R n;(R n)→A,n =0~7
寄存器寻址方式中可以使用哪些寄存器符号?
1)通用工作寄存:R0~R7,共4组
2)部分特殊功能寄存器,产用的如如累加器A、寄存器B以及数据指针寄存器DPTR。
适用情况:指令中指明可使用的寄存器符号。
(二)7种寻址方式
2.直接寻址方式
以地址指明操作数为该地址指明的存储单元中存储的内容(简称该地址中的内容)。
例如:MOV A,40H ;(40H)→A
适用情况:指令表示中“direct”指示用直接寻址方式。
例如:MOV A,direct
例如:MOV direct1,direct2
MOV 42H,62H ;(62H)→42H
直接寻址方式可以使用哪些地址?
1)片内RAM中128个单元的地址,00H-7FH
2)特殊功能寄存器地址,可用寄存器符号代替,例如PSW寄存器地址D0H用PSW代替
例MOV 0D0H,40H 即MOV PSW,40H
3.寄存器间接寻址方式
以“@寄存器符号”指明以寄存器中的内容作为数据存储器地址,该地址中的内容为操作数。例如:MOV A,@R0 ;( (R0) )→A
适用情况:指令表示中“@寄存器符号” 指示用寄存器间接寻址方式。
例如:MOV A,@Ri ;i=0或1 ( (Ri) )→A
4.立即数寻址方式
以“#数据”指示操作数为#后面的数据。
例如:MOV A,#40H ;40H→A
#后的数据称为立即数(操作数直接在指令中给出)
适用情况:指令表示中“#data”或“#data16”指示用立即数寻址方式。
例如:MOV A,#data ;data→A
注意:立即数是常数,与指令一起存放在程序存储器中,第一个字节是操作码,第二字节是立即数。
5.基址寄存器加变址寄存器间址寻址方式
以@A+DPTR或@A+PC指明
以2个寄存器的内容相加后的值作为程序存储器地址,该地址中的内容作为操作数。
适用情况:能使用本寻址方式的指令有3条:
MOVC A,@A+DPTR
MOVC A,@A+PC 基址寄存器:DPTR、PC
变址寄存器: A
JMP A,@A+DPTR
例:(A)=05H,(DPTR)=0400H
MOVC A,@A+DPTR ;(0405H)→A
6.相对寻址方式
7.位寻址方式:
以位地址指示操作数为位地址中的内容。
例如:MOV C,40H ;(40H)→C
适用情况:指令表示中“bit ” 指示用位寻址方式
例如MOV C,bit
可以使用哪些位地址?
位寻址的常用表示方法:
1)直接使用位地址:00H~FFH
2)位名称的表方法例如:RS0、RS1
3)字节地址加数据的表示方法例如:0D0H.3 PSW.3
(三)掌握寻址方式的目的
使用指令时,能够正确使用寻址方式来指明操作数。
(四)如何选择寻址方式?
每条指令适用一定的寻址方式。
例指令:源操作数寻址方式:
MOV A,R n 寄存器寻址
MOV A,direct 直接寻址
MOV A,@Ri 寄存器间距寻址
MOV A,#data 立即数寻址
MOVC A,@A+DPTR 基址寄存器加变址寄存器间址寻址
MOV C,bit 位寻址
四、AT89S51指令系统分类介绍
1. 共111条指令,按功能分为五类:(1)数据传送类(28条)
(2)算术运算类(24条)
(3)逻辑操作类(25条)
(4)控制转移类(17条)
(5)位操作类(17条)
2. 描述指令格式和作用的符号P47