IMUL komutu iki sayıyı çarpar. "I" harfi işaretli (signed) çarpma anlamına gelir.
imul hedef, kaynak
; Hedef = Hedef * Kaynakmov rax, 7 ; RAX = 7
imul rax, 6 ; RAX = RAX * 6 = 42mov rax, 5
mov rbx, 8
imul rax, rbx ; RAX = 40mov rax, 2
imul rax, 3 ; RAX = 6
imul rax, 5 ; RAX = 30
imul rax, 2 ; RAX = 6064-bit * 64-bit = 128-bit olabilir!
mov rax, 0x8000000000000000 ; Çok büyük sayı
imul rax, 2 ; RDX:RAX = 128-bit sonuç
; RDX = üst 64-bit
; RAX = alt 64-bit- CF/OF: Sonuç RAX'e sığmadıysa 1 olur
example_01.asm- IMUL komutu örnekleri
// Assembly'de:
// mov rax, 7
// imul rax, 6 ; rax = 42
// C#'da:
long rax = 7;
rax = rax * 6; // rax = 42- İki sayıyı çarp
- Negatif sayıları çarp
- Büyük sayıları çarp (overflow test)