imul
有符号乘法指令,分单操作数,双操作数和但操作数
- 单操作数:此形式与mul指令使用完全相同,操作数乘以al、ax、或eax寄存器中的值,乘积分别存储到ax、dx:ax或edx:eax中
执行指令:
imul cl
此时eax=FFFFFFFA(-6),ecx=0000 0002,结果:
- 双操作数:第一个操作数乘以第二个操作数。第一个操作数是通用寄存器,第二个操作数可以是立即数、通用寄存器或内存位置。乘积存储到第一个操作数中
imul edx,eax
此时edx=0000 0002,eax=ffff fff4
结果:
- 三操作数:第二个操作数(通用寄存器或内存位置)乘以第三个操作数(立即数)。结果放到第一个操作数中(通用寄存器)
imul ecx,edx,0x2
此时edx=ffff ffe8
结果
idvi
格式:
idiv src
执行的操作:与div相同,但操作数必须是带符号的数,商和余数也都是带符号的数,且余数的符号和被除数的符号相同,这里我就不介绍了,div的相关操作可以看这篇文章:https://blog.csdn.net/qq_41683305/article/details/105496467