BILGISAYAR ARITMETIGI

Benzer belgeler
BILGISAYAR ARITMETIGI

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir.

Atatürk Anadolu. Temel Kavramlar Üzerine Kısa Çalışmalar

Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar;

Fatih University- Faculty of Engineering- Electric and Electronic Dept.

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

DENEY 3a- Yarım Toplayıcı ve Tam Toplayıcı Devresi

Her bir kapının girişine sinyal verilmesi zamanı ile çıkışın alınması zamanı arasında çok kısa da olsa fark bulunmaktadır -> kapı gecikmesi

Bölüm 3 Toplama ve Çıkarma Devreleri

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

Bilg.Mimarisi-I 4.HAFTA VERI AKTARIMI VE ISLEME. Bilgisayar buyrukları 3 kategoride sınıflandırılabilir.

Şekil. 64 Kelimelik Yığıtın Blok Şeması

SAYISAL ELEKTRONİK DERS NOTLARI:

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

SAYILAR MATEMATİK KAF03 BASAMAK KAVRAMI TEMEL KAVRAM 01. İki basamaklı en küçük sayı : İki basamaklı en büyük negatif sayı :.

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

5. KARŞILAŞTIRICI VE ARİTMETİK İŞLEM DEVRELERİ (ARİTHMETİC LOGİC UNİT)

Mikrobilgisayarda Aritmetik

1. BÖLÜM Mantık BÖLÜM Sayılar BÖLÜM Rasyonel Sayılar BÖLÜM I. Dereceden Denklemler ve Eşitsizlikler

Algoritma ve Programlamaya Giriş

Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir.

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

ÜNİTE: TAM SAYILAR KONU: Tam Sayılar Kümesinde Çıkarma İşlemi

Fatih University- Faculty of Engineering- Electric and Electronic Dept.

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

ÜNİTE: RASYONEL SAYILAR KONU: Rasyonel Sayılar Kümesinde Çıkarma İşlemi

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

Buna göre, eşitliği yazılabilir. sayılara rasyonel sayılar denir ve Q ile gösterilir. , -, 2 2 = 1. sayıdır. 2, 3, 5 birer irrasyonel sayıdır.

BİL 201 Birleşimsel Mantık (Combinational Logic) Bilgisayar Mühendisligi Bölümü Hacettepe Üniversitesi

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

DENEY 2-5 Karşılaştırıcı Devre

SAYILAR DOĞAL VE TAM SAYILAR

SAYISAL DEVRELER. İTÜ Bilgisayar Mühendisliği Bölümündeki donanım derslerinin bağlantıları

KMU MÜHENDİSLİK FAKÜLTESİ ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ SAYISAL DEVRELER II LABORATUVARI DENEY 1 TOPLAYICILAR - ÇIKARICILAR

DENEY 4: TOPLAYICILAR, ÇIKARICILAR VE KARŞILAŞTIRICILAR

Bilgisayar Mühendisligi Bölümü Hacettepe Üniversitesi

BLM221 MANTIK DEVRELERİ

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Yrd. Doç. Dr. Caner ÖZCAN

Elektroniğe Giriş 1.1

ASAL SAYILAR - TAM BÖLENLER - FAKTÖRİYEL Test -1

ÜSLÜ SAYILAR SİBEL BAŞ AKDENİZ ÜNİVERSİTESİ EĞİTİM FAK. İLKÖĞRT. MAT. ÖĞRT. 2. SINIF

1. Bölüm Sayı Sistemleri

140. 2< a< 1 ise kesrinin değeri aşağıdakilerden hangisi olamaz? (3,7) a 1,9 2,4 2,7 3,2 3,7. a a c b ve c a a b c

ECEM ERDURU GAMZE SERİN ZEHRA SABUR EMİNE ÖLMEZ. o TAMSAYILAR KONUSU ANLATILMAKTADIR

İKİLİ SAYILAR VE ARİTMETİK İŞLEMLER

1. BÖLÜM. Sayılarda Temel Kavramlar. Bölme - Bölünebilme - Faktöriyel EBOB - EKOK. Kontrol Noktası 1

MATEMATİK DERSİ UZAKTAN EĞİTİM DERS NOTLARI 3. HAFTA

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada,

2. ÜNİTE RASYONEL,ÜSLÜ VE KÖKLÜ SAYILAR

(ReduceD INSTRUCTION SET COMPUTER-RISC)

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

MAK 210 SAYISAL ANALİZ

BÖLME ve BÖLÜNEBİLME

ARDIŞIK SAYILAR. lab2_pc32 BERRIN_ESMA_OZGE

İÇİNDEKİLER BASİT EŞİTSİZLİKLER. HARFLİ İFADELER Harfli İfadeler ve Elemanları Eşitsizlik Sembolleri ve İşaretin Eşitsizlik İfadesi...

n. basamak basamak 3. basamak 2. basamak 1. basamak Üstel değer 10 n Ağırlık 10 n-1...

Algoritmalar ve Programlama. Algoritma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

