第七讲 数据传送类指令 教学方法: 讲授法 授课时数: 2学时 教学目的: 1、熟悉数据传送的三种方式及特点 2、熟悉ROM数据传送(查表) 3、熟练掌握RAM数据传送 教学重点: RAM数据传送 教学难点: 堆栈操作指令、查表指令 教学环节: 组织教学: 考勤 复习提问:1、MCS-51系列指令格式? 2、六种寻址方式分别是什么? 引入新课:§3-2 数据传送类指令 一、内部RAM数据传送类 1、一般数据传送指令 回忆前述操作数描述符:A,direct,Rn,@Ri,#data,DPTR等。 经排列组合可写出下列指令: MOV A,Rn ;(A) (Rn)以下类似。 MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri, direct MOV @Ri,#data MOV DPTR,#data16 ;唯一的16位数据传送指令。 上述指令不影响任何标志位,但PSW的P位除外。 注意:MOV Rn,Rn MOV @Ri, @Ri MOV Rn, @Ri MOV #data, A 等指令是非法指令。 2、栈操作指令 PUSH direct POP direct 不影响任何标志位。 PUSH direct 指令执行中,机器自动进行两步操作: (1)(SP) (SP)+ 1 (2)((SP)) (direct) 例1、设(SP) = 09H,(DPTR)= 0123H,分析: 执行 PUSH DPL PUSH DPH 后,各单元中的内容。 POP direct 指令执行中,机器也自动进行两步操作: (1)(direct) ((SP)) (2)(SP) (SP)- 1 例2、设(SP)= 0BH,(0BH)= 01H,(0AH)= 23H 执行 POP DPH POP DPL 后,各单元中的内容。 结论:1)PUSH 与 POP 操作过程刚好相反; 2)进、出栈规则: 先进后出,后进先出。应注意指令书写先后顺序; 3)可用于“保护现场,恢复现场”。 3、字节交换指令 XCH A,Rn XCH A,direct 整字节交换 XCH A,@Ri XCHD A,@Ri SWAP A 半字节交换 不影响任何标志位。 二、 外部RAM数据传送 MOVX A,@Ri MOVX A, @DPTR MOVX @Ri, A MOVX @DPTR,A 执行过程中会使/WR、/RD有效。 例3、试编写一程序段,实现将外RAM 0FAH单元中的内容传送到外RAM 04FFH单元中。 解: MOV DPTR,#04FFH MOV R0,#0FAH MOVX A,@R0 MOVX @DPTR, A 三、 查表指令 与ROM之间的数据传送。 MOVC A,@A + DPTR MOVC A, @A + PC 执行后会使/PSEN有效。 MOVC 含义是传送常数。 以DPTR 为基地址的指令,可在ROM 的64KB范围内查表; 而以PC为基地址的指令只能在(PC)+ 1为中心上、下256B范围内查表。 例4、设(A)= 一个BCD码常数,试用查表法获得其相应的ASCII码。 解法I: MOV DPTR,#TAB MOVC A,@.A+DPTR · · · TAB:DB 30H DB 31H DB 32H,33H,34H,35H ······ 解法II: MOVC A,@A+PC TAB;DB 30H,31H,32H,33H DB 34H,35H,36H,37H ······ 小结: 数据传送类指令有几种类型? 是否影响标志位? 版书设计 一、内部RAM数据传送 1、……. 2、…. 3、 三、查表指令 1、 2、……. 3、…….  二、外部RAM数据传送 1、主电源(VCC 、VSS) 2、外接晶振 …. 小结: 1、…….. 2、……. . 作业: