[信息与通信]第3章-单片机技术MCS-51指令系统
第3章MCS-51指令系统 3.1 程序状态字 程序状态字(program status word,PSW)包含反映当前CPU状态的若干状态位。 MCS-51单片机指令系统共有指令111条, 分为5大类 数据传送类指令(29条) 算术运算类指令(24条) 逻辑运算及移位类指令(24条) 控制转移类指令(17条) 位操作类指令(17条) 3.2 寻 址 方 式 3.2.1 立即寻址 某些指令用包含在指令中的数据作为源操作数,这些操作数称为立即操作数(简称立即数)。常数的值能跟在程序存储器的操作码后,例如: MOV A,#100 指令:MOV DPTR,#DATA16 MOV DPTR,#1234H 3.2.2 寄存器寻址 指令: MOV A,Rn 操作码: 11101rrr 3.2.3 直接寻址 3.2.4 隐含寻址 3.2.5 间接寻址 在间接寻址中,指令规定包含操作数地址的寄存器。内部RAM与外部RAM都能间接寻址。 8位地址使用R0,R1作间接寻址寄存器 16位地址使用DPTR作间接寻址寄存器 对于8位地址,地址寄存器可以是所选择的寄存器体的R0或R1或堆栈指针。对于16位地址,其地址寄存器只能是“数据指针”寄存器DPTR。例如指令: MOV A,@Ri 片外RAM寻址用 MOVX A,@Ri MOVX A,@DPTR 3.2.6 变址寻址 只有程序存储器能用变址寻址方式访问且只能用于读。此寻址方式用于在程序存储器中查找表项。一16位基寄存器(DPTR或程序计数器PC)指向表的基地址,而累加器作为表的入口偏移。在程序存储器中的表项的地址由累加器数据加至基指针形成。 这种寻址方式的指令只有三条: MOVC A,@A+PC MOVC A,@A+DPTR JMP @A+DPTR 变址寻址示意图如图3-6所示。 表3-1 寻址方式小结 续表 3.3 数 据 传 送 3.3.1 指令中的常用符号 Rn -- 当前选择的寄存器体的寄存器R7~R0。 Direct -- 8位内部的数器单元的地址。只能是一内部RAM的数据单元(0~127)或一SFR(即I/O端口、控制寄存器、状态寄存器等(128~255))。 @Ri -- 通过寄存器R1或R0间接寻址的8位内部RAM单元(0~255)。 #data -- 包含在指令中的8位常数。 #data16 -- 包含在指令中的16位常数。 addr16 -- 16位目的地址。由LCALL与LJMP使用。能分支至64KB程序存储器地址空间内的任一处。 addr11 -- 11位目的地址。由LCALL与LJMP使用。分支在程序存储器的同一2KB页内作为下一条指令的第一字节。 rel -- 带符号的8位偏移字节。由SJMP与所有条件跳转指令使用。范围是相对于下一条指令的第一个字节的?128~+127。 bit -- 在内部RAM或特殊功能寄存器中的直接地址位。 ← -- 表示数据传送方向。 + -- 代表算术“加法”运算符。 - -- 代表算术“减法”运算符。 × -- 代表算术“乘法”运算符。 ÷ -- 代表算术“除法”运算符。 ∧ -- 代表逻辑“与”运算符。 ∨ -- 代表逻辑“或”运算符。 ⊕ -- 代表逻辑“异或”运算符。 / -- 出现在位地址前面时,表示将对应位操作数取反。 @ -- 出现在特定寄存器前面时,表示被用作间接寻址寄存器。 # -- 用在指令中的操作数前面时,表示该操作数为一个立即数,即常数。 3.3.2 内部RAM 2.内部RAM单元之间的数据传送指令: 内部RAM的数据传送指令共五条: MOV direct2,direct1 ;direct2 (d
原创力文档

文档评论(0)