第6讲+单片机指令系统.pptVIP

  • 3
  • 0
  • 约4.35千字
  • 约 25页
  • 2019-09-06 发布于广东
  • 举报
第6讲(2010-09-26) 10-11第1学期第4周 汽车单片机 1.指令系统简介; 2.寻址方式; 3.指令系统; 4.汇编语言程序设计; 5.程序设计实例; 第3章 MCS-51指令系统及汇编语言 复习 数据传送类指令 P50~57 片内数据传送指令:MOV 片外数据传送指令:MOVX 程序存储器数据传送指令:MOVC 数据交换指令:XCH,XCHD,SWAP 堆栈操作指令:PUSH,POP 3.3.2 算术运算类指令 (24条) 单字节的加、减、乘、除法指令,都是针对8位二进制无符号数。 执行的结果对Cy、Ac、OV 三种标志位有影响。 但增1和减1指令不影响上述标志。 主要包括 (1)加法(带、不带进位加法、加1、十进制调整); (2)减法(带借位、减1); (3)乘法; (4)除法; 1 加法指令 (1)不带进位加法指令 这类指令所完成的操作是把源操作数(立即数、直接地址单元内容、间接地址单元内容、工作寄存器内容)与累加器A的内容相加,将结果保存在累加器A中。 指令助记符与功能说明如下: 目的操作数 源操作数 功能说明 源操作数寻址方式 ADD A, #data ;(A)←(A)+data 立即寻址 ADD A, direct ;(A)←(A)+(direct) 直接寻址 ADD A, @Ri ;(A)←(A)+((Ri)) 寄存器间接寻址 ADD A, Rn ;(A)←(A)+(Rn) 寄存器寻址 要注意累加器A中的运算结果对各个标志位的影响: (a)如果位7有进位,则置“1”进位标志Cy,否则清“0”Cy (b)如果位3有进位,置“1”辅助进位标志Ac,否则清“0”Ac(Ac为PSW寄存器中的一位) (c)如果位6有进位,而位7没有进位,或者位7有进位,而位6没有,则溢出标志位OV置“1”,否则清“0”OV。 溢出标志位OV的状态,只有在带符号数加法运算时才有意义。当两个带符号数相加时,OV=1,表示加法运算超出了累加器A所能表示的带符号数的有效范围 例 执行指令: MOV A, #0A9H ADD A, #0B8H 对程序状态寄存器的影响如图3.6所示。 运算结果:(A)=61H,CY=1,AC=1,OV=1,P=1,(PSW)=0C5H 带进位加法指令与前述加法指令的区别仅为考虑进位位,其他与加法指令相同。 (2) 带进位加法指令 指令助记符与功能说明如下: 目的操作数 源操作数 功能说明 源操作数寻址方式 ADDC A, #data ;(A)←(A)+data+(C) 立即寻址 ADDC A, direct ;(A)←(A)+(direct)+(C) 直接寻址 ADDC A, @Ri ;(A)←(A)+((Ri))+(C) 寄存器间接寻址 ADDC A, Rn ;(A)←(A)+(Rn)+(C) 寄存器寻址 (3) 增1指令 INC A ;(A)←(A)+1 INC direct ;(direct)←(direct)+1 INC @Ri ;((Ri))←((Ri))+1 INC Rn ;(Rn)←(Rn)+1 INC DPTR ;(DPTR)←(DPTR)+1 例1 设(A)=40H,(41H)=29H,则执行下列指令: INC A ;(A)←40H+1H INC 41H ;(41H)←29H+1H 结果:(A)=41H,(41H)=2AH 例2 设(R0)=56H,片内RAM单元(56H)=0FFH,(57H)=50H,则执行下列指令: INC @R0 ;(56H)←00H INC R0 ;(R0)←57H INC @R0 ;(57H)←51H 结果:(56H)=00H,(R0)=57H,(57H)=51H 例3 执行下述指令序列: MOV DPTR,#2FFEH ;(DPTR)←2FFEH INC DPTR ;(DPTR)←2FFFH INC DPTR ;(DPTR)←3000H INC DPTR ;(DPTR)←3001H 则(DPTR)=3001H (4)十进制调整指令 用于对BCD码十进制数加法运算结果的内容修正。 指令格式: DA A 两个BCD码按二进制相加之后,必须经本指令的调整 才能得到正确的压缩BCD码的和数。 二进制数的加法运算原则并不能适用于十进制数的加法运算,有时会产生错误结果。例如: (a)3+6=9 0011+0101=1001 运

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档