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.4: IDIV Komutu (Bölme)

Nedir?

IDIV komutu bir sayıyı başka bir sayıya böler. "I" harfi işaretli (signed) bölme anlamına gelir.

Sözdizimi

idiv bölen
; RAX = RDX:RAX / bölen  (bölüm)
; RDX = RDX:RAX % bölen  (kalan)

Önemli Not

IDIV'den önce CDQ komutu çalıştırılmalı! CDQ, RAX'i 128-bit'e genişletir.

mov rax, 100    ; Bölünen sayı
cdq             ; RDX:RAX = 100'ü 128-bit'e genişlet
mov rcx, 5      ; Bölen sayı
idiv rcx        ; RAX = 100 / 5 = 20, RDX = kalan

Örnekler

1. Basit Bölme

mov rax, 20     ; 20 / 4 = 5
cdq
mov rcx, 4
idiv rcx        ; RAX = 5, RDX = 0

2. Kalanlı Bölme

mov rax, 17     ; 17 / 5 = 3 kalan 2
cdq
mov rcx, 5
idiv rcx        ; RAX = 3, RDX = 2

Flags (Bayraklar)

  • CF, OF, ZF, SF: Şunlar tanımlanmamıştır (belirsiz)
  • Division by Zero Exception: Bölen 0 ise hata!

Dosyalar

  • example_01.asm - IDIV komutu ve CDQ

C# Karşılığı

// Assembly'de:
// mov rax, 17
// cdq
// mov rcx, 5
// idiv rcx      ; rax = 3, rdx = 2

// C#'da:
long rax = 17 / 5;    // rax = 3
long rdx = 17 % 5;    // rdx = 2

Pratik

  1. Kalansız bölme yap
  2. Kalanlı bölme yap
  3. CDQ'nun ne yaptığını anla