单片机汇编 求N个数的和 程序
用C51单片机的汇编语言求一组数的累加和谢谢地址分配在正确的前提下任意,最好有一些注释,写得好提高奖赏...
用C51单片机的汇编语言求一组数的累加和
谢谢
地址分配在正确的前提下任意,最好有一些注释,写得好提高奖赏 展开
谢谢
地址分配在正确的前提下任意,最好有一些注释,写得好提高奖赏 展开
1个回答
展开全部
;启动入口
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 ;
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 ;
追问
最后一段是什么意思?谢谢了
追答
最后一段就是在程序存储区从0200H开始定义32字节数据,再在内部RAM定一两个变量X、Y,只是分别是70H、71H。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询