8951单片机指令系统.pptx

第三章 指令系统;3.1 汇编语言;3.1 汇编语言;3.1 汇编语言;3.1 汇编语言;3.1 汇编语言;双字节指令(45条):分两种情况: ①指令中含有一个操作数.例如: 汇编格式: MOV A , #data 机器码: data 或: 78H、#data ;指令中含有一个8位的操作数的地址。 汇编格式: MOV A ,direct 机器码: E5H、direct 如: MOV A ,20H ;将RAM 20H中的数据送A;三字节指令(17条): ①指令中的操作数为双字节。 MOV DPTR,#data16 1001000B,data15-8,data7-0 ②指令中分别包含1个字节的操作数和1个字节的操作数地址。MOV direct ,#data 举例:MOV 20H,#0FFH ;;所谓寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法。 正确的理解、掌握寻址方式,是学习、使用指令的关键。 在51系列单片机中,共使用了七种寻址方式。; 1,寄存器寻址 2,直接寻址 3,立即数寻址 4,寄存器间接寻址 5,变址寻址 6,相对寻址 7,位寻址;1、寄存器寻址;例如:MOV A,R7 ;将寄存器R7中的内容送累加器A中 MOV 20H,R0 ;将寄存器R0中的数据送内存20H单元 【特点】:寄存器寻址方式的指令大多是单字节指令。寄存器的 3位代码与操作码OP共同占用一个指令字节。 以MOV A,R7为例,使用R7寄存器,所以rrr=111,既指令的机器码为:0EFH;2 直接寻址;使用直接寻址应注意的三个问题:;2,当直接地址时在工作寄存器区中时,可以使用两种寻址方式来访问。如: MOV A,00H ;将RAM中00H单元数据送累加器A MOV A,R0 ;将工作寄存器R0的内容送累加器A 这里使用了不同的寻址方式,其指令的结构也不相同。 前者是0E5H)00H) 双字节。 后者的机器码是0E8H) 单字节; 在物理结构上,R0与RAM的00H单元恰好是同一单元,所以不同的指令而执行结果是一样的。 类似的还有累加器A: INC A 寄存器寻址方式(单字节); INC 0E0H 直接寻址方式(双字节)。 ;3,在指令系统中:字节地址与位地址是完全不同的概念。 前者用direct表示,而后者用bit 表示,但在指令中都是用16进制表示的数。 如: MOV A,20H ;将RAM的20H单元内容送A MOV C,20H ;将位寻址区中的位地址为20H位内容送 PSW 中的Cy中。;3 立即寻址;【注意】: MOV A,#30H MOV A,30H 两者的区别。 立即数寻址的指令长度为2或3个字节。;4 寄存器间接寻址; MOV R0,#30H ;立即数送R0寄存器 MOV A,@R0 ;从RAM的30H单元取数送累加器A 【注意】 MOV A,@R0 和 MOV A,R0 指令的区别。;使用间接寻址时应注意的几个问题:;间址可访问片内RAM,也是访问片外RAM唯一的方式。 ①对于片内RAM使用Ri寄存器,寻址范围00H~FFH; MOV A,@Ri 访问内部RAM单元 ②对片外RAM可以: 使用Ri。寻址范围为00H~FFH(256字节); 使用DPTR做间址寄存器。寻址范围为0000H~FFFFH (64K)。 MOVX A,@Ri ;访问外RAM单元,范围256字节MOVX A,@DPTR ;访问外RAM单元,范围64K字节 【注意】: Ri、DPTR应事先装入地址。;间址方式不能访问SFR单元。如下面的程序是错误的: MOV R1 , #80H MOV A , @R1 因为80H为SFR的物理地址 对于SFR只能采用直接寻址的方式访问。;5 变址寻址;变址寻

文档评论(0)

1亿VIP精品文档

相关文档