BigTows Asked:2020-12-21 23:19:31 +0800 CST2020-12-21 23:19:31 +0800 CST 2020-12-21 23:19:31 +0800 CST ASM iDIV 刀片 772 //帕斯卡 NumX:=-40; //汇编 MOV EAX,NumX MOV ECX,4 IDIV ECX MOV IntPart, EAX 为什么 IntPart 返回 1073741815? delphi 1 个回答 Voted Best Answer Harry 2020-12-21T23:58:54+08:002020-12-21T23:58:54+08:00 因为该值是无符号的。 您已将EAX-40 转换为一个无符号的 4 字节整数,它给出了FFFFFFD8十进制值 , 或 4294967256。 除以 4 得到3FFFFFF6,即十进制的 1073741814。 您的代码应如下所示: MOV EAX,NumX CDQ MOV ECX,4 IDIV ECX MOV IntPart, EAX 被遗忘EAX的显着扩展......EDX:EAX
因为该值是无符号的。
您已将
EAX
-40 转换为一个无符号的 4 字节整数,它给出了FFFFFFD8
十进制值 , 或 4294967256。除以 4 得到
3FFFFFF6
,即十进制的 1073741814。您的代码应如下所示:
被遗忘
EAX
的显着扩展......EDX:EAX