本帖最后由 edmund1234 于 2018-9-2 14:17 编辑
以51为例, Z = X * Y , 这是UNSIGNED, 不检测OVERFLOW
MOV A,X_0
MOV B,Y_0
MUL AB
MOV Z_0,A ; Z_01 = X_0 * Y_0
MOV Z_1,B
;
MOV A,X_0
MOV B,Y_1
MUL AB
ADD A,Z_1
MOV Z_1,A
MOV A,B
ADC A,#0
MOV Z_2,A ; Z_12 += X_0 * Y_1
;
MOV A,X_1
MOV B,Y_0
MUL AB
ADD A,Z_1
MOV Z_1,A
MOV A,B
ADC A,Z_2
MOV Z_2,A ; Z_12 += X_1 * Y_0
;
MOV A,X_1
MOV B,Y_1
MUL AB
ADD A,Z_2
MOV Z_2,A
MOV A,B
ADC A,#0
MOV Z_3,A ; Z_23 += X_1 * Y_1
;
" " " " ; Z_34 += X_1 * Y_2
" " " " ; Z_34 += X_2 * Y_1
" " " " ; Z_45 += X_2 * Y_2
" " " " ; Z_56 += X_2 * Y_3
" " " " ; Z_56 += X_3 * Y_2
" " " " ; Z_67 += X_3 * Y_3
|