Bilgisayar Donanım ve Sistem Yazılımı Aslı Eyecioğlu Özmutlu aozmutlu@bartin.edu.tr
Hedefler Emu8086 ile aritmetik işlemler (devam)
Geçen Hafta Taşıma - MOV Komutu Toplama - ADD Komutu Çıkarma - SUB Komutu İkili Sistemde Tümleyen Aritmetiği Elde Biti (Carry) Taşma (Overflow) Artırma –INC komutu Azaltma –DEC komutu Tümleyen –NEG komutu
Bu Hafta Çarpma – MUL-IMUL Komutları Bölme – DIV-IDIV Komutları
Çarpma-Bölme Komutları Çarpma ve bölme işlemleri 2 şekilde toplama ve çıkarma işlemlerinden farklıdır: İki negatif sayının çarpımı pozitiftir. İki sayının çarpımından/bölümünden elde edilen sayı bu iki sayının boyutundan daha büyük/küçük olabilir.
Çarpma Komutları MUL ve IMUL İki farklı çarpma komutu vardır: MUL: İşaretsiz sayılar için kullanılır. IMUL : İşaretli sayılar için kullanılır.
Çarpma Komutları MUL ve IMUL Çarpılan iki sayıdan elde edilen çarpımın boyutu bu iki sayıdan büyük olabilir. Boyut konusundaki sorun ise sonucun bir büyük boyda belirlenmesi ile çözülür. 1 byte lık iki sayı çarpılınca sonuç 2 byte lık bir alana yerleştirilir; 2 byte lık iki sayı çarpılırsa sonuç 4 byte lık bir alana yerleştirilir...
Çarpma Komutları MUL ve IMUL Çarpma komutundan önce çarpılacak ikinci sayının (boyutuna uygun biçimde) AL veya AX’e yerleştirilmesi gerekir. Benzer biçimde sonuçta AX veya AX-DX kaydedicilerine yerleştirilir. AX = AL * Operand (operand byte ise) (DX AX) = AX * Operand (operand word ise)
Çarpma Komutları-MUL
Çarpma Komutları-IMUL
Bölme Komutları DIV ve IDIV İki farklı bölme komutu vardır: DIV: İşaretsiz sayılar için kullanılır. IDIV : İşaretli sayılar için kullanılır.
Bölme Komutları DIV ve IDIV Çarpmada yapılan işlemin tersine, bölme işlemi bölünene göre küçük boyut üretir. Bu yüzden komutları kullanırken bölünenin boyutu bölenin boyutunun iki katı olmalıdır.
Bölme Komutları DIV ve IDIV Çarpmada yapılan işlemin tersine, bölme işlemi bölünene göre küçük boyut üretir. Bu yüzden komutları kullanırken bölünenin boyutu bölenin boyutunun iki katı olmalıdır. AL = AX/ Operand (operand byte ise) AH = Kalan AX =(DX AX) /Operand (operand word ise) DX= Kalan
DIV Komutu
IDIV Komutu
Kaynaklar http://www.emu8086.com/dr/index.html
Teşekkürler Sorular? Aslı Eyecioğlu Özmutlu aozmutlu@bartin.edu.tr