173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机求两个3字节数的和

htxw 2023-03-13 资讯中心 20 ℃

单片机汇编 求N个数的和 程序

;启动入口

ORG 0000H ;复位启动

LJMP START ;

ORG 0100H ;

;

;主程序

START: MOV DPTR,#NUM ;数据区首地址

MOV B,#32 ;32字节求和

CLR A ;

MOV X,A ;清零和存储单元

MOV Y,A

MOV Z,A

LOOP: CLR A ;

MOVC A,@A+DPTR ;取当前字节数据

ADD A,X ;累加和

MOV X,A

MOV A,Y

ADDC A,#0

MOV Y,A

INC DPTR ;指向下一单元数据

DJNZ B,LOOP ;加完32字节

JMP $ ;死循环

;

ORG 0200H ;开辟数据区

NUM DB 32,2,5,4,9,220,234,7 ;

DB 11,22,51,42,93,220,234,17 ;

DB 31,32,35,43,39,220,234,37 ;

DB 91,82,45,74,89,220,234,97 ;

X EQU 70H ;和存储单元

Y EQU 71H ;

END ;

51单片机汇编三字节加法

简单,不用循环结构。

MOV A, 40H

ADD A, 43H

MOV 50H,A

MOV A, 41H

ADDC A, 44H

MOV 51H,A

MOV A, 42H

ADDC A, 45H

MOV 52H,A

MOV 20H.0,C

;完

单片机 用汇编语言编写三个字节数的相加的程序,要用堆栈保护,急!!!!!

堆栈保护?用中断来做三个字节数的相加是吧?我只能给你说下此程序的整个流程。

1. 进行现场保护,保存工作寄存器,状态寄存器值等中断中用到的寄存器。

2. 将求和用的寄存器(至少4个字节)清零;

3. 将最低字节被加数送入工作寄存器,加数最低字节与工作寄存器相加,结果存在工作寄存器;

4.工作寄存器内容送入和的最低字节,如有进位和的第2字节加1;

5. .将第2字节被加数送入工作寄存器,和的第2字节与工作寄存器相加,结果存在和的第2字节, 如有进位,和的第3字节加1;

6. 将第2字节加数送入工作寄存器,和的第2字节与工作寄存器相加,结果存在和的第2字节,.如有进位和的第3字节加1;

7..将第3字节被加数送入工作寄存器,和的第3字节与工作寄存器相加,结果存在和的第3字节, 如有进位,和的第4字节加1;

8. 将第3字节加数送入工作寄存器,和的第3字节与工作寄存器相加,结果存在和的第3字节,.如有进位和的第4字节加1;

9. . 恢复现场,恢复工作寄存器,状态寄存器值等中断中用到的寄存器。

51单片机 三字节加法程序

首先:R1+R4 和 R2+R5 两个值都大于单字节最大值FF导致存储在单字节寄存器中溢出,导致高字节的数据丢失。

其次:楼主在将R1、R2存放到中间寄存器的时候中间寄存器A应该为16位寄存器才不会丢失高字节的数据。

具体的程序编写,相信楼主经过提示一定能自行解决,这样提高也是最大的。

51单片机汇编程序,将存放在内部RAM起始地址为30H和40H的两个3字节无符号数相加...

;启动入口

ORG 0000H ;复位启动

LJMP START ;

ORG 0100H ;

;

;主控程序

START: MOV A,30H

ADD A,40H

MOV 70H,A

MOV A,31H

ADDC A,41H

MOV 71H,A

MOV A,32H

ADDC A,42H

MOV 72H,A

ADDC A,#0

MOV 73H,A

JMP $

END ;

单片机求两个3字节数的和的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:单片机求两个3字节数的和

<