CDQ+乘除指令: MUL、IMUL、DIV、IDIV
2012-06-08 11:06
316 查看
CDQ:双字扩展,把EAX中的符号位扩展到EDX中去,
MUL: 无符号乘
;影响 OF、CF 标志位
;指令格式:
;MUL r/m ;参数是乘数
;如果参数是 r8/m8, 将把 AL 做乘数, 结果放在 AX
;如果参数是 r16/m16, 将把 AX 做乘数, 结果放在 EAX
;如果参数是 r32/m32, 将把 EAX 做乘数, 结果放在 EDX:EAX
IMUL: 有符号乘
;影响 OF、CF 标志位
;第一种指令格式:
;IMUL r/m ;单操作数
;如果参数是 r8/m8, 将把 AL 做乘数, 结果放在 AX
;如果参数是 r16/m16, 将把 AX 做乘数, 结果放在 EAX
;如果参数是 r32/m32, 将把 EAX 做乘数, 结果放在 EDX:EAX
;以上这些都是和 MUL 一样的, 只是运算结果有时一样、有时不一样.
;IMUL 还有另外两种指令格式:
;IMUL r16/r32, r16/r32/m16/m32/ ;双操作数, (1)*(2) -> (1)
;IMUL r16/r32, r16/r32/m16/m32, i ;三操作数, (2)*(3) -> (1)
;其中常数 i 的位数可以 <= 但不能 > 其他操作数
DIV、IDIV: 无符号除、有符号除
;它们没有定义对 EFLAGS 的影响
;它们的指令格式:
;DIV r/m ;参数是除数
;如果参数是 r8/m8, 将把 AX 做被除数; 商 -> AL, 余数 -> AH
;如果参数是 r16/m16, 将把 DX:AX 做被除数; 商 -> AX, 余数 -> DX
;如果参数是 r32/m32, 将把 EDX:EAX 做被除数; 商 -> EAX, 余数 -> EDX
IDiV:带进位除法。被除数是:EDX:EAX,除数是ECX
MUL: 无符号乘
;影响 OF、CF 标志位
;指令格式:
;MUL r/m ;参数是乘数
;如果参数是 r8/m8, 将把 AL 做乘数, 结果放在 AX
;如果参数是 r16/m16, 将把 AX 做乘数, 结果放在 EAX
;如果参数是 r32/m32, 将把 EAX 做乘数, 结果放在 EDX:EAX
IMUL: 有符号乘
;影响 OF、CF 标志位
;第一种指令格式:
;IMUL r/m ;单操作数
;如果参数是 r8/m8, 将把 AL 做乘数, 结果放在 AX
;如果参数是 r16/m16, 将把 AX 做乘数, 结果放在 EAX
;如果参数是 r32/m32, 将把 EAX 做乘数, 结果放在 EDX:EAX
;以上这些都是和 MUL 一样的, 只是运算结果有时一样、有时不一样.
;IMUL 还有另外两种指令格式:
;IMUL r16/r32, r16/r32/m16/m32/ ;双操作数, (1)*(2) -> (1)
;IMUL r16/r32, r16/r32/m16/m32, i ;三操作数, (2)*(3) -> (1)
;其中常数 i 的位数可以 <= 但不能 > 其他操作数
DIV、IDIV: 无符号除、有符号除
;它们没有定义对 EFLAGS 的影响
;它们的指令格式:
;DIV r/m ;参数是除数
;如果参数是 r8/m8, 将把 AX 做被除数; 商 -> AL, 余数 -> AH
;如果参数是 r16/m16, 将把 DX:AX 做被除数; 商 -> AX, 余数 -> DX
;如果参数是 r32/m32, 将把 EDX:EAX 做被除数; 商 -> EAX, 余数 -> EDX
IDiV:带进位除法。被除数是:EDX:EAX,除数是ECX
相关文章推荐
- Win32ASM学习[16] :乘除指令: MUL、IMUL、DIV、IDIV
- 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
- Win32 汇编 - 乘除指令: MUL、IMUL、DIV、IDIV
- IMUL、MUL和div的用法
- 汇编学习-转移指令和mul,div指令
- 寄存器在内存单元寻址组合和div/mul指令笔记
- 汇编----乘指令: MUL、IMUL
- 汇编加减乘除指令 add adc sub sbb mul div
- 8086除法指令DIV,IDIV
- 8086乘法指令MUL,IMUL
- 详解汇编语言中乘法指令:MUL、IMUL
- 汇编中除法div (idiv) 学习
- 汇编 DIV 指令
- 有符号整数除法指令 IDIV 汇编基础一日一学习33
- 汇编中div指令使用
- imul和mul的计算
- 汇编:div指令讲解
- 汇编指令--MUL 和 IMUL
- 一文读懂除法溢出-使用汇编重定向0号中端(除法错误中断,比如,执行div指令产生的除法溢出)
- MUL指令对OF、CF的影响