1、 第三章 MCS-51指令系统3.1 指令系统概述3.2 寻址方式3.3 指令系统1MCS-51系列单片机指令基本情况51系列单片机 指令集含有 111条 指令 每条指令在程序存储器 ROM中占据一定 空间 ,以字节为单位按指令 所占字节数 分类:单字节 (49条 );双字节 (46条 );3字节 (16条 )每条指令在执行时要花去一定的 时间 ,以机器周期为单位按指令 执行时间 分类:单周期 (64条 );双周期 (45条 );4周期 (2条 )按指令的 功能 分类,可分为 5大类:数据传送类( 29条);算术运算类( 24条)逻辑运算及移位类( 24);控制转移类( 17条)位操作类( 1
2、7条) 第三章节 MCS-51指令系统2ASM-51指令格式51系列单片机 采用 ASM-51指令格式 ,格式如下 : 标号 :操作码 目的操作数 ,源操作数 ;注释 其中包含 :方括符 表示可选项标号 代表指令所在地址, 1-8个字母 /数字, “:”结尾操作码 就是指令功能助记符,指令实体目的操作数源操作数注释 ,以 “;”开头3第一节 MCS-51系列单片机寻址方式寻址方式 :计算机指令中 操作数 (按地址 )获取的方式 MCS-51系列单片机 提供了 7种 寻址方式 ,如果一条指令中包含多个操作数 ,就可能用到 一种以上 的寻址方式1、立即寻址2、直接寻址3、寄存器寻址4、寄存器间接寻
3、址5、变址寻址6、相对寻址7、位寻址41、 立即寻址 (一 )在指令中直接给出操作数的寻址方式称为立即寻址。这个操作数叫立即数,如指令:MOV A, #3AH该指令是将 立即数 3AH送 累加器 ,由于 MCS-51单片机的片内存储器是 8位存储器,因此立即数一般为 8位二进制数。在 MCS-51的指令系统中,用 #来识别立即数。74HA操作码立即数程序存储器PCPC+1 3AH3AH51、立即寻址 (二 )在有的指令中,也会用到 16位立即数,如:MOV DPTR, #0123H该指令是将 16位 立即数 0123H送 数据指针 DPTR(用于对 16位地址的存储器寻址 ), DPTR由 两
4、个 特殊功能寄存器 DPH和DPL组成,在后面的 寻址方式 中会使用到 DPTR。90H01H23HPCPC+1PC+2操作码高位立即数低位立即数程序存储器 SFRDPHDPL62、直接寻址在指令中直接给出 操作数地址 的寻址方式称为 直接寻址 ,直接寻址何以寻址 特殊功能寄存器、内部 RAM(128字节 )和位地址 ,如:MOV A, 70H; A(70H)该指令是将 RAM单元 70H(地址 )的内容送 累加器 。74H70HPCPC+1操作码直接地址程序存储器内部 RAM70HAXXXX73、寄存器寻址在指令的 操作码 中包含了某一 工作寄存器 的 地址 (Rn: R0R7) ,而 操作
5、数 则 存放在该寄存器 中,如:MOV A, R5; A(R5)该指令是将 R5的内容送 累加器 。101PC 操作码程序存储器 内部 RAMR5AXXXXR6R7110184、 寄存器间接寻址在指令的 操作码 中包含了某一 工作寄存器 的 地址 (可用作地址指针的工作寄存器是 Ri: R0、 R1), 而 操作数地址 则 存放在该寄存器 中,如:MOV A, R1; A(R1)该指令是将 R1的内容送作为地址,将该地址所对应的 RAM单元的内容送 累加器 。1PC 操作码程序存储器内部 RAMR1 A XX68H111001 XX68H95、 变址寻址将 PC或 DPTR的值作为基地址,将 Acc的值作为变址地址,二者向加得到的值作为操作数的地址,如:MOV A, A+DPTR; A(A)+(DPTR)这种寻址方式一般用于常数表, DPTR的内容为表头地址 , Acc的内容就是数据在表中的位置。PC 操作码程序存储器 SFRA10010011 1EH02HALU030FH XXDPHDPL F1H02F1H02F1H+1EH=030FHXX10