第3章 MCS-51指令系统.pptVIP

  • 1
  • 0
  • 约9.26千字
  • 约 36页
  • 2019-09-14 发布于湖北
  • 举报
(3)子程序 ACALL add 11 ; pc ←pc+2, pc压栈,pc10~0← addr 11 LCALL add 16 ; pc ←pc+3, pc压栈,pc15~0← addr 16 RET ; 弹出→pc RETI ; 弹出→pc,0→“优先级激动”触发器 五、位操作 CPL x ; x←x,x≡cy,bit CLR x ; x←0,x≡cy,bit SETB x ; x←1,x≡cy,bit ANL c,bit ; cy←cy∧bit ANL c,bit ; cy←cy∧bit ORL c,bit ; cy←cy∨bit ORL c,bit ; cy←cy∨bit JC rel ; cy=1, 则转,pc←pc+2+rel JNC rel ; cy≠1, 则转,pc←pc+2+rel JB bit,rel ; bit=1, 则转,pc←pc+3+rel JNB bit,rel ; bit≠1, 则转,pc←pc+2+rel JBC bit,rel ; bit=1, 则转,bit←0, pc←pc+2+rel 例1、2个双字节无符号数分别存于R1R0、R3R2中,编程使和存于R2R1R0中。 R1R0 + R3R2 R2R1R0 MOV R1,A MOV A,#0 ADDC A,#0 MOV R2, A SJMP $ END 六、综合举例 ORG 0000H LJMP MAIN ORG 1000H MOV A,R0 ADD A,R2 MOV R0,A MOV A,R1 ADDC A,R3 MAIN: 例2、请编写将片内25H单元中的补码转换成原码的子程序。 分析:片内25H单元中的数D7=0,则不变,否则将其变成绝对值后变成原码。 JNB 25H.7 , L1; 25H.7=0则转到L1 MOV A, 25H ; A←(25H) INC A; A ←A+1 SETB ACC.7; A的最高位置1 L1: RET MOV 25H, A; (25H) ←A CPL A; A ←A 注: 位操作指令的使用, 没有求补指令! 例3、请编写将片内37H为首址的RAM的5单元个的内容送片外数据存储器2000H为首址的存储区中的子程序。 MOV R0, #37H; R0 ←37H MOV R2, #05; R2 ←05 MOV DPTR, #2000H; DPTR ←2000H LL: MOV A, @R0; A ←(R0) MOVX @DPTR, A; (DPTR) ←A INC R0; R0 ←R0+1 INC DPTR; DPTR ←DPTR+1 DJNZ R2, LL; R2 ←R2-1, R2=0, 则转移到LL,否则继续 RET 注: MOV、MOVX和DJNZ指令的使用! 例4.请编写将ACC中的一位十六进制数转换成ASCII码的子程序. MOV R0, A ; R0←A, 保护A中内容,或用PUCH A CLR C ; Cy ←0 SUBB A, #0AH; A ←A-0AH MOV A, R0; A ←R0, 恢复A中内容 JC L1 ; 小于0AH则转到L1, 否则继续 ADD A, #07; A ←A+7, 大于等于0AH加07 L1: ADD A, #30H; A ←A+3

文档评论(0)

1亿VIP精品文档

相关文档