本帖最后由 qwerghf 于 2016-9-22 21:56 编辑
对于单片机来说BCD加减转换很麻烦,对于MSP430来说 ,正好有相应的汇编指令可以简化,分享给大家。
BCD加:
NAME data_bcdadd
PUBLIC data_bcdadd
EXTERN data_l,data_h;Stack pointer variable declared in C file
RSEG CODE
data_bcdadd:
;mov SP,&sptr ;Copy the current stack pointer.
clrc
DADD #0100h,&data_l
dadc data_h
ret
END
BCD减:
NAME data_bcdsub
PUBLIC data_bcdsub
EXTERN data_l,data_h,data_temp;Stack pointer variable declared in C file
RSEG CODE
flux_bcdsub:
;mov SP,&sptr ;Copy the current stack pointer.
clrc
MOV #0100h,&data_temp
ADD #6666h,&data_temp
INV &data_temp
SETC
DADD &data_temp,&data_l
JC sub_else
MOV #0001h,&data_temp
ADD #6666h,&data_temp
INV &data_temp
SETC
DADD &data_temp,&data_h
sub_else:
ret
END
|