12-A. Sayılar - 1 TEST

Rakam : Sayıları yazmaya yarayan sembollere rakam denir.

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

KASIRGA 4. GELİŞME RAPORU

DÖRDÜNCÜ BÖLÜM Aritmetik işlemler

10.Konu Tam sayıların inşası

Örnek...1 : Yandaki bölme işlemin de bölüm ile kalanın toplamı kaçtır?

SAYILAR SAYI KÜMELERİ


Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

SAYILAR SAYI KÜMELERİ

2. SAYI SİSTEMLERİ. M.İLKUÇAR - imuammer@yahoo.com

SAYISAL DEVRE TASARIMI DERSİ LABORATUVARI DENEY 4: Yarım Toplayıcı ve Tam Toplayıcı Devresi

Örnek...1 : Yandaki bölme işlemin de bölüm ile kalanın toplamı kaçtır?

Algoritmanın Hazırlanması

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

biçimindeki ifadelere iki değişkenli polinomlar denir. Bu polinomda aynı terimdeki değişkenlerin üsleri toplamından en büyük olanına polinomun dereces

Sayı Sistemleri. Onluk, İkilik, Sekizlik ve Onaltılık sistemler Dönüşümler Tümleyen aritmetiği

Konular MİKROİŞLEMCİ SİSTEMLERİ. Giriş. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Öncesi Kuşak

2. SAYI SİSTEMLERİ VE KODLAR

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

GİRİŞ-ÇIKIŞ (INPUT / OUTPUT) ORGANİZASYONU

ÜNİTE 11 ÜNİTE 9 MATEMATİK. Kümeler. 1. Bölüm: Kümelerde Temel Kavramlar 2. Bölüm: Kümelerde İşlemler. 9. Sınıf Matematik

1. BÖLÜM Polinomlar BÖLÜM II. Dereceden Denklemler BÖLÜM II. Dereceden Eşitsizlikler BÖLÜM Parabol

EXCEL 2007 ELEKTRONİK ÇİZELGE

BÖLÜM 3 OPERAT A ÖRLER

ÜSLÜ SAYILAR. AMAÇ 1: 6 ve 7. Sınıflarda görmüş olduğumuz üslü ifadelerdeki temel kavramları hatırlama

C++ Operatörler (Operators)

DENEY 4: TOPLAYICILAR, ÇIKARICILAR VE KARŞILAŞTIRICILAR

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Problem Çözme

İşlem Buyrukları MİKROİŞLEMCİ SİSTEMLERİ. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

MATEMATİK SORU BANKASI. ezberbozan serisi GEOMETRİ 30. KPSS tamamı çözümlü. eğitimde

Transkript:

1 BILGISAYAR ARITMETIGI BÖLME ALGORİTMALARI Bölme işlemi aşağıdaki şekilde sayısal olarak gösterilmektedir. Bölen B 5 bit, bölünen A 10 bittir. Bölünenin önemli 5 biti bölenle karşılaştırılır. Bu 5 bit bölenden küçük olduğundan bölünenin önemli bitlerinden 6 tanesi alınır. 6 bit sayı bölenden büyük olduğundan bölüm hanesine 1 yazılır. Bölümün yazılmasında 1 bitini bölünenin altıncı biti hizasına yazarak hangi bitin kalan olarak gönderileceği daha kolay bulunur. Bölüm 1 bit sağa kaydırılarak yazılır ve bölünen sayıdan çıkarılır. Eğer kısmi kalan bölenden küçük ise bölüme 0 yazılır ve bölen tekrar sağa kaydırılır. Her durumda bölen sağa kaydırılır. Sonuçta hem bölüm, hem de kalan elde edilir. Bölen: 11010 Bölüm = Q B = 10001 0111000000 Bölünen = A 01110 A < B nin 5 biti, bölünenin 5 biti 011100 A B nin 6 biti - 10001 B yi mantıksal sağa kaydır ve çıkart; Q ya 1 gir -010110 Kalan B nin 7 biti - -10001 B yi mantıksal sağa kaydır ve çıkart; Q ya 1 gir - -001010 Kalan < B; Q ya sıfır gir; B yi mantıksal sağa kaydır - - -010100 Kalan B - - - -10001 B yi mantıksal sağa kaydır ve çıkart; Q ya 1 gir - - - -000110 Kalan < B; Q ya 0 gir - - - - -00110 Son kalan Şekil. İkili bölme işlemi için örnek

