求!一道关于单片机10位十进制加法子程序的编程题,帮帮忙啊

(3)编写10位十进制加法子程序(十进制数采用压缩BCD码存放)
入口:加数: 24H-20H,低地址放低字节
被加数: 29H-25H,低地址放低字节

要求调用多组数据调试,注意观察PSW的变化,理解DA A指令的含义。

第1个回答  2014-11-02
;
ORG 0000H

MOV 24H, #12H
MOV 23H, #23H
MOV 22H, #34H
MOV 21H, #45H
MOV 20H, #56H ;10位十进制加数:1223344556。

MOV 29H, #33H
MOV 28H, #44H
MOV 27H, #55H
MOV 26H, #66H
MOV 25H, #77H ;10位十进制被加数:3344556677。

MOV R0, #20H
MOV R1, #25H
MOV R2, #5
CLR C
LOOP:
MOV A, @R0
ADDC A, @R1
DA A
MOV @R0, A
INC R0
INC R1
DJNZ R2, LOOP

SJMP $
END
第2个回答  2014-11-02
BCD5: ;5字节BCD 加法子程序
MOV R0,#20H
MOV R1,#25H
MOV R7,#5
CLR C
LOOP:
MOV A,@R0
ADDC A,@R1
DA A
INC R0
INC R1
DJNZ R7 , LOOP ;5字节加完?
RET本回答被网友采纳
第3个回答  2014-11-02
是要汇编的吗本回答被提问者采纳

求!一道关于单片机10位十进制加法子程序的编程题,帮帮忙啊
;ORG 0000H MOV 24H, #12H MOV 23H, #23H MOV 22H, #34H MOV 21H, #45H MOV 20H, #56H ;10位十进制加数:1223344556。MOV 29H, #33H MOV 28H, #44H MOV 27H, #55H MOV 26H, #66H MOV 25H, #77H ;10位十进制被加数:3344556677。MO...

帮忙做些单片机题目
三.读程序,写出每个程序的结果 1. 已知片内RAM中,(20H)=40H,(40H)=22H,(22H)=10H,P1=0CFH.MOV R0,#20H MOV A,@R0 MOV R1,A MOV B,@R1 MOV @R1,P1 MOV P3,P1 执行该程序后,(B)=(22H ),(P3)=(0CFH )。2. 已知:(R3)=0FBH,(R4)=64H CLR C ...

求解单片机编程题目
一、将(0~99)的100个连续十进制数,依次存入首地址为2000H的RAM区的存储单元中去。MOV DPTR, #2000H MOV A, #0 MOV R1, #100 LOOP:MOVX @DPTR, A INC A INC DPTR DJNZ R1, LOOP SJMP 二、定时\/计数器进行初始化编程。MOV TMOD, #01010001B MOV TH1, #(65...

单片机不难的编程题!急
循环3次即可。MOV R0, #50H ;被减数地址 MOV R1, #40H ;减数地址 MOV DPTR, #2000H ;差的地址 CLR C MOV R2, #3 ;循环3次 S_LOOP:MOV A, @R0 ;取 SUBB A, @R1 ;减 MOVX, @DPTR,A ;存 INC R0 INC R1 INC ...

关于单片机的,求帮忙写个程序
} if(key2==0&&flag==0) \/\/只有标记位flag等于0按键才会有效 { flag=1; \/\/这里让其他的按键失效 \/\/这里写相应的程序 } if(key3==0&&flag==0) \/\/只有标记位flag等于0按键才会有效 { flag=1; \/\/这里让其他的按键失效 \/\/这里写相应的程序 } 你的问题不太明确只能帮你这么多 ...

求大神帮忙写一个32位的加法运算程序~~~单片机老师布置的作业...
你没描述你用的是什么单片机啊,如果是32位的单片机那就直接加很简单了,如果是8位51单片机的话那就是如下:ORG 0000H CLR C MOV A,30H\/\/被加数低八位 ADDC A,40H MOV 50H,A\/\/最低八位放于50H MOV A,31H\/\/被加数次低八位 ADDC A,41H MOV 51H,A\/\/次低八位...

单片机试题(A卷--C语言版)谁会做?求帮忙!
二、1. x = 0x000c, y =0x000f, z =0x0114 , a = 0x0045, b = 0x0004。(下班了,有时间再算一下)

用C语言写一个加法运算的代码怎么写?
例子如下:直接编译,程序输出结果中任意输入两个数字,程序执行结果如下图所示:知识扩展:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但...

单片机编程问题(C语言),很入门的问题,明天比赛,急急急!多少分都可以
功能 : 延时子程序,延时时间为 1ms * x 输入 : x (延时一毫秒的个数)输出 : 无 \/ void Delay_1ms(uint x){ uint i;uchar j;for(i = 0; i < x; i++) for(j = 0; j <= 148; j++);} \/ 名称: Display(uchar k)功能: 将参数分成十位、个位分别显示 输入: k (键盘...

...11001100用十进制来表示? 帮帮忙啊? (是否得考虑正负呢?_百度...
换算为十进制时,就是2的N减一次方,逐位相加,比如11=3。如果题目要求正负,才考虑正负。(0代表正数,1代表负数)

相似回答