我有这个代码来计算阶乘:
jmp start
; variables
num1 DD 0001h
start: mov cl, al
factorial_loop: ; cx = ax -> 1
mov al, cl
mul num1
; combine dx and ax into num1
mov num1, dx
shl num1, 16
add num1, ax
loop factorial_loop
mov ah, 0
int 16h
ret
在代码的开头,我将 num1 声明为 4 字节变量。假设 num1 分为 2 个字节组:num1(左)和 num1(右)。当我移动这些位时,它们不会从 num1(右)移动到 num1(左)。我该如何解决这个问题?