分享

实验二:排序、加法(80C51单片机汇编语言编程)

 共同成长888 2016-05-28
有两个长度为10H的数,分别放到30H和40H为首地址的存储器中(低字节),求其对应之和,放在50H为首地址的存储器中(处理进位位),然后按升序排列,放在70H为首地址的存储器中
汇编程序:
ORG 0000H;设置初始位置
START:MOV R0,#30H
      MOV R1,#50H
      MOV R3,#10H
CF:MOV A,@R0;将30H的数放在50H
   MOV @R1,A
   INC R0
   INC R1
   DJNZ R3,CF
 
   MOV R0,#50H
   MOV R1,#40H
   MOV R3,#10H
   CLR C
JIA:MOV A,@R0;将两个数求和
    ADDC A,@R1
    MOV @R0,A
    INC R0
    INC R1
    DJNZ R3,JIA
 
    CLR A;查看最后一个数是否有进位位
    ADDC A,#00H
    MOV 60H,A
 
   MOV R0,#50H;将50H的数放到70H
   MOV R1,#70H
   MOV R3,#10H
ZY:MOV A,@R0
   MOV @R1,A
   INC R0
   INC R1
   DJNZ R3,ZY
 
   MOV DPL,#0FH;用DPL计数
AA:MOV R0,#70H
   MOV R1,#71H
   PUSH DPL;保护DPL
BB:CLR C
   MOV A,@R0
   SUBB A,@R1
   JC CC;第一个数小于第二个数跳转
   MOV A,@R0
   XCH A,@R1
   MOV @R0,A
CC:INC R0
   INC R1
   DJNZ DPL,BB;减一不等于零跳转(内循环)
   POP DPL
   DJNZ DPL,AA;减一不等于零跳转(外循环)
   SJMP $
   END

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多