------------------BC31编译的代码为何总使用IMUL?---------------------
有代码 unsigned b1=40000;
unsigned c1=40000;
long d1=b1*c1;
编译得到
;
; unsigned b1=40000;
;
fwait
mov word ptr [bp-46],-25536
;
; unsigned c1=40000;
;
mov word ptr [bp-48],-25536
;
; long d1=b1*c1;
;
mov ax,word ptr [bp-46]
imul word ptr [bp-48]
mov word ptr [bp-50],0
mov word ptr [bp-52],ax
明明是无符号数乘法,为何使用IMUL?这样能得到正确答案吗?
难道40000*40000==-25536*(-25536)??
另外,在汇编中的立即数是否都按带符号数识别?
写 MOV AX,40000 行吗?
多谢指教!!