首页
社区
课程
招聘
IMUL的操作方法
发表于: 2005-2-5 12:57 4314

IMUL的操作方法

2005-2-5 12:57
4314
已知:
EAX B81702E1
EDX 73D43580 MFC42.73D43580
ESI 02C7B60D
那么在执行这条指令:
IMUL ESI
我的理解是将eax*esi,然后将所得的后八位放入eax,那么寄存器edx该如何变动呢?
望不吝赐教,多谢。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 398
活跃值: (1078)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
2
EDX:EAX <- EAX * ESI (* signed multiplication *)

IF ((EDX = 00000000H) OR (EDX = FFFFFFFFH))
THEN
       CF = 0; OF = 0;
ELSE
       CF = 1; OF = 1;
FI;

EDX 高8位
2005-2-5 13:05
0
雪    币: 296
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
最初由 simonzh2000 发布
EDX:EAX <- EAX * ESI (* signed multiplication *)

IF ((EDX = 00000000H) OR (EDX = FFFFFFFFH))
THEN
CF = 0; OF = 0;
........

本人愚钝,可否实例说明?
本例中EAX*ESI=1FFCAD2B41E1B6D,计算后EAX=B41E1B6D,EDX=FF3814C5
这个高八位的EDX从何而来,可否附上计算方法?初学汇编,望赐教,谢过。
2005-2-5 15:22
0
雪    币: 398
活跃值: (1078)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
4
乘之前符号扩展

EDX = FFFFFFFF (EAX最高位1)
EDX = 00000000 (EAX最高位0)
2005-2-5 16:14
0
游客
登录 | 注册 方可回帖
返回
//