汇编新手求教关于imul乘法问题
理论上32位数乘32位数结果应该得64位数,高位存在edx,低位存在eax里,然后汇编的结果与理论值不一样....
求高手解惑~~
代码贴上

结果

另外,如果我想在C程序中输入两个整数,然后调用汇编子程序对这两个数求积,在主程序中打印计算结果,那么返回值的问题怎么解决呢?edx:eax是两个值.....
新手各种菜,谢谢各位高手解答。
;#Mode=CON .386 .model flat, stdcall option casemap :none include windows.inc include user32.inc include kernel32.inc include masm32.inc includelib user32.lib includelib kernel32.lib includelib masm32.lib include macro.asm .data? buffer db 100 dup(?) .const szfmt db '%X%X',0Dh,0Ah,0 .CODE START: xor edx,edx mov eax,10000000 mov ebx,10000000 cdq imul ebx invoke wsprintf,addr buffer,addr szfmt,edx,eax invoke StdOut,addr buffer invoke StdIn,addr buffer,sizeof buffer invoke ExitProcess,0 end START