Bedava Ödev İndir > Akademik-Üniversite Kaynaklar > Bilgisayar Kaynaklar > SAYI SİSTEMLERİ, MİKROİŞLEMCİLER
Sayfa: 1
  Yazdır  
Gönderen Konu: SAYI SİSTEMLERİ, MİKROİŞLEMCİLER  (Okunma Sayısı 160 defa)
Mayıs 14, 2008, 17:24:09 ÖS
Abruzzi
Çalışkan öğrenci
****

Rep +4/-0
Mesaj Sayısı: 1031



Üyelik Bilgileri
« : Mayıs 14, 2008, 17:24:09 ÖS »





BÖLÜM 1
GİRİŞ
1.1 SAYI SİSTEMLERİ
1.1.1 Konumsal Sayı Sistemleri
İkili sayı sistemi, sayısal bilgisayarlarda kullanılan en geleneksel ve kolay gerçeklenebilen bir sayı sistemidir. Bu gösterimde bir sayı n-bitlik bir vektör olarak kodlanır. Bu vektördeki her bit kendi konumuna göre ağırlıklandırılır. Her sayı sisteminde bir taban (radix veya base) r vardır. Her bit 0 ile (r-1) arasında bir tam değere sahiptir. İkili sayı sisteminde r = 2’ dir. Bu yüzden her bit yalnız 0 veya 1 değerini alabilir.
(1.1) bağıntısıyla verilen n-bitlik bir vektörü inceleyelim .
A =                                (1.1)
Burada 0    için  ai = 0 veya 1’dir. Bu vektör, V  tamsayı değerlerini   arasında gösterebilir.
V = an-12n-1 + ... + a121 + a020                                      (1.2)
Bu yüzden genellikle   ile gösterilen A vektörünün  değeri
                                   (1.3)
bağıntısıyla tanımlanabilir. (1.3) bağıntısı pozitif tamsayıları göstermek içindir. Bu gösterim kesirli sayıları kapsayacak  şekilde (1.4) bağıntısındaki gibi genişletilebilir.
 
     = an-12n-1 + ... +a121 + a020
        + a-12-1 + a-22-2 +... + a-m2-m                           (1.4)
101101.1101 bit dizisi (taban noktası ile birlikte) aşağıdaki değeri göstermektedir.


1x25 + 0x24 + 1x23 + 1x22 +0x21 + 1x20 +
+1x2-1 + 1x2-2 + 0x2-3 + 1x2-4 = 45
Bir sayı sisteminde her bit 0 ile (r-1) arasında bir değer alır. Bu durum hanelerden oluşan bir S kümesi oluşturur.
S  = 0,1,2, ... ,r-1                            (1.5)
Bu takımdaki bütün haneler pozitif olarak ağırlıklanmıştır. Ayrıca hem  pozitif ve hem de negatif ağırlıklı hanelerin bulunduğu  bir küme kurmak mümkündür, örneğin
T = {-l, ... , -1,0,1, ... , l}                          (1.6)
Burada l, kümenin  alçak ve yüksek sınırını gösteren bir pozitif tamsayıdır. Bu artık (redundant) sayı sistemi olarak düşünülür, çünkü verilen bir sayıyı göstermek için birden çok yol olabilir.
Örneğin n = 4 ve r = 2 için  A = -5 sayısı aşağıda verilen dört gösterime sahip olur. Artık sayı sisteminin, aritmetik işlemlerde kullanılmasını zorlaştıran işte bu çok gösterimdir. Ayrıca her işaretli hane, bu haneyi göstermek için birden çok bit gerektirdiğinden, saklayıcı gereklerini ve saklama yolunun genişliğini arttırabilir.
      23   22   21   20
A = -5      0   -1   0   -1
      0   -1   -1   1
      -1    0   1   1
      -1    1   0   -1

1.1.1.1 Sekizli (Octal) Sayı Sistemi
Sekizli sayı sistemi tabanı 8 olan  bir sistem olup birçok bilgisayarda yaygın olarak kullanılmıştır. IBM 7090, DEC PDP-8 bilgisayarlarında ve birçok mikrobilgisayar yongalarında kolay ve doğrudan giriş/çıkış işlemi için sekizli sayılar kullanılmıştır. Bu sistemde haneler 0-7 arasındaki değerleri alır. Herhangi bir sayı (1.7) bağıntısı ile verilebilir.
A = an-1 8n-1 + ... + a2 82 + a1 81 + a0 80                      (1.7)
Burada an-1, ... , a2, a1, a0 haneleri 0,1,2,3,4,5,6,7 değerlerini alabilir.
Sekizliden Onluya Dönüşüm. (1.7)  bağıntısı kullanılarak öğneğin (37)8 sayısını onluya dönüştürelim.
(37)8 = 3x81 + 7x80
          = 3x8 + 7x1
          = (31)10
Onludan Sekizliye Dönüşüm. Onludan sekizliye dönüşüm, onlu sayının tamsayı kısmı için tekrarlı bölme ve kesirli kısmı için tekrarlı çarpma kullanılarak yapılır. Örnek olarak (127)10  sayısını dönüştürelim.
 
           177
 (127)10 = (177)8 bulunur.
Kesirli onlu sayının sekizliye dönüşümü için (49.21875)10 sayısını ele alalım.
Tam Kısım      Kesirli Kısım         Sonuç
                  (49.21875)10 = (61.16)8
       1.75000   6.00
       61   1      6
1.1.1.2 Onaltılı (Hexadecimal) Sayı Sistemi
Onaltılı sayı sistemi IBM 360, IBM 370, IBM 1130, Honeywell 200, ve RCA spectra 70 gibi birçok bilgisayarda kullanılmaktadır. Bu sistem, 10, 11, 12, 13, 14, 15 hane değerlerini  temsil edebilmek için ilave sayı sembollerine ihtiyaç göstermektedir. Bu sistemde haneler 0-15 arasında değerler alır; Şekil 1.1.
Onaltılı Tamsayılar. Herhangi bir  onaltılı tamsayı (1.Karizmatik bağıntısıyla verilebilir.
   = an-116n-1 + ...+ a2162 + a1161 + a0160                         (1.Karizmatik
Burada an-1 ... a1,a0 haneleri 0, 1, 2, ... 14,15, değerlerini alabilir.  Örneğin (23)16 sayısının (35)10  sayısına eşit olduğunu gösterelim.
(23)16  = 2x161 + 3x160
   = 2x16 + 3x1
   = (35)10   
veya
(1FF)16 = 1x162 + Fx161 + Fx160
       = 1x256 + 15x16 + 15x1
      = (511)10
Onlu   Onaltılı      Onlu   Onaltılı
   0       0         8       8
   1       1         9       9
   2       2        10        A
   3       3        11       B
   4       4        12       C
   5       5        13         D
   6       6        14       E
   7       7        15        F

Şekil 1.1. Onaltılı sayı sistemindeki haneler.
Kesirli onaltılı sayıların onlu karşılığını bulmak için, kesir haneleri, konumlarına bağlı olarak 16’nın kuvvetlerine bölünür. 
(3B.8)16 = 3x161 + Bx160 + 0.8x16-1
      = (59.5)10
Onlu Sayının Onaltıya Dönüşümü. Onludan onaltıya dönüşüm, tam kısmını tekrarlı olarak 16’ya bölerek ve kesirli kısmını tekrarlı olarak 16 ile çarparak yapılır. Aşağıdaki örnekte bu yöntem gösterilmiştir.
(567.1875)10 = (?)16
Tam Kısım         Kesirli Kısım            Sonuç
                       (567.1875)10 = (237.3)16
          3. 000
           237

İkilinin Onaltıya Dönüşümü. İkili hanelerden dörtlü gruplar yaparak onaltıya dönüşüm sağlanabilir. Gruplamaya sağdan başlanır ve  her dörtlü grubun yerine onaltılı eşdeğeri koyulur. Aşağıdaki örneklerle bu işlem gösterilmiştir.
(0110 1111 0101)2 = (?) 16
  0110  1111  0101      olduğundan
      6       F        5
(0110 1111 0101)2 = 6F5   bulunur.
1.1.2 Sayı Gösterimleri     
Tüm matematik fonksiyonlar dört ana aritmetik işlem cinsinden ifade edilebilir:  Toplama, çıkarma, çarpma ve böime. Bu işlemler üç tür sayı gösterimine karşı düşen üç çalışma modunda icra edilebilir: Sabit-noktalı (fixed point), kayan-noktalı (floating point,) ve onlu (binary coded decimal).
Sabit-noktalı aritmetik basit olarak verinin sabit taban noktası ile gösterildiği problemlerde kullanılır, yani taban noktası sayıda sabit bir konumda kalır. Sabit noktalı işlemler iki sınıfa bölünebilir. Tamsayı aritmetiğinde kesir (radix) noktası sayının sağındadır. Bundan dolayı sabit-noktalı notasyonda gösterilmiş bir tamsayı, bu sayının tutulduğu kaydedicinin sağında imalı bir kesir noktasına sahiptir, Şekil 1.2. Kesirli aritmetikte, kesir noktası sayının solundadır. Bilgisayar tasarımcıların çoğu tamsayı biçimini benimser.
     X  X  X . . . . . X    .      Tamsayı biçimi
      
.     X  X  X . . . . .  X           Kesirli sayı biçimi

Şekil 1.2. Sabit-noktalı sayı gösterim biçimleri
Kayan-noktalı aritmetik, genlik ölçeklemesinin çok sık gerekli olduğu bilimsel ve mühendislik hesaplarında kullanılır. Kayan-noktalı işlemler de iki sınıfa ayrılır. Normalize edilmiş  işlemler, hesaplamaya giren verilerin normalize edilmesini gerektirir. Bu gösterimde kesir noktasının hemen sağındaki bit 1’dir. Normalize edilmemiş işlemlerde sayılar kesirli biçimde gösterilir, ama kesir noktasının hemen sağındaki bit 1 veya 0 olabilir. Bilgisayarların çoğu normalize edilmiş sayıları kullanmaktadır. Her iki biçim Şekil 1.3’te gösterilmiştir, burada X = 0/1’dir.

    .      1  X  X . . . . . X          Normalizeli biçim 
      
.     X  X  X . . . . .  X           Normalizesiz biçim

Şekil 1.3. Kayan-noktalı sayı biçimleri
Kayan-noktalı aritmetik öiçekleme faktörü problemini ortadan kaldırır, ve sayı alanını sabit-noktalı aritmetiğin üstüne çıkarır. Kayan-noktalı bir sayı, f kesir (fraction) kısmı ve  e üs (exponent) kısmı olmak üzere iki kısımdan meydana gelir. Bu iki kısım e’inci kuvveti alınmış bir tabanın f ile çarpımından elde edilen bir sayıyı gösterir, yani A kayan noktalı sayısı
A = fxre                                 (1.9)
biçimde ifade edilir. Burada f ve e işaretli sabit noktalı sayılar ve r ise tabandır. Bazen kesir kısmına mantissa ve üs kısmına da karakteristik adı da verilebilir.
Kesir kısmı genellikle işaretli genlik, üs ise 2’li tümlenmiş veya kutuplu biçimde temsil edilir. Doğruluk önemli olduğundan kesirde mümkün olduğu kadar çok anlamlı bit bulunmalıdır. Bu iş sayı normalize yapılarak başarılır. 2 tabanında normalizasyon, taban noktasının hemen sağındaki bit 1 oluncaya kadar kesirin sola doğru kaydırılması  ve üssün de bu kaydırmaya uygun olarak azaltılması ile yapılır. Normalize edilmiş kesirin genliği (1.10) bağıntısıyla verilen mutlak değere sahiptir.
(1/r)   1                               (1.10)
Burada r tabanı göstermektedir.
32-bitlik  kayan-noktalı bir ikili sayı biçimi Şekil 1.4’te gösterilmiştir. Sayının işareti her zaman en anlamlı hanede bulunur. Bu bit pozitif sayılar için 0 ve negatif sayılar için 1 olur.
                      31 30             24 23                      0
S       e                f
                     
                       24 - bitlik kesir
                              7- bitlik işaretli üs
                                       sayının işareti   
Şekil 1.4. 32-bitlik ikili kayan-noktalı sayının biçimi.
e üssü pozitif veya negatif tamsayı olabilir. Negatif üsler 2’li tümlenmiş biçimde tutulur. Kayan-noktalı sayıların toplanması ve çıkarılması işlemlerinde üslerin karşılaştırılması gerektiğinden, üslerin işaretlerinin kullanılması gerekir. Halbuki karşılaştırma işlemi üslerin işaretlerini gerektirmeden yapılabilir. Bunun için kayan-noktalı sayı oluşturulurken her üsse pozitif bir değer eklenerek tüm üsler pozitif sayılara dönüştürülür. Bu pozitif değere kutuplama sabiti denir ve en negatif üssün genliğine eşittir. Eğer üs alanı m bitlik uzunluğa sahipse, o zaman kutuplama sabiti  +2 m-1 olur ve tüm e üsleri 2m-1  kadar kutuplanır, yani bu üsler
e kutuplu = e + 2m-1                            (1.11)
ile gösterilir. Bu kutuplama sayesinde 0 değerli  kayan-noktalı bir sayının hem mantissası hem de üs kısmı tamamen sıfır olur. 2’li tümlenmiş gösterimde sıfır değerli sayı için üs en büyük negatif değerini alır.
Onlu aritmetik onlu veriler üzerinde yapılan aritmetik,kaydırma ve düzenleme işlemleri için kullanılır. Onlu haneler paketli veya paketsiz biçimde gösterilebilir. Paketli biçimde her bayt, iki onlu hane içerir. İşaret hanesi de 4-bitlik olmalıdır. Paketsiz biçimde bir baytın en sağdaki 4-biti bir onlu hane oluşturur; en soldaki 4-bit ise onlu veriyi temsil etmek için kullanılmaz. Bu iki onlu sayı biçimi Şekil 1.5’te gösterilmiştir.
7                        4            3                     0   
         Hane
      Hane   
            Paketli biçim
          Hane         İşaret   
      
          Bölge
       Hane   
             Paketsiz biçim
           İşaret           Hane   
   
Şekil 1.5. Onlu  sayı biçimleri.
İkili işlem yapan bir işlemci onlu sayıları alır, ikili biçime dönüştürür, işlemleri yapar, ve sonuçları tekrar onlu biçime dönüştürebilir. Bu durum az sayıda giriş/çıkış ve çok miktarda hesaplama için yeterlidir. Ama eğer bunun tersi geçerli ise, yani çok sayıda giriş/çıkış işlemi ve buna nispeten az miktarda  hesaplama gerekiyorsa, o zaman onlu aritmetik kullanarak hesapları yapmak daha verimlidir.
Bir onlu hane 4-bitten oluşur. 4-bitle 15’e kadar sayılar temsil edilebildiği halde,  onlu hane 9’dan büyük değer alamayacağından 10-15 arasındaki değerler geçersiz onlu hanelerdir. Bu yüzden onlu sayılarla işlem yapıldığı zaman her onlu hanenin geçerli olup olmadığı test edilmeli ve eğer geçersiz ise o haneye 6 eklenerek düzeltilmelidir.
1.1.3 Tamsayı Gösterimleri
Eğer yalnız pozitif tamsayılar sabit-noktalı notasyonda gösterilecekse, o zaman n-bitlik bir kelime 0-(2n-1) değerine kadar tüm sayıları gösterebilir. Ama hesaplamalarda hem pozitif  hem de negatif  tamsayılar kullanıldığından, pozitif ve negatif sayıların mümkün olduğunca eşit dağılabileceği bir kodlama biçimi bulunmalıdır. Bu kodlamada işaret denetimi kolay yapılabilmeli, 0’ların algılanması basit olmalı, ve dört işlemin icrası rahatça yapılabilmelidir.
Konumlu sayı sisteminde pozitif ve negatif sayıları göstermek için kullanılan üç yöntem vardır: İşaretli genlik (sign magnitude), küçültülmüş tabanlı tümleme (diminished radix complement), ve tabanlı tümleme (radix complement).
1.1.3.1 İşaretli Genlik
Bu gösterimde en anlamlı bit tamsayısının işaretini gösterir ve pozitif sayılar için 0, negatif sayılar için 1’dir. Pozitif sayı 0-(2n-1-1) arasında ve negatif sayı ise 0--(2n-1 -1) arasında değerler alabilmektedir. Bu yüzden pozitif bir sayı
A = (0an-2an-3 ... a1a0)r                            (1.12)
ve negatif bir sayı
-A = (r-1)an-2an-3 ... a1a0r                         (1.13)
ile gösterilebilir. r = 2 için (1.12) ve (1.13) bağıntıları sırasıyla
 A = 0nn-2an-3 ... a1a0
-A = 1an-2an-3 ... a1a0                               (1.14)
haline gelir. İşaretli genlik notasyonunda pozitif sayı negatif sayıdan yalnız işaret hanesinde farklılık gösterir. an-2an-3 ... a1a0 genlik kısmı hem pozitif hemde negatif sayılar için aynıdır.
İşaretli genlik gösteriminde var olan bir problem 0 sayısının  iki farklı biçimde gösterilebilmesidir, yani +0 ve -0. İkinci problem zıt işaretli iki sayı toplanırken meydana gelir; sonucun işaretini belirlemek için genlikler karşılaştırılmalıdır. Diğer iki yöntemde  bu durum gerekli değildir. İşaretli genlik gösterimi kayan-noktalı sayıların kesir kısmının gösterimi için sık sık kullanılmaktadır.
1.1.3.2.Küçültülmüş Tabanlı Tümleme
İkili notasyonda küçültülmüş tabanlı (r-1) tümleme 1’li  tümleme olarak bilinir. 0 - (2n-1 - 1) arasındaki pozitif tamsayılar, ikili  konumsal sayı sistemindeki gibi gösterilir, yani
A = 0 an-2an-3 ... a1a0                            (1.15)
biçimindedir. 0 - -(2n-1 -1) arasındaki negatif sayılar ise, sayının pozitif eş¬de¬ğer¬le¬rindeki bitlerin tümleyenleri alındıktan sonra işaret hanesine 1 koyularak elde edilir. Bu yüzden pozitif bir sayı
A = 0an-2an-3 ... a1a0                            (1.16)
ile ve aynı mutlak değere sahip negatif bir sayı ise
 =  1                          (1.17)
ile gösterilir. Veya daha genel biçimde       
                          (1.18)
ile gösterilebilir. Burada    dir.
Bu gösterimde iki sayının işaretlerinin karşılaştırılması çok açıktır, çünkü en soldaki bit pozitif sayılar için  0 ve negatif sayılar için 1’dir. Ama 0 için çift gösterim halen daha devam etmektedir. Çünkü tamamen 0’lardan oluşan bir kelime (+0) tümlendiği zaman, tamamen 1’lerden oluşan bir kelime (-0) haline gelir.
1.1.3.3 Tabanlı Tümleme
İkili notasyonda tabanlı tümleme 2’li tümlemedir. 0-(2n-1-1)  arasındaki pozitif sayılar, ikili konumsal sistemde
A = 0an-2an-3 ... a1a0                            (1.19)
bağıntısıyla gösterilir. Negatif sayılar, negatif  değeri arzu edilen sayının 1’li tümleyenine 1 eklenerek bulunur. Bu yüzden negatif bir sayı
                         (1.20)
 bağıntısıyla gösterilir.
Genellikle negatif bir sayının tabanlı tümleyeni
                       (1.21)
biçiminde veya   ile gösterilir. İşaret denetimi yine yalnız iki bitin karşılaştırılmasına dayanır. 0 değerli sayının tek bir gösterimi vardır, çünkü bir 0 dizisinin negatifi alındığı zaman yine 0 dizisi elde edilir (anlamlı bit konumundan çıkan elde gözardı edilir).
Sayı alanı (-2n-1) - (2n-1-1) arasındadır. Burada -2n-1 sayısı 1 ve bunu izleyen (n-1) adet 0 ile gösterilir. Toplama ve çıkarma küçültülmüş tabanlı tümlemedekinden daha kolay yapılır,  ve sonuç daima doğru 2’li tümlenmiş biçimdedir.
1.1.4 Alfasayısal Kodlar
Sayısal bilgisayarların çoğu uygulamalarında yalnız sayısal veriler değil aynı zamanda harfler de kullanılır. Örneğin binlerce poliçe hamili olan bir sigorta şirketi, kütüklerini işlemek için bilgisayar kullanmak zorundadır. Adları ve diğer ilgili bilgileri temsil edebilmek için, alfabedeki harflerin kodlanabilmesi gerekir. Ayrıca aynı ikili kod, sayıları ve $ gibi diğer özel karakterleri de temsil edebilmelidir. Alfasayısal karakter  takımı, 10 tane onlu haneyi (rakamları), alfabedeki 26 harfi, ve bir çok özel karakteri içeren bir elemanlar takımıdır. Böyle bir takım yalnız büyük harfleri kapsarsa 36-64 arasında, veya hem büyük hem de küçük harfleri kapsarsa 64-128 arasında eleman içerir. İlk durumda 6-bitlik ikinci durumda ise 7-bitlik ikili koda ihtiyaç vardır.
İkili kodlar bilgisayarlarda önemli rol oynar. Bu  kodlar ikili kod olmalıdır, çünkü bilgisayarlar yalnız 1 ve 0’ları saklayabilir. Bilinmelidir ki, ikili kodlar yalnız sembolleri değiştirir, onların temsil ettikleri bilgilere ait elemanların anlamını değiştirmez. Bilgisayardaki bitleri rastgele incelediğimiz zaman  çoğu kez ikili  sayılardan ziyade bir tür kodlanmış bilgiyi temsil ettiklerine rastlarız.
1.1.4.1 ASCII Karakter Kod
Alfasayısal karakterler için standart ikili kod ASCII (American Standart Code for Information Interdange) koddur. Tablo 1.1 de gösterilen 128 karakteri kodlamak için 7-bit kullanır. Kod bitleri B1 anlamsız ve B7 en anlamlı olacak şekilde atanmıştır. Örneğin A harfi 1000001 bit dizisiyle (sütun 100, satır 0001) temsil edilir. ASCII kod, basılabilen 94 grafik karakter ve çeşitli denetleme fonksiyonları için kullanılan 34 basılamayan karakter içerir. Grafik karakterler A’dan Z’ye 26 büyük harf, 0’dan 9’a 10 rakkam, ve %, *,ve $ gibi 32 özel karakterden ibarettir.   
Tablo1.1 American Standard Coode for Information  Interchange (ASCII)     
            B7B6B5               
   B4B3B2B1    000    001    010    011    100    101    110    111
      0000    NUL    DLE      SP      0      @      P      ‘      P
      0001    SOH    DC1        !      1       A      Q      a      q
      0010    STX    DC2        “      2       B       R      b       r
      0011     ETX     DC3       #      3       C       S       c       s
      0100     EOT     DC4        $      4       D       T       d       t
      0101    ENQ    NAK          %       5        E       U      e       u
      0110    ACK     SYN       &      6       F       V      f        v
      0111    BEL    ETB       ‘      7      G      W      g       w
     1000    BS    CAN        (      8      H       X       h       x
     1001    HT    EM        )      9       I        Y      i        y
     1010    LF   SUB      *      :        J       Z      j       z
     1011    VT   ESC       +      ;        K       [      k       {
     1100     FF    FS      ‘          <       L       \           ı        ¦
     1101   CR    GS      —       =       M       ]       m        }
     1110   SO    RS        .       >       N       ^      n       ~
     1111   SI    US       /       ?       O       _      o    DEL

Kontrol karakterleri
   NUL   Null   DLE   Data link escape
   SOH   Start of heading   DC1   Device control 1
   STX   Start of text   DC2   Device control 2
   ETX   End of text   DC3   Device control 3
   EOT   End of transmission   DC4   Device control 4
   ENQ   Enquiry   NAK   Negative acknowledge
   ACK   Acknowledge   SYN   Synchronous idle
   BEL   Bell   ETB   End of transmission block
   BS   Backspace   CAN   Cancel
   HT   Horizontal tab   EM   End of medium
   LF   Line feed   SUB   Substitute
   VT   Vertical tab   ESC   Escape
   FF   Form feed   FS   File separator
   CR   Carriage return   GS   Group separator
   SO   Shift out   RS   Record separator
   SI   Shift in   US   Unit separator
   SP   Space   DEL   Delete

34 denetim karakteri, ASCII tabloda kısaltılmış adlarıyla gösterilmiştir. Bu karakterler tablonun aşağısında tam fonksiyonel adlarıyla yeniden listelenmiştir. Denetim karakterleri, verilerin yolunu çizmek ve önceden belirlenmiş biçimde bir metnin basımını düzenlemek için kullanılır. Biçim etkileyiciler, bilgi ayırıcılar, ve haberleşme denetim karakterleri olmak üzere üç çeşit denetim karakteri vardır. Biçim etkileyiciler, baskının yerleşimini denetleyen karakterlerdir. Bunlara örnek olarak BS geri-alma (backspace), HT yatay tablolama (horizontal tabulation), ve CR geri-dönüş (carriage return) karakterleri verilebilir. Bilgi ayırıcılar, verileri paragraf ve sayfalar gibi bölümlere ayırmak için kullanılır. Bunlara RS kayıt ayırıcı (record separator) ve FS kütük ayırıcı (file separator) karakteri örnek olarak verilebilir. Haberleşme denetim karakterleri, uzak terminaller arasında metnin iletimi için yararlıdır. Telefon hatları üzerinden iletişim yapıldığı zaman metni çerçevelemek için kullanılan STX metni başlatma (start of text ) ve ETX metni sonlandırma (end of text) karakterleri bu sınıfa örnek olarak verilebilir.
ASCII, 7-bitlik bir koddur, ama çoğu bilgisayarlar bayt adı verilen 8-bitlik büyüklüğü tek bir birim olarak kullanır. Bundan dolayı ASCII karakterler çoğunlukla en anlamlı biti 0 olmak üzere bayt başına bir karakter düşecek şekilde saklanır. Bu ilave bit uygulamaya bağlı olarak bazen özel amaçlar için kullanılır. Örneğin bazı yazıcılar (printer), en anlamlı biti 1 olan 8-bitlik ilave 128 ASCII karakter kullanılır. Bu sayede Greek karakterler ve italik biçimler üretilebilmektedir.
IBM cihazlarda kullanılan diğer alfasayısal kod EBCDIC (Extended BCD Interchange Code) koddur. Bu kod her karakter için 8-bit kullanır. EBCDIC ile ASCII aynı karakter sembollerini kullanır, ama karakterlerin bit atamaları farklıdır. Adından da anlaşılacağı gibi; harfler ve rakamların ikili kodu, BCD kodun bir uzatımıdır. Bunun anlamı şudur: Kodun ilk ve son dört biti, BCD kodda olduğu gibi  0000-1001 arasında değişir.

1.2 LOJİK İŞLEMLER
İkili lojik, iki ayrı değer alan değişkenler  ve lojik anlam taşıyan işlemlerle uğraşır. Değişkenlerin aldığı bu iki değer farklı şekillerde adlandırılabilir, ama buradaki amaca uygun olması açısından ikili değer cinsinden düşünülmeleri ve her değişkene 1 veya 0 atanması uygundur. Değişkenler alfabedeki harflerle adlandırılır (örneğin A, B, C, ... gibi). İkili değişkenlere ilişkin üç temel lojik işlem vardır: AND, OR, NOT işlemleri.
1. AND İşlemi. Bu bir Boole çarpma işlemidir. A ve B Boole değişkenleri olmak üzere A AND B = AB şeklinde gösterilir. Bu işlemi gerçekleyen lojik kapının sembolik gösterimi ve bu işlemin doğruluk (truth) tablosu Şekil 1.6 da gösterilmiştir. Tablodan da görüleceği üzere AND işlemi iki değişkenin 1 olması durumunda 1 sonucunu verir.
 
      (a)                 (b)
Şekil 1.6. (a) AND kapısının sembolik gösterimi, (b) doğruluk tablosu.
2. OR İşlemi. Bu bir Boole toplama  işlemidir. A ve B Boole değişkenleri olmak üzere A OR B = A + B şeklinde gösterilir. Bu işlemi gerçekleyen lojik kapının sembolik gösterimi ve bu işlemin doğruluk tablosu Şekil 1.7 de gösterilmiştir. Her iki değişkenin aynı anda 0 olması durumunda OR işlemi 0 sonucunu doğurur.
 
      (a)               (b)
Şekil 1.7. (a) OR kapısının sembolik gösterimi, (b) doğruluk tablosu.
3. NOT İşlemi. Bu bir tümleme işlemidir. A bir Boole değişkenini veya fonksiyonunu göstermek üzere NOT A =   ile gösterilir. Bu işlemi gerçekleyen lojik kapının sembolik gösterimi ve doğruluk tablosu Şekil 1.8 de gösterilmiştir.
 
   (a)            (b)
Şekil 1.8. (a) NOT kapısının sembolik gösterimi, (b) doğruluk tablosu.
Bu işlemler temel işlemler olup, bunlardan türetilen türev işlemler vardır. Türev işlemler XOR, NAND, NOR gibi işlemlerdir. NAND ve NOR işlemleri sırasıyla AND ve OR işlemlerinin değillerine karşılık düşer, bu yüzden burada verilmeyeceklerdir. Ama XOR işlemi aritmetik işlemlerde ve eşitlik karşılaştırmada çok kullanıldığından burada açıklanması uygun olacaktır.
4. XOR İşlemi. Denetimli tümleme işlemidir. A ve B Boole değişkenleri olmak üzere A XOR B = A + B ile gösterilir. Bu işlemi gerçekleyen kapının sembolik gösterimi ve doğruluk tablosu Şekil 1.9 da verilmiştir. Doğruluk tablosundan görülebileceği üzere, A = 0 iken çıkış A + B = B dir, tersine A=1 iken A + B =    dir. Buradan A değişkeni sayesinde B değişkeninin tersinin alınıp alınmayacağı denetlenebilmektedir.
 
       (a)                      (b)
Şekil 1.9. (a) XOR kapısının sembolik gösterimi, (b) doğruluk tablosu.
XOR işlemi 1-bitlik iki sayının toplanmasında kullanılabilir. Doğruluk tablosundan görülebileceği üzere, A = B = 1 olduğu zaman toplam 2 etmesine rağmen a+B = 0 olmuştur. Bu sonuç sayı tabanı çıkarılarak bulunmuştur ve elde doğurur. Diğer durumlarda A+B değeri çıkış olarak alındığından, toplamı tam doğru olarak temsil etmektedir. XOR kapısı aynı zamanda eşitlik karşılaştırıcıdır. Doğruluk tablosundan görüleceği üzere, A ve B değişkenleri aynı değerli olduğu zaman çıkış 0, farklı olduğu zaman çıkış 1’dir.

1.3 BİLGİSAYARIN GENEL YAPISI
Basit bir  sayısal bilgasayarın blok dyagramı Şekil 1.10 da gösterilmiştir. Merkezi işlem birimi (CPU) çoğunlukla insan beynine benzetilir, çünkü burası tüm kararların alındığı ve sistem zamanlamasının üretildiği yerdir. CPU’da bir aritmetik  lojik birim (ALU) vardır ve tüm matematiksel işlemler orada yapılır. Bu hesapların sonuçları akumülatör adı verilen CPU içindeki özel bir kaydedicide saklanır.
Bu işi gerçeklemek için CPU’ya emretmek amacıyla kullanılan belirli bir komut dizisini saklayacak bir bellek birimi kullanılmalıdır. Bu emirlere bilgisayar programı adı verilir. Emirlerin işleyeceği veriler için bellekte yer ayrılır. Bu belleğe veri bellek adı verilir.
Giriş/çıkış cihazları  olmadan bilgisayarın çok yararlı iş yapması mümkün değildir. Yapılacak işe ilişkin emirleri veya komutları bilgisayara girebileceğimiz cihaz klavyedir. Sonuçları ise yazıcı veya CRT ekran üzerinde gözleriz.
 
Şekil 1.10. Basit bir bilgisayarın blok yapısı.
Program belleğin içeriği incelendiği zaman, bizim için anlamı olmayan bir sayılar kümesi ile karşılaşırız. Ama CPU için bu sayıların anlamı büyüktür ve CPU’nun yürüteceği işlemleri gösteren bir komut takımını temsil eder. Bu sayılar, CPU’nun emir takımındaki çeşitli emirlere ilişkin işlem kodlarını (opcode) gösterir.
CPU, bellek, ve giriş/çıkış cihazlar birbirleriyle haberleşebilmelidir. Örneğin CPU seçilecek bellek alanını belirleyebilmeli ve bu alana bilginin yazılacağını veya okunacağını tanımlayabilmelidir. Bu iş adres, veri, ve denetim hatları sayesinde yapılır. CPU belirli bir bellek alanının içeriğini okuyacağı zaman, ilk olarak o yerin adresini adres yoluna koyar. Bu adres program sayıcının içeriğidir. Denetim hatları belleğe erişileceğini ve bellek üzerinde örneğin okuma işleminin yapılacağını tanımlar. Bunun sonucunda seçilen bellek alanın içeriği veri yolu üzerinden CPU’ya taşınır.
Bu üç yola sahip bilgisayar mimarisinin çalışmasına örnek olarak akumülatör içeriğini dış cihaza (örneğin yazıcıya) gönderen bir emiri inceleyelim. Bu emirin icrasi, yazıcı adresinin CPU tarafından  adres yoluna koyulmasını gerektirir. Yazıcıya ait olan adres kodçözücü bu adresi değerlendirerek CS hattını aktif yapar. Daha sonra akumülatör içeriği veri yoluna koyulur, ve ardından yazma denetim işareti aktif yapılarak veri yolu üzerindeki bilgi arayüz cihazına yazılmış olur. Arayüzün çıkışı aynı zamanda yazıcının girişine uygulanmış olduğundan, bilgi yazıcıya iletilmiş demektir.
Adres, veri, ve denetim yollarının genişliği kullanılan CPU’ya bağlıdır. Emirleri 8-bitlik verileri işleyebilen bir CPU’nun veri yolu genellikle 8-hatlı ve adres yolu 16-hatlı olmaktadır. Denetim yolunun genişliği 8-bitlik CPU’larda bile değişik olabilir.  Bu yol CPU’yu tanımlayan bazı özel hatlar içerebilir. Ama her CPU’da  ortak olan denetim hatları vardır, örneğin okuma, yazma,...vs hatları gibi. Denetim hatlarının bir kısmı CPU’ya giriş bir kısmı çıkıştır. Halbuki adres yolu sadece çıkış, veri yolu ise hem giriş  hem de çıkış olabilmektedir.

1.4 MİKROBİLGİSAYARIN PROGRAMLANMASI
1.  Makina ve Asembli Dili Programlama. Bütün bilgisayarlar ikili sayılar kullanılarak programlanmalıdır. Ama bu programlama biçimi programcı açısından çok hantaldır. Klavyeden girilen iki sayıyı toplayan bir Z80 mikroişlemci programı incelensin.
11011011   
00000000
01000111
11011011
00000000
10000000
11010011
01000000
01110110

Bu programın çok açık olmadığı aşikardır. Ama Z80 işlemci için oldukça açıktır. Bu tüm programa amaç kodu (object kodu) denir ve CPU’nun icra edebileceği yegane kodu içerir. Ama programcının bu kodu kullanabilmesi hemen hemen imkansızdır.
Şimdi bu programın onaltılı tabanda kodlandığı düşünülsün.
   DB
   00
   47
   DB
   00
   80
   D3
   40
   76
Elbette bu program daha okunabilir biçimdedir, ama programın  görevi halen daha açık değildir. Şimdi de bu onaltılı kodlara karşı düşen mnemonic  biçimler (emir işlem kodlarının kısaltımı) kullanılsın.
   İkili   Onaltılı   Mnenonic      Açıklama
   11011011   DB   IN     A,(OOH)    ;    00 adresinden birinci
   00000000   00                              ;    sayıyı A kaydedicisine gir.
   01000111   47   LD    B,A            ;   A’nın B’de kopyasını oluştur.
   11011011    DB   IN     A,(00H)      ;   00 adresinden ikinci sayıyı
   00000000   00                             ;   A kaydedicisine gir.
   10000000   80   ADD  A,B           ;   A ve B kaydedicilerini topla ve
               sonucu A’da sakla
   11010011   D3   OUT  (40H),A    ;   A’nın içeriğini kırk adresine
   01000000   40                                 yaz
   01110110   76   HALT                 ;   Dur.

Bu programın görevi şimdi oldukça açıktır. Birinci sayı 00 adresinden A kaydedicisine girilir. Klavye bu 00 adresine bağlanmıştır. Üstüne yazma yapılmasın diye birinci sayı A’dan B kaydedicisine taşınır. Daha sonra ikinci sayı klavyeden A kaydedicisine girilir ve A ve B kaydedicilerinin içerikleri toplanır. Sonuç, monitörün bağlı olduğu varsayılan 40 adresine gönderilir. En son emirle mikroişlemci durdurulur.
Mikroişlemci emirleri ikili, onaltılı, ve mnomonic biçimde gösterilebilir.  Kullanılan açıklamalar, programın yaptığı işi daha da netleştirir. Emirleri onaltılı biçimde girerek bilgisayarın programlanması makina dili programlama olarak bilinir. Bazı bilgisayarlar mnomonic biçimli emirler kullanılarak programlamaya izin verir. Buna da Assembli  dili programlama denir.
Assembli dili program kullanıldığı zaman Assembler  adı verilen özel bir programa ihtiyaç vardır. Assembler programı, Assembli dili  kütüğün oluşumunu kolaylaştıran bir cins editör ile birlikte verilir. Assembli dili kütüğe kaynak (source) kodu denir. Programın kaynak kod uyarlaması tamamlanınca, mnemoniclerin ikili kod karşılıklarını bulmak için assembler çağrılır ve amaç kod adı verilen yeni bir kütük oluşturulur. Bu kütük, belleğe yüklenip  icra edilebilecek ikili kod içerir.
Tuş takımından programın onaltılı biçimde girilmesine izin veren mikroişlemci eğitici (trainer) sistemleri kullanıldığı zaman, girilen onaltılı sayıları mikroişlemcinin değerlendirmesi nasıl mümkün olmaktadır sorusu akla gelebilir. Bunun cevabı Şekil 1.11 yardımıyla açıklanabilir. Bu devre 16-den -4’e  kodlayıcıdır. Bu devre  16 farklı girişi (0’dan F’ye kadar) alır ve bunların karşılığı olarak 0000-1111 arasında değişen 4-bitlik çıkışlar üretir. Bu sayede veriler  onaltılı biçimde bilgisayara girilse de, bilgisayar bu verileri ikili biçimde almış olur.
 
Şekil 1.11. 16-dan-4’e kodlayıcı devre.
2.Yüksek-Seviyeli Diller. BASIC programlama dili en basit yüksek- seviyeli programlama dilidir, ve bilgisayarlar ile birlikte verilmektedir. İki sayıyı toplayan program BASIC dilinde yazılırsa,
   10   INPUT N1,N2
   20   PRINT  “SUM = “; N1 + N2
   30   END
elde edilir. Orijinal ikili programla karşılaştırılışı çarpıcıdır. Elbette bu durum  tüm yüksek-seviyeli dillerin amacıdır. Programcının kendi diline mümkün olduğunca benzeyen bir dille bilgisayarla konuşması en arzulanan şeydir.
BASIC dilinde programlama, BASIC yorumlayıcı  veya derleyici  gerektirir. Yorumlayan BASIC kullanıldığı zaman, uygulama programı, editör gerektirmeden belleğe sokulabilir. Daha sonra RUN komutu verilmesi, BASIC deyimlerini yorumlayıcının incelemesini ve ardından görevi gerçekleyecek  makina kod dizisini icra etmesini sağlar. 
Yorumlayıcı kullanmak çok yavaş program icrası ile sonuçlanabilir. Eğer bilgisayar bir döngüye girerse, yorumlayıcı o döngüdeki emirleri defalarca yorumlamaya devam edecektir. Bilgisayar çok hızlı olduğundan bu gecikme programcı tarafından farkedilmeyebilir.
Yüksek-seviyeli dildeki programları amaç koda dönüştürmek için derleyici kullanılabilir. Derleyici kullanmak assembler kullanmaya benzer, çünkü uygulama program kütüğünü oluşturmak için bir editör kullanılmalıdır. Yüksek seviyeli diller, bilgisayar donanımını ve emir takımını programcının bilmesini gerektirmez, ve böylece bu yükten programcıyı kurtarır.
 
Logged

OgrenciForum.Org
Sayfa: 1
  Yazdır  
 
Gitmek istediğiniz yer:  

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC
Rengli Theme By Burak & Forum
intaniye - TRplatform - tedavin - UslanmaM - barbie oyunları - Estetik - diyet - magazin - bebek - kavak yelleri - kpss 2008 - iyinet webmaster forumu 2008 seo yarışması - evden eve nakliye - evden eve taşıma
izlesene bilgi - seznam hledat - hledaj - Forumlar - Blouse - Sohbet - sohbet - bayrak - ingilizce eğitim seti - ÖDEV - Ayyıldız - AVOYUN - Dönem ödevi
MySQL ile Güçlendirildi PHP ile Güçlendirildi XHTML 1.0 Geçerli! CSS Geçerli!
Bu Sayfa 0.113 Saniyede 17 Sorgu ile Oluşturuldu