
imull/mull:單運算元 64 位乘法 (有號/無號)cltd:%eax 符號擴展到 %edxidivl/divl:64 位除法,商存 %eax、餘數存 %edx%eax%edx,低 32 位 → %eaximull:有號乘法,先符號擴展被乘數再相乘,截斷 64 位mull:無號乘法,純位元相乘0x3 × 0x82345600 = 0xFFFF_FFFE_869D_0200 (64 位) %edx = 0xFFFF_FFFE (高 32 位) %eax = 0x869D_0200 (低 32 位) 僅看 %eax 有號值 = -2036530688 (溢出) 完整 64 位有號值 = -6331497984

%eax 最高位為 0 → %edx 清 0;最高位為 1 → %edx 置全 1 (32 個 1)。為 idivl 準備被除數高位。
%edx:%eax 組成 64 位值%eax,餘數 → %edxidivl:有號除法,執行前自動符號擴展 (相當 cltd)divl:無號除法0x82345600 ÷ 0x3 = 商 0xD6117200, 餘數 0x0 %eax = 0xD6117200 %edx = 0x0

理解 32 位寄存器如何協作支援 64 位運算,強化 C 語言與組合語言對應分析能力。