这就是我到目前为止所得到的。这是32位乘法是32位。我想改进这段代码并计算 x^y。如果您给我一个示例代码,我将不胜感激。此代码使用子程序
例如)4^3=64
ORG 10
LA, LDA AH
SNA //negative skip
BUN LB // if A >= 0
CMA
STA AH
LDA AL
CMA
INC
STA AL
CLA
CIL
ADD AH
STA AH
ISZ C_sign
// if A >= 0
LB, LDA BH
SNA
BUN L0 // if B >= 0
CMA
STA BH
LDA BL
CMA
INC
STA BL
CLA
CLE
ADD BH
STA BH
ISZ C_sign
L0, CLE
LDA BH / load
CIR /
STA BH /
LDA BL
CIR
STA BL
SZE
BUN L1 /
BUN L2 /
/ if E == 1:
L1, LDA CL2 /
ADD AL /
STA CL2 /
CLA /
CIL /
ADD CL /
ADD AH /
STA CL /
CLA
CIL
ADD CH
ADD AH2
STA CH
CLE /
L2, LDA AL / A load
CIL / A *= 2
STA AL / A wo hozon
LDA AH /
CIL / AH = 2*AH + E
STA AH /
LDA AH2
CIL
STA AH2
CLE
ISZ K /
BUN L0 /
LC, LDA C_sign
CIR
SZE
BUN C_nega
FIN,CLA
STA AH2
STA C_sign
STA CL2
HLT
C_nega,LDA CH
CMA
STA CH
LDA CL
CMA
INC
STA CL
CLA
CIL
ADD CH
STA CH
BUN FIN
AH2, HEX 0 / high of A
AH, HEX FFFC / int of A
AL, HEX 0 / decimal of A
BH, HEX FFFC / int of B
BL, HEX 0 / decimal of B
C_sign, HEX 0 /if C_sign % 2 == 1, C is negative
CH, HEX 0 / int of A*B
CL, HEX 0 / decimal of A*B
CL2, HEX 0 / decimal of A*B
K, DEC -32
END