2 İşaretli Sayılar İçin Donanım Kurulması Sayısal bir bilgisayara bölme işlemi için donanım eklenecek ise işlemleri biraz değiştirmek gerekir. Böleni sağa kaydırmak yerine bölünen veya kısmi kalan sola kaydırılır. Böylece sayılar istenen göreceli konumlara gelmiş olurlar. Çıkarma işlemi A ya B nin 2 ye göre tümleyenin eklenmesiyle yapılır. Sayıların göreceli durumu çıkış eldesinden elde edilir. Bölme işlemi için gerekli donanım, çarpma işlemi için gerekenin aynısıdır. EAQ yazacı Q n e 0 yazılarak bu defa sola kaydırılır. E nin eski değeri kaybolur. Sayısal donanım için ikili bölme örneği Bölen B = 10001, B + 1 = 01111 E A Q SC Bölünen: 01110 00000 5 shl EAQ 0 11100 00000 B + 1 i topla 01111 E = 1 1 01011 Q n = 1 yaz 1 01011 00001 4 shl EAQ 0 10110 00010 B + 1 i topla 01111 E = 1 1 00101 Q n = 1 yaz 1 00101 00011 3 shl EAQ 0 01010 00110 B + 1 i topla 01111 E = 0; Q n = 0 kalır 0 11001 00110 B yi topla 10001 Kalan tekrar bulunur 1 01010 2 shl EAQ 0 10100 01100 B + 1 i topla 01111 E = 1 1 00011 Q n = 1 yaz 1 00011 01101 1 shl EAQ 0 00110 11010 B + 1 i topla 01111 E = 0; Q n = 0 kalır 0 10101 11010 B yi topla 10001 Kalan tekrar bulunur 1 00110 E ihmal edilir Kalan A da 00110 Bölüm Q dadır 11010

3 Bölen B ve bölünen A ve Q dadır. Bölünen sola 1 kaydırılır ve bölenin 2 ye göre tümleyen kaydırmaya eklenir. Sayıların birbirine göre durumu (A B veya A < B) E den bellidir. Eğer E = 1 ise A B dir ve bölüm olarak 1 sayısı Q nun sağındaki en önemsiz bite yazılır. Kısmi kalan sola 1 kaydırılır. Eğer E = 0 ise A < B demektir ve Q n den 0 girilir. B nin değeri kısmi kalana eklenir. Böylece A daki kısmi kalanın eski değeri elde edilir. Kısmi kalan daha sonra sola 1 kaydırılır. İşlem bölümde 5 bit toplanana kadar devam eder. Kısmi kalan sola kaydırıldığında bölüm bitleri yani Q larda sola kaydırılır. 5 olunca bölüm Q da son kalan ise A dadır. Algoritmanın akış şemasından önce sonucun işareti ve taşma durumu düşünülmelidir. Bölümün işareti bölenle bölünenin işaretinden bulunur. Eğer iki işaret aynı ise bölümün işareti pozitif, farklı ise negatiftir. Kalanın işareti bölünenin işareti ile aynıdır Bölüm Taşması Bölme işlemi bölümde bir taşma ile sonuçlanabilir. Bunu anlamak için 5 bit yazaçları olan bir sistem düşünelim. Birinci yazaçta bölen, 2. yazaçta bölünen olsun. Eğer bölünenin ilk beş biti bölenden büyük ise bölüm 6 bit olur. Bölüm standart 5 bite konduğunda taşma biti için 1 bit yer gerekir. Yani bir fazla yaz-boz gereklidir. Normal bilgisayar işlemlerinde bölüm taşma şartlarından kaçınılmalıdır. Çünkü bölüm çok uzun olabilir. Bellek kelimeleri standart uzunlukta olduğundan bölüm belleğe yazılamayabilir. Bu durum önceden anlaşılmalı veya donanım ya da yazılım veya ikisiyle birlikte bir çözüm getirilmelidir. Eğer bölünen, bölenin 2 katı uzunlukta ise taşma şöyle tanımlanabilir. Eğer bölünenin bitlerinin önemli yarısının oluşturduğu sayı bölen sayıdan büyük veya eşitse bölüm taşma şartı oluşur. Sıfır ile bölme işleminden de kaçınmak gerekir. Taşma şartının denetimi özel bir yaz-boz kümesi ile yapılır. Bu yaz-boz kümesine bölme taşma yaz-bozu veya DVF denir. Bölme taşması birçok biçimde denetlenebilir. Birçok bilgisayarda DVF =1 yapılmışsa bir kesme isteği olur. Kesme bilgisayarın programın icrasını durdurmasını ve taşmaya karşı bir düzeltme yapılacak ise servis alt programına dallanılmasını sağlar. En çok kullanılan alt program, bir hata mesajı ile programın neden tamamlanamadığını bildirmektir. Bu durumda programcı bir basamak kaydırma programı yazabilir veya başka bir önlem alabilir. Bölme taşmasından kurtulmanın en iyi yolu kayan noktalı sayı kullanmaktır. Bu gösterimde taşma çok basit bir şekilde önlenebilir.

4 Donanım Algoritması Bölünen A ve Q da bölen B dedir. Sonucun işareti Q s ye yazılır. SC ye bölümdeki bit sayısı yazılır. Çarpmada olduğu gibi verilerin yazaçlara bellekten aktarıldığı ve n bitlik kelimeler olduğu varsayılmaktadır. Veriler işaretleri ile yerleştirildiğinden kelimenin bir biti işaret bitidir ve sayı n-1 bit olur. Bölüm taşma durumu B nin, bölünenin önemli bitlerinin yarısından çıkarılmasıyla anlaşılır. Bölünenin bu kısmı başlangıçta A dadır. Eğer A B ise taşma vardır. DVF 1 yapılır ve işlem durdurulur. Eğer A < B ise bölüm taşması yoktur. B tekrar A ya eklenir. Bölme işlemi için akış şeması

