具体程序如下:
CLR C
MOV A, #9AH 做100-22的减法
SUBB A, #22H
ADD A, #55H
DA A
对于86而言,有直接的16位减法指令,所以这个题目的CPU应该是8位单片机,以51单片机为例,先将借位清零,低八位相减法,再高八位带借位减,类似于列式减法运算一样。程序如下:(R3R4-R6R7)=(R3R4)
入口: R3,R4,R6,R7
出口: R3,R4
NSUB :
MOV A,R4
CLR C借位清零
SUBB A,R7;低八位相减
MOV R4,A保存低八位结果
MOV A,R3
SUBB A,R6高八位带借位减
MOV R3,A保存高八位结果
RET
不是,是用被减数加上减数的补码步骤(不是计算机计算的步骤,我想的步骤):
56H求补
01010110B各位取反+1
10101001B+1=10101010B
被减数+减数补码
10010000B+10101010B=[1]00111010B=3AH(最高位舍去)
都是再字节层次上做的运算,所以结果的最高位舍去了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)