一段汇编不知道什么意思,求解?
__asm
{
movzx eax, word ptr memo
movzx ebx, word ptr memo
mov edx, 0ffffffffh
movzx ecx, word ptr zsync
idiv ecx
neg eax
mov result, ax
}
这段代码就是一个除运算,但是不明白红色部分有什么用?
[解决办法]
edx是用来保存余数的
就是先预先清除一下吧,
是不是你的余数一定为正数,所以预先清除成-1
[解决办法]
DIV、IDIV: 无符号除、有符号除
--------------------------------------------
;它们没有定义对 EFLAGS 的影响
;它们的指令格式:
;DIV r/m ;参数是除数
;如果参数是 r8/m8, 将把 AX 做被除数; 商 -> AL, 余数 -> AH
;如果参数是 r16/m16, 将把 DX:AX 做被除数; 商 -> AX, 余数 -> DX
;如果参数是 r32/m32, 将把 EDX:EAX 做被除数; 商 -> EAX, 余数 -> EDX