5 AQ sola kaydırılarak bölme işlemi başlatılır. En yüksek önemli bit E ye geçer. E = 1 ise EA > B dir. B, EA dan çıkarılır ve Q n e 1 girilir. Bu bölümün bir biti olur. A yazacı bölünenin en yüksek önemde bitini E ye geçirmiştir. Dolayısıyla A nın değeri EA - 2 n-1 dir. Bu değere B nin 2 ye göre tümleyen eklenirse (EA - 2 n-1 ) + (2 n-1 - B) = EA - B Bu toplama işlemi sonucunda eğer E nin 1 kalması isteniyorsa toplama işlemi sonucu elde E ye aktarılmaz. Eğer sola kaydırma işlemi E ye 0 yükledi ise B nin 2 ye göre tümleyen A ya eklenir ve elde E ye taşınır. Eğer E = 1 ise A B dir Q n = 1 yapılır. Eğer E = 0 ise A < B dir, A ya B eklenir ve Q n e 0 yazılır (kaydırma sırasında). SC = 0 olana kadar işlemler tekrarlanır. A da kısmi kalan bulunur. n-1 defa tekrardan sonra bölüm Q da işareti Q S de olur. Kalan A da ve işareti A S de bölünenle aynı işaretlidir. Diğer Algoritmalar İadeli Yöntemi; Yukarıda anlatılan yönteme iadeli yöntemi denir. Bunun nedeni kısmi kalanın negatif çıkması halinde bölenin tekrar toplanmasıdır. Bu yöntemin dışında daha iki yöntem vardır. Bunlar karşılaştırma yöntemi ve iadesiz yönteleridir. Karşılaştırma yönteminde, çıkarma işleminden önce iki sayı karşılaştırılır A B ise çıkarma yapılır. A < B ise bir şey yapılmaz ve kısmi kalan sola kaydırılır, sonra sayılar tekrar karşılaştırılır. Karşılaştırma işlemi E ye aktarılmadan son elde nin (paralel toplayıcıdaki son elde) incelenmesiyle anlaşılır. Karşılaştırma ve İadesiz Yöntem; İadesiz yönteminde eğer fark negatifse B bu farka toplanmaz. Bunun yerine fark sola kaydırılır, B toplanır. Bunun neden yapıldığını anlamak için A < B durumunu düşünelim. Şekil 10.13 deki akış şemasından yapılan işlemin A B + B olduğu anlaşılır. Çünkü kalan sola kaydırılır yani 2 ile çarpılır sonra B çıkarılır. Böylece 2 (A B + B) B = 2 A - B olur. Bu yöntemde A - B olduğu gibi bırakılır ve döngü tekrar başladığında kalan sola kaydırılır. Yeni 2 (A - B) elde edilir. Buna B eklenince 2 (A - B) + B = 2 A - B elde edilir ki aynı sonuç elde edilmiş olur. Böylece bu yöntemde Q n in değeri 1 ise B çıkarılır. Eğer Q n in değeri 0 olursa B eklenir. Dolayısıyla kısmi kalanın eski değerine dönmesi gerekmez. Bu işlem A < B halinde B nin eklenmesi işlemini ortadan kaldırır. Fakat bir önceki sonucu hatırlaması için özel denetim mantığı gerektirir. Bölünen ilk defa kaydırıldığında B çıkarılmalıdır. Eğer bölünün son biti 0 ise doğal olarak son kalana B eklenmelidir.

6 ONDALIK ARİTMETİK BİRİM Bir bilgisayar kullanıcısı verilerini ondalık sayılarla hazırlar. Sonuçları da ondalık olarak alır. ALU bulunan bir MİB aritmetik mikro işlemleri ikili verilerle yapar. Aritmetik işlemlerin ondalık sayılarla yapılması için girilen ondalık sayıların ikili hale çevrilmesi, işlemden sonra sonuçların tekrar ondalık sisteme çevrilmesi gerekir. Bu yöntem aritmetik işlemlerin çok yoğun fakat G/Ç işlemlerinin az olduğu durumlarda iyi bir yöntemdir. Fakat G/Ç işlemleri çok çok fazla ve aritmetik işlemleri oldukça az ise, işlemlerin ondalık sayılarla yapılması uygun olur. Ondalık sistemle bilgisayarların hesap yapması mümkündür. Ancak bunlar ondalık olarak (BCD biçiminde) saklanmalıdır. Hesap makineleri daima bir ondalık aritmetik birimle hesap yapar. Çünkü G/Ç işlemleri çok sıktır. Tuşlarla girilen sayıların ikiliye çevrilmesi hem zaman alır, hem de donanımı pahalıdır. Birçok bilgisayar hem ondalık hem ikili bilgiler için aritmetik işlemler yapacak donanma sahiptirler. Kullanıcılar bu durumu programda belirtebilirler. Ondalık aritmetik birimi sayısal bir birimdir. Ondalık mikro işlemleri yapar. Ondalık sayıları toplar ve çıkarır. Çıkan sayıyı genelde 9 veya 10 a göre tümleyen şeklinde kullanır. Birim gelen sayıları BCD olarak alır ve sonuçları BCD olarak verir. Bir aritmetik birimin bir katı (bir parçası) 9 tane ikili giriş değişkenine ve 5 ikili çıkış değişkenine sahiptir. Çünkü BCD bir sayıyı göstermek için en az 4 bit gerekir. Her bir kat, toplanan sayılar için 4 er tane girişe ve bir giriş elde sine sahip olmalıdır. Çıkış uçları ise toplam için 4 tane, çıkış eldesi için 1 tane olmalıdır. Kullanılan BCD kodlarına bağlı olarak çok sayıda muhtemel devre mevcut olacaktır. BCD Toplayıcı İki ondalık rakamın, daha önceki toplamdan gelen elde yi de düşünerek toplamı, her bir rakam 9 dan büyük olamayacağından, toplam sonucu 9 + 9 + 1 = 19 dan büyük olamaz. (1 giriş elde sinden gelmekte). Şimdi iki BCD kodlanmış rakamı 4 bit toplayıcıda toplayalım. Toplayıcı toplamı ikili olarak yapacak ve sonuç 0 ile 19 arasında olacaktır. Bu ikili sayılar çizelge 10.4 te verilmektedir ve K, Z 8, Z 4, Z 2 ve Z 1 ile gösterilmektedir. K elde değeri, indisler ağırlıkları göstermektedir. Bunlar BCD kodundaki 4 bite verilebilir. (Her bir bitin ağırlığı yerine göre değişir). Çizelgedeki birinci sütun toplamın ikili değerini, ikinci sütun bunun BCD karşılığını göstermektedir. Problem birinci sütundaki ikili sayıları ikinci sütundaki BCD lere dönüştürecek kuralı bulmaktır.

7 BCD toplayıcının elde edilmesi İkili Toplam BCD toplam K Z 8 Z 4 Z 2 Z 1 C S 8 S 4 S 2 S 1 Ondalık 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 2 0 0 0 1 1 0 0 0 1 1 3 0 0 1 0 0 0 0 1 0 0 4 0 0 1 0 1 0 0 1 0 1 5 0 0 1 1 0 0 0 1 1 0 6 0 0 1 1 1 0 0 1 1 1 7 0 1 0 0 0 0 1 0 0 0 8 0 1 0 0 1 0 1 0 0 1 9 0 1 0 1 0 1 0 0 0 0 10 0 1 0 1 1 1 0 0 0 1 11 0 1 1 0 0 1 0 0 1 0 12 0 1 1 0 1 1 0 0 1 1 13 0 1 1 1 0 1 0 1 0 0 14 0 1 1 1 1 1 0 1 0 1 15 1 0 0 0 0 1 0 1 1 0 16 1 0 0 0 1 1 0 1 1 1 17 1 0 0 1 0 1 1 0 0 0 18 1 0 0 1 1 1 1 0 0 1 19 Çizelgenin incelenmesiyle ikili toplam 1001 den küçük veya eşitse buna karşılık gelen BCD sayısı ikili sayıya eşittir, bu yüzden dönüşüme gerek yoktur. İkili toplam 1001 den büyük olunca, BCD gösterimi için değişiklik gerekir. İkili 6 nın (0110 ın) ikili sisteme eklenmesiyle doğru bir BCD gösterimi ve çıkış elde si elde edilir. Ondalık sayıların toplanmasında bir yöntem bir tane 4 bit ikili toplayıcı kullanmak ve her zaman biriminde bir basamak toplama yapmaktır. En düşük basamaktaki rakamların ikili karşılıkları toplanır. Eğer sonuç 1001 den büyük veya eşitse 0110 eklenerek düzeltilir. Sonra diğer basamaklar sırayla toplanır. Gerekli düzeltmeyi yapan devre, çizelgeden elde edilebilir. Buradan görüldüğü gibi BCD toplamının elde si 1 olduğu zaman düzeltme gerekir. Düzeltme gereken 1010 dan 1111 e kadar olan kısma bakılırsa bunlardan Z 8 in ve bunun yanında Z 4 veya Z 2 ninde 1 olması gerekir. Ayrıca 19 a kadar K nında 1 olduğu 4 sayı vardır. O halde bunun Boole fonksiyonu C = K + Z 8 Z 4 + Z 8 Z 2 olmalıdır. C = 1 olunca 0110 ikili toplama eklenmelidir. Bir BCD toplayıcı devresi iki BCD rakamı paralel olarak toplar toplam tek BCD rakamıdır. BCD toplayıcı iç yapısında bir düzeltme mantığına sahip olmalıdır. İkili toplama 0110 ın toplanması için şekildeki gibi ikili toplayıcıya ihtiyaç vardır. Giriş eldesi ile beraber iki ondalık rakam 4 bitlik ikili

8 toplayıcıda toplanarak ikili toplam elde edilir. Çıkış elde si 0 ise toplama bir şey eklenmez. Eğer çıkış elde si 1 ise ikili toplayıcının çıkışına 0110 ikili değeri eklenir. İkili toplayıcının çıkış elde si ihmal edilebilir. Çünkü çıkış elde si ayrıca belirlenmiştir. n basamaklı ondalık sayıları toplamak için şekildeki toplayıcılardan n tane gerekir. Bir tanenin çıkış elde si, sonrakinin giriş elde sine bağlanır. Yayılma gecikmelerinin önlenmesi için BCD toplayıcılar, diğerinin elde sini bekleyecek devrelerle donatılmıştır. Ayrıca düzeltme için kullanılan toplayıcının içindeki 4 tam toplayıcının hepsi birden kullanılmaz. Bundan dolayı devre en iyi duruma getirilebilir. BCD toplayıcının blok şeması BCD Çıkarma İki ondalık sayının doğrudan doğruya çıkarılması işlemi için BCD toplayıcıdan farklı olarak bir çıkarıcıya gerek vardır. Bunun yerine 9 veya 10 a göre tümleyen alarak çıkarma yapmak daha kolaydır. Çıkan sayının 9 veya 10 a göre tümleyeni alınıp diğerine toplanır. Fakat BCD sayılar hemen tümleyeni alınan sayılar değildir. Bunun için her bir basamağın 9 dan çıkarılarak tümleyeninin alınması gerekir.

9 BCD gösteriminde bulunan ondalık basamağın tümleyeni, bitlerin tümleyeninin alınması ve bir düzeltme yapılarak elde edilebilir. İki düzeltme yöntemi vardır. Birinci yöntemde ikili (ondalık on) 1010 her bir tümlenmiş basamağa toplanır ve toplamdan sonraki elde atılır. İkinci yöntemde ikili 0110 (ondalık 6) basamağın tümlenmesinden önce toplanır. Sayısal bir örnek olarak BCD 0111 (ondalık 7) nin 9 a göre tümleyeni, önce her bir bitin tümlenmesiyle 1000 olarak elde edilir. İkili 1010 ın eklenmesiyle ve elde atılarak 0010 (ondalık 2) bulunur. İkinci yöntemde 0110 sayısı 0111 e eklenir. 1101 elde edilir. Her bir bitin tümlenmesiyle sonuç 0010 bulunur. 4 bit ikili sayının tümlenmesi 1111 (ondalık 15 ten) çıkarılmasına eşittir. Ondalık 10 sayısının eklenmesi ile 15 N + 10 = 9 N + 16 olur. 16 sayısı elde de 1 i gösterir ve atılır dolayısı ile 9 N elde edilmiş olur. Tümleme işleminden önce 6 nın eklenmesi 15 (N + 6) = 9 N sonucunu verir. BCD basamağın 9 a göre tümleyeni bir devre yardımıyla da elde edilebilir. Bu devre BCD toplayıcıya eklenince sonuçta bir BCD toplayıcı-çıkarıcı olmuş olur. Toplanan veya çıkan sayının bitlerini B 8, B 4, B 2 ve B 1 ile gösterilsin. M toplama ve çıkarmayı seçen kip biti olmakta. M = 0 ise toplama, M = 1 ise çıkarma yapılacak. x 8, x 4, x 2 ve x 1 ikili değişkenleri, 9 a göre tümleyen devresinin çıktıları olsunlar. Devrenin doğruluk çizelgesinden (problem 10.30) B 1 in daima tümlenmesi gerektiği, B 2 nin 9 a göre tümleyende daima aynı kaldığı, B 2 ÖZEL-VEYA B 4 = 1 ise x 4 ün 1 olduğu ve B 8B 4B 2 = 000 ise x 8 = 1 olduğu görülür. 9 a göre tümleyen devresinin Boole fonksiyonları x 1 = B 1M + B 1 M x 2 = B 2 x 4 = B 4M + (B 4 B 2 + B 4B 2) M x 8 = B 8M + B 8 B 4 B 2 M Burada M = 0 iken x = B, M = 1 olunca x B nin 9 a göre tümleyenini verir. İki BCD sayının birer basamaklarını toplayan ve çıkaran ondalık aritmetik birimi şekil 10.19 da gösterilmektedir. Devre BCD toplayıcı ile 9 a göre tümleyen devrelerini içerir. Kip denetimi M, birimin işlemini denetler. M = 0 iken S, A ve B nin toplamı, M = 1 iken S, A ile B nin 9 a göre tümleyeninin toplamıdır. n ondalık basamaklı sayılar için bu devrelerden n tane gerekir. Çıkış elde si C i+1 bir sonraki yani bir yukarı mertebeden birimin giriş elde sine bağlanır. İki ondalık sayıyı çıkarmak için en iyi yol M = 1 yapmak ve birinci basamağın giriş elde sine 1 yollamaktır. Çıkışlar A ile B nin 10 a göre tümleyeninin toplamını verir. Böylece son elde çıkışını da dikkate almaya gerek olmadan çıkarma işlemi tamamlanmış olur.

10 Ondalık aritmetik işlemcinin bir aşaması ONDALIK ARİTMETİK İŞLEMLER Ondalık sayılar için aritmetik işlemlerin algoritmaları, çok küçük bazı değişiklikler haricinde ikili sayılardakinin aynıdır. Gerçekten çarpma ve bölme algoritmalarında ufak değişikliklerle akış şemaları her iki tip veri için kullanılabilir. Ancak mikro işlem sembollerini uygun şekilde değerlendirmek şarttır. Ondalık sayılar bilgisayar yazaçlarında 4 bitlik gruplar halinde bulunurlar. Her 4 bitlik grup bir ondalık basamağı gösterir. Ondalık mikro işlemler uygulanırken bu 4 bitlik grup bir birim olarak işleme girer. Ondalık ve ikili aritmetik mikro işlemler için aynı semboller kullanılacak. Fakat farklı anlamlar taşıyacaklar. Çizelgede görüldüğü gibi yazaç harf sembolü üzerindeki çizgi 9 a göre tümleyeni gösteriyor. 9 a göre tümleyene 1 eklenince 10 a göre tümleyen bulunur. Dolayısıyla ondalık sayılarda A A + B + 1 sembolik yazılımı A ya B nin 10 a göre tümleyeninin eklendiğini gösterir. Eğer sistemde hem 9 hem de 1 e göre tümleyen kullanılıyorsa bu durum kafa karıştırır. Böyle durumlar için 9 a göre tümleyende farklı sembol kullanmak yerinde olur. Eğer tek tip veri varsa bu sembolik gösterim kullanılabilir. Yazaçların arttırılması ve azaltılması ikili ve ondalık sayılar için aynıdır. Sadece yazaçların alabileceği durumlar farklıdır. İkili bir sayıcı 16 durum gösterir. 0000 dan 1111 e kadar. Ondalık sayı son rakam 9 olacağından 10 durum gösterir ve 0000 dan 1001 e kadar. Artmada 0000 dan 1001 e gider ve azalmada 0000 a geri döner. Azalmada ikili sayıcı 1111 den 0000 a gider.

11 Sembolik gösterim A A + B B A A + B + 1 Q L Q L+1 dshr A dshl A Ondalık aritmetik mikro işlem sembolleri Tanımlama Ondalık sayıları topla ve toplamı A ya aktar B nin 9 a göre tümleyeni B nin 10 a göre tümleyenini alıp A ile topla sonucu A ya aktar Q L sayısının değerini 1 arttır A yazacını ondalık sağa kaydır A yazacını ondalık sola kaydır Ondalık bir sağa kaydırma 4 bit üzerine olup en başa (en sola) konan bir d harfiyle belirlenir. Sayısal bir örnek olarak bir A yazacı ondalık 7860 sayısını BCD gösteriminde 16 yaz-bozda 0111 1000 0110 0000 şeklinde tutar. dshr A mikro işlemi ondalık sayılı 1 basamak sağa kaydırır ve yazacın içeriği 0000 0111 1000 0110 olur. Toplama ve Çıkarma İşaretli sayıların toplama ve çıkarma algoritmaları ondalık işaretli sayılara da uygulanır. Mikro işlem sembolleri ondalık sayılara uygun biçimde değerlendirilir. Aynı biçimde 2 ye göre tümleyen algoritmaları 10 a göre tümleyene uygulanabilir. İkili veri bir ikili toplayıcı ve tümleyici kullanır. Ondalık veri ondalık bir toplayıcı ve 9 a göre tümleyeni hesaplayan bir tümleyici kullanmalıdır. Ondalık veri 3 farklı şekilde toplanabilir. Paralel yöntem sayıdaki basamak sayısı kadar BCD toplayıcı kullanır. Toplam paralel olarak oluşur ve tek bir mikro işlem yeterlidir. Basamak seri bit paralel kipinde basamaklar tek bir BCD toplayıcıya gönderilir. Fakat bu rakamın bitleri paralel olarak toplayıcıya gönderilir. Toplam, ondalık sayıların her bir zaman biriminde bir basamak olarak toplayıcıdan alınmasıyla elde edilir. k ondalık basamak için bu yöntem k mikro işlem gerektirir. Tamamen seri toplayıcıda her saat vuruşunda bir bit tam toplayıcıya gönderilir. 4 bit sonunda oluşan toplam düzeltilerek doğru bir BCD basamağı elde edilir. Eğer toplam 1010 dan büyükse buna 0110 eklenir ve taşma sonraki basamağa aktarılır. Paralel yöntem hızlı fakat çok sayıda toplayıcı ister. Basamak seri, bit paralel yöntemde tek bir BCD toplayıcı gerektirir. Bütün basamaklar bunu kullanır. Paralel yöntemden yavaştır. Tümüyle seri yöntem en az donanım gerektirir, çok yavaştır.

12 Ondalık sayıların toplanması için üç yol Çarpma Sabit noktalı ondalık sayıların çarpımı, ikili sayılarınkine benzer. Fakat kısmi çarpımların oluşumu farklıdır. Ondalık bir çarpanın 0 ve 1 olmak üzere 2 basamağı vardır. İkili durumda çarpılan kısmi çarpıma eklenir. Ondalık durumda çarpılan, çarpanın ilgili basamağı ile çarpılmalı ve sonuç toplanmalıdır. Bu durum çarpılanın, çarpan basamak defa toplanmasıyla elde edilebilir.

13 Ondalık aritmetik çarpma ve bölme için yazaçlar Ondalık çarpım için yazaç durumu yukarıdaki şekilde gösterilmektedir. Burada 4 basamaklı sayılar göze alınmıştır. Her basamak 4 bit içerdiğinden sayı 16 bittir. A, B ve Q olmak üzere 3 yazaç var. Her birinin bir işaret yaz-bozu bulunmakta. A ve B yazaçlarının 1 er fazla biti vardır. A e ve B e. Bunlar sayesinde bu iki yazaç birer basamak fazladırlar. BCD aritmetik birimi 5 basamağı paralel olarak toplar ve sonucu 5 basamaklı A yazacına son eldeyi de E yaz-bozuna yerleştirir. A e basamağının amacı bir taşma olduğunda bunu tutmak içindir. Taşma çarpılanı kısmi toplama eklerken çıkabilir. B e nin görevi ise bölenin kısmi kalandan çıkarılması sırasında 9 un tümleyenini oluşturmaktır. Q yazacındaki en önemsiz basamak Q L olsun. Bu basamak arttırılabilir veya azaltılabilir. Bellekten gelen bir veri 17 bit içermektedir. 1 bit (işaret) B S ye aktarılır. Verinin sayı kısmı ise B nin 16 bitine yerleşir. B e ve A e önceden temizlenir. İşlemin sonucu da 17 bit uzunluğundadır ve A yazacının A e parçasını kullanmaz. Ondalık çarpma algoritması aşağıda gösterilmiştir. İlk olarak A yazacı ve B e sıfırlanır. Sıra sayıcı ise çarpıcı içindeki basamakların sayısı olan k ya eşitlenir. Çarpanın düşük mertebeli basamağı Q L denetlenir. Eğer 0 değilse B deki çarpan kısmi çarpıma bir defa eklenir. Q L azaltılır, tekrar denetlenir ve sıfır değilse işlem tekrarlanır. Böylece B deki çarpılan kısmi toplama çarpan basamağı kadar defa eklenmiş olur. Herhangi bir taşma A e içinde kalır ve değeri 0 ile 9 arasında olabilir.

14 Sonra kısmi çarpım ve çarpan bir defa sağa kaydırılır. A e sıfır yapılır. Çarpanın önemsiz basamağı Q L ye yazılır. İşlem tekrarlanır ve AQ içinde 2 katı uzunlukta çarpım elde edilir. Ondalık çarpma için akış şeması Bölme Ondalık bölme ikili bölmeye benzer. Sadece bölüm basamakları 0 dan 9 a kadar 10 değerden birini alır. Bölümün yeniden oluşturulması ile bölme yönteminde bölen, bölünenden veya kısmi kalandan, negatif bir kalan oluşana dek çıkarılır. Sonra bu kalan yeniden düzenlenir. Bölümdeki sayı son çıkarma hariç bölenin kaç defa çıkarıldığını gösterir. Ondalık bölme algoritması aşağıda gösterilmiştir. İkili sayılarla bölme algoritmasının benzeridir. Bölen bitlerinin oluşumu farklıdır. Bölünen veya kısmi kalan sola kaydırılır. En önemli basamak A e dedir. Bölenin daha sonra 10 a göre tümleyeni alınıp bölünene eklenmesiyle, bölünenden bölen çıkarılır. B e baştan temizlendiğinden bunun tümleyeni 9 dur. E deki elde A ve B nin durumlarını

15 bildirir. Eğer E = 0 ise A < B dir ve bölen kısmi kalana eklenir ve Q L 0 olarak kalır. Eğer E = 1 ise A B dir Q L deki basamak 1 arttırılır ve bölen tekrar çıkarılır. Bu işlem, çıkarma işlemi negatif sonuç verene kadar sürdürülür (yani E = 0 oluncaya kadar). E = 0 olunca bölüm basamağı arttırılmaz. Fakat bölen toplanarak kalanın pozitif olması sağlanır. Bu yolla bölüm basamağı bölenin, kısmi kalanda kaç defa bulunduğunu gösterir. Kısmi kalan ve bölüm bitleri bir defa sola kaydırılır ve işlem k defa tekrarlanır. Böylece k bölüm basamağı elde edilir. Kalan A yazacında, bölüm Q dadır. E nin değeri ihmal edilir. Ondalık bölme için akış şeması