cpubbs 发表于 2004-11-26 01:58:03

多字节BCD码减法[转]

入口条件:字节数在R7中,被减数在中,减数在中。
出口信息:差在中,最高位借位在CY中。
影响资源:PSW、A、R2、R3    堆栈需求:6字节

BCDB: LCALL NEG1 ;减数十进制取补
LCALL BCDA ;按多字节BCD码加法处理
CPL C ;将补码加法的进位标志转换成借位标志
MOV F0,C ;保护借位标志
LCALL NEG1 ;恢复减数的原始值
MOV C,F0    ;恢复借位标志
RET
NEG1: MOV A,R0 ;十进制取补子程序入口
XCH A,R1 ;交换指针
XCH A,R0
LCALL NEG ;通过实现取补

MOV A,R0
XCH A,R1 ;换回指针
XCH A,R0
RET
页: [1]
查看完整版本: 多字节BCD码减法[转]