IMUL:汇编中mul和imul有什么区别啊

时间:
诗词网小编
分享

诗词网小编

目录

1.汇编中mul和imul有什么区别啊

mul是无符号乘法imul是带符号乘法指令执行后ax=0F88CH,把96H看作带符号数,转换成十六进制补码就是F88CH。那么ax=0A8CH,这时把96H和12H都看作无符号数。

2.汇编语言的imul是如何运算的?

IMUL带符号数乘法指令格式:(AX)←(AL)*(SRC) 字操作数:AX)←(AX)*(SRC) 双字操作数:(EDX,EAX)←(EAX)*(SRC)注意:

3.设AL=04H,BL=0F8H,执行IMUL BL指令后,AX结果是

imul是带符号的乘法。

4.若(AL)=96H,(BL)=12H,指令MUL BL与IMUL BL分别执行后,他们的结果为何值?OF、CF为何值?

1)、指令格式1——该指令的功能是把显式操作数和隐含操作数相乘,所得的乘积按表5.2的对应关系存放。Reg ← Reg × Imm3)、指令格式3——其寄存器只能是16位通用寄存器,Reg1← Reg2×Imm 或 Reg1← Mem×Imm4)、指令格式4——其寄存器必须是16位/32位通用寄存器,其计算方式为:

5.汇编语言里的IMUL乘法指令是怎么乘的?

1)、指令格式1——该指令的功能是把显式操作数和隐含操作数相乘,所得的乘积按表5.2的对应关系存放。2)、指令格式2——其寄存器必须是16位/32位通用寄存器,其计算方式为:Reg ← Reg × Imm3)、指令格式3——其寄存器只能是16位通用寄存器,其计算方式为:Reg1← Reg2×Imm 或 Reg1← Mem×Imm4)、指令格式4——其寄存器必须是16位/32位通用寄存器,其计算方式为:Reg1← Reg1×Reg2 或 Reg1← Reg1×Mem在指令格式2~4中,各操作数的位数要一致。如果乘积超过目标寄存器所能存储的范围,则系统将置溢出标志OF为1。

6.imul 后只有1个操作数 IMUL edi 是什么意思

imui edi 默认被乘数eax,edi是乘数。

7.汇编imul dword ptr ds:[esi+0x1EC] 这是什么意思

有符号数乘法被乘数:eax乘数:[esi+0x1EC]结果:

8.imul(%esi,%edx,4),%eax什么意思?

imull(%esi,%edx,%eax完成的操作时eax=eax*(esi+edx*4) 下面的程序片段可以这样理解esi是一个long int的矩阵的首地址,长度是16算了用语言很难描述,我就把它改写成C的样式吧 for(int i=0;i<ecx+=64){ eax=eax*(esi[i]+edx*4);ebx+=eax;
495271

微信扫码分享