Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Bölüm 2.3: IMUL Komutu (Çarpma)

Nedir?

IMUL komutu iki sayıyı çarpar. "I" harfi işaretli (signed) çarpma anlamına gelir.

Sözdizimi

imul hedef, kaynak
; Hedef = Hedef * Kaynak

Örnekler

1. Basit Çarpma

mov rax, 7      ; RAX = 7
imul rax, 6     ; RAX = RAX * 6 = 42

2. Yazmaç Çarpması

mov rax, 5
mov rbx, 8
imul rax, rbx   ; RAX = 40

3. Zincirleme Çarpma

mov rax, 2
imul rax, 3     ; RAX = 6
imul rax, 5     ; RAX = 30
imul rax, 2     ; RAX = 60

Dikkat: Overflow

64-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

Flags (Bayraklar)

  • CF/OF: Sonuç RAX'e sığmadıysa 1 olur

Dosyalar

  • example_01.asm - IMUL komutu örnekleri

C# Karşılığı

// Assembly'de:
// mov rax, 7
// imul rax, 6   ; rax = 42

// C#'da:
long rax = 7;
rax = rax * 6;  // rax = 42

Pratik

  1. İki sayıyı çarp
  2. Negatif sayıları çarp
  3. Büyük sayıları çarp (overflow test)