51单片机,使用keil软件,4字节加法或减法子程序

四个字节加上四个字节,和应该是4~5个字节。

本程序,需要三个地址指针,但是一般只有两个(R0和R1)可以用;如果换用工作区,就比较麻烦了。下面使用B充当“和”的地址指针,RESULT + 4单元,充当加数2的地址指针。

程序如下:

RESULT equ 30H ;和数的地址

ORG 0000H

;实验数据如下:

MOV 20H, #22H ;加数1

MOV 21H, #33H

MOV 22H, #44H

MOV 23H, #0F3H

MOV 24H, #12H ;加数2

MOV 25H, #34H

MOV 26H, #56H

MOV 27H, #78H

MOV R0, #20H ;给定地址

MOV R1, #24H

LCALL _4_JIA_4 ;调用加法子程序

NOP

SJMP$

_4_JIA_4:

MOV RESULT + 4, R1 ;保存加数2地址

MOV B, #RESULT ;保存和的地址

CLR C

MOV R2, #4

LOOP:

MOV A, @R0

INC R0

MOV R1, RESULT + 4

ADDC A, @R1 ;加上加数2

INC R1

MOV RESULT + 4, R1

MOV R1, B

MOV @R1, A ;保存和数

INC R1

MOV B, R1

DJNZ R2, LOOP

CLR A

ADDC A, #0

MOV RESULT + 4, A ;保存第五字节

RET

减法子程序,与上面的加法子程序雷同,只要把ADDC换成SUBB即可改为减法子程序。请楼主自行改写。