Assembly TASM:负数模
当我这样做时,例如,-1%3,我希望结果是2 当我执行以下TASM指令时,我得到了一个意外的结果:Assembly TASM:负数模,assembly,modulo,tasm,Assembly,Modulo,Tasm,当我这样做时,例如,-1%3,我希望结果是2 当我执行以下TASM指令时,我得到了一个意外的结果: mov ax, -1 xor bh, bh mov bl, 3 idiv bl ; ah = FF (I expected 02), al = 00 声明: 余数的符号始终与余数的符号相同 股息 有一些关于带符号余数的陷阱的信息 一种可能的解决方法是使用div而不是idiv,和/或手动跟踪符号。实际上,它使用了一个事实,即您使用div声明了关于余数的符号,并且有符号的红利i在调试器中得到了意外
mov ax, -1
xor bh, bh
mov bl, 3
idiv bl ; ah = FF (I expected 02), al = 00
声明:
余数的符号始终与余数的符号相同
股息
有一些关于带符号余数的陷阱的信息
一种可能的解决方法是使用
div
而不是idiv
,和/或手动跟踪符号。实际上,它使用了一个事实,即您使用div声明了关于余数的符号,并且有符号的红利i在调试器中得到了意外的结果:S,因此绝对值为:)