首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一段汇编不知道什么意思,求解?解决思路

2012-10-12 
一段汇编不知道什么意思,求解?__asm{movzx eax, word ptr memomovzx ebx, word ptr memomovedx, 0ffffffff

一段汇编不知道什么意思,求解?
__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

热点排行