; 32位 ×32位 乘法, 结果 64位 。 这是有别于你题目的另一种算法,供参考 !
CODE SEGMENT
ASSUME CS:CODE
X DD 111111
DD 0 ; 增加 这个是为了左移时有空间
Y DD 11111
Z DD 2 DUP(0)
START: PUSH CS
POP DS
PUSH CS
POP ES
MOV CX,32
@0:
SHR WORD PTR Y+2,1
RCR WORD PTR Y,1
JNC @1
MOV AX,WORD PTR X
ADD WORD PTR Z,AX
MOV AX,WORD PTR X+2
ADC WORD PTR Z+2,AX
MOV AX,WORD PTR X+4
ADC WORD PTR Z+4,AX
MOV AX,WORD PTR X+6
ADC WORD PTR Z+6,AX
@1:
SHL WORD PTR X,1
RCL WORD PTR X+2,1
RCL WORD PTR X+4,1
RCL WORD PTR X+6,1
LOOP @0
MOV AH,4CH
INT 21H
CODE ENDS
END START