首页
社区
课程
招聘
小菜小问题!高手莫笑!!!
发表于: 2007-5-27 10:55 4499

小菜小问题!高手莫笑!!!

2007-5-27 10:55
4499
IMUL eax,eax,29A

IMUL esi,edi

格式: IMUL OPRD

功能: 完成两个带符号数的相乘

后面不是只有一个参数吗?怎么有两三个的,这些怎么算的。

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
这个操作符有四种写法。分别是:
IMUL    src   ; 这个是eax和src相乘,结果到eax
IMUL    src,immed ; 这个是src和immed相乘,结果到eax
IMUL    dest,src,immed8 ; 这个是src和immed8相乘,结果到dest
IMUL    dest,src ; 这个是dest和src相乘,结果到dest
2007-5-27 11:04
0
雪    币: 200
活跃值: (154)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
有符号数乘法指令IMUL(Signed Integer Multiply Instruction)

指令的格式: IMUL Reg/Mem
IMUL Reg, Imm ;80286+
IMUL Reg, Reg, Imm ;80286+
IMUL Reg, Reg/Mem ;80386+

受影响的标志位:CF和OF(AF、PF、SF和ZF无定义)

1)、指令格式1——该指令的功能是把显式操作数和隐含操作数相乘,所得的乘积按表5.2的对应关系存放。

2)、指令格式2——其寄存器必须是16位/32位通用寄存器,其计算方式为:

Reg ← Reg × Imm

3)、指令格式3——其寄存器只能是16位通用寄存器,其计算方式为:

Reg1 ← Reg2×Imm  或  Reg1 ← Mem×Imm

4)、指令格式4——其寄存器必须是16位/32位通用寄存器,其计算方式为:

Reg1 ← Reg1×Reg2  或  Reg1 ← Reg1×Mem
在指令格式2~4中,各操作数的位数要一致。如果乘积超过目标寄存器所能存储的范围,则系统将置溢出标志OF为1。
2007-5-27 11:05
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Thank you!
我买的书里只有第一个写法。
2007-5-27 11:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
处男第一贴~不是灌水
2007-5-27 12:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
两个时候那是两个数相乘 放到EAX中去
三个的时候那是将后面的两个相乘放到第一个中
2007-5-29 18:14
0
游客
登录 | 注册 方可回帖
返回
//