1 / 37

Mikroişlemciler

Mikroişlemciler. Sayı gösterimleri. İçerik. Sayı gösterimleri Yönsüz, Yön büyüklük, One’s complement, Two’s complement, biased Gerçek sayılar Single Precision, Double Precision BCD Sayılar ASCII Sayılar Shift ve Rotate. Veri gösterimi.

blair-bell
Download Presentation

Mikroişlemciler

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mikroişlemciler Sayı gösterimleri

  2. İçerik • Sayı gösterimleri • Yönsüz, Yön büyüklük, One’s complement, Two’s complement, biased • Gerçek sayılar • Single Precision, Double Precision • BCD Sayılar • ASCII Sayılar • Shift ve Rotate

  3. Veri gösterimi • Bilgisayarlar, binary değerler üzerinde çalışırlar (transistörlerden oluşmalarının bir sonucu) • Sayıların, farklı binary gösterimleri bulunmaktadır: • Sadece pozitif sayılar • Pozitif ve negatif sayılar • İnsanlar taraafından olay bir şekilde anlaşılma gerekliliği • Bilgilsayar işlemlerinde hız gereksinimleri

  4. Tam sayı gösterimleri • Genelde kullanılan 5 adet tam sayı gösterimi bulunmaktadır: • Yönsüz • Yön ve büyüklük • One’s complement • Two’s complement • Biased (daha az bilinir)

  5. Tam sayı gösterimleri (devam) • Farklı zamanlarda, farklı gösterimler kullanılmıştır. • Günümüz bilgisayarlarının goğunluğu two’s complement gösterim kullanırlar. Çünkü, • Donanım daha hızlı çalışır • Donanım daha basittir (hızlı çalışmasını da sağlar)

  6. Yönsüz sayılar • Daha önceden de bilgiğiniz standart binary kodlama • Sadece pozitif sayılar gösterilir. • n bit: 0 ile 2n - 1 arasını gösterir • Örnekler: • 5: 0000 0101 • 134:1000 0110

  7. Yön büyüklük • Pozitif ve negatif sayılar gösterilebilir. • MSB (most significant bit – en önemli bit), yönü belirtmek için kullanılır. • Pozitif sayılar için MSB 0, negatif sayılar için 1’dir • Örnekler: • 5:0000 0101 • -5:1000 0101

  8. One’s Complement • Pozitif sayılar, yönsüz ile aynı şekilde gösterilir. • Negatiflik için ise, pozitif gösterimdeki tüm bitlerin tersleri alınır. • Örnekler: • 5:0000 0101 • -5:1111 1010

  9. Two’s Complement • Pozitif sayıların gösterimi, yönsüz gösterim ile aynıdır. • Negatiflik, one’s complement alındıktan sonra 1 ilave edilerek bulunur. • Örnekler: • 5:0000 0101 • -5:1111 1011

  10. Biased gösterim • 2n-1veya 2n-1-1 sayılarından biri biasdeğeri olarak seçilir. • Tam sayı değerine, bu değer ilave edilerek gerçek değere ulaşılır. • Sonucun, yönsüz gösterimi, biased gösterim olarak bulunur. • Örnekler: • bias=127 ise, 5: 1000 0100 (132) • bias=127 ise -5:0111 1010 (122)

  11. Two’s Complement’de yönlü genişletme • 8 bitlik yönlü bir sayının 16 bit olarak ifade edilmesinin gerekli olduğu durumlarda kullanılır. • Bu durumda, en soldaki bit (MSB) tekrar edilir. • Örnek: 5: 0000 0101 (8 bit) 0000 0000 0000 0101 (16 bit) -5: 1111 1010 (8 bit)  1111 1111 1111 1011(16 bit)

  12. Karakter gösterimi • Karakter gösteriminde, ASCII kodları kullanılır • Karakterler 8 bit olarak gösterilir. • Örnekler: • ‘A’: 0100 0001 (65 veya 41h) • ‘B’: 0100 0010 (66 veya 42h) • ‘0’: 0011 0000 (48 veya 30h) • ‘9’: 0011 1001 (57 veya 39h)

  13. String->tam sayı dönüşümü • ‘0’ karakteri ile 0 sayısı farklıdır. • ‘354’ karakter dizisini 354 sayısına dönüştürmek için aşağıdaki algorita kullanılır: • ‘3’ oku ve 3’e dönüştür (30h=‘0’ çıkart) • ‘5’ oku ve 5’e dönüştür • TamSayı= 3 * 10 + 5 = 35 • ‘4’ oku ve 4’e dönüştür • TamSayı= 35 * 10 + 4 = 354

  14. Gerçek sayıların gösterimi • Gerçek sayılar (veya floating-point sayılar), bilgisayar programlarında sıklıkla karşılaşılır • Gerçek bir sayı, binary sisteme çevrilmelidir • Farklı gösterimler mevcuttur. Ancak Intel mikroişlemciler, IEEE 754, v10.0 standardını kullanırlar. • Intel 8086, floating point komutları içermez. Bu komutların kodlanması gereklidir.

  15. Gerçek sayıların binary’ye dönüştürülmesi • Sayıyı, integer ve fractional kısımlarına ayırınız. • Integer kısım, kolayca binary’ye çevrilir. • Fractional kısım ise, sürekli olarak iki ile çarpıp integer kısım alınarak bulunur.

  16. Örnek: 64.2’nin binary’ye dönüştürülmesi • Sayıyı 64 ve 0.2 olarak ikiye ayır • 64’ün binary gösterimi 100 0000’dır • 0.2’nin gösterimi, aşağıdaki şekilde bulunur: • 0.2 * 2 = 0.4  0 (En önemli bit) • 0.4 * 2 = 0.8  0 • 0.8 * 2 = 1.6  1 • 0.6 * 2 = 1.2  1 • 0.2 * 2 = 0.4  0 (kendini tekrar eder) •  0.2 = 0.0011 0011 0011 … • Bu durumda, 64.2 şu şekilde gösterilebilir:100 0000.0011 0011 0011 …

  17. Bilimsel gösterim • Gerçek sayılar, normalize edilmeli (normalized) ve bilimsel gösterimde (scientific notation) yazılmalıdır. • Bilimsel gösterimde, bir sayı üç kısımdan oluşur: • Sign • Mantissa • Exponent • Normalize formda, mantissa’nın integer kısmı 1’dir

  18. Örnek: 64.2’nin bilimsel gösterimi • 64.2 binary olarak şu şekilde gösterilebilir: • 1.00 0000 0011 0011 0011 … × 26 • Burada, 1.00 0000 0011 0011 0011 … kısmına mantissa adı verilir. • 6 kısmına ise exponent adı verilir. • Sign, artıdır (+).

  19. IEEE 754 Standardı • IEEE 754 standardına göre, floating point sayılar, 32 bit veya 64 bit olarak gösterilir. • 32 bit’lik versiyona single-precisionve 64 bitlik versiyona ise double-precision adı verilir.

  20. Single Precision • İlk bit (31. bit), yönü gösterir (0 ise pozitif ve 1 ise negatiftir) • Sonraki 8 bit (23-30) biased exponent (bias = 127) kısmıdır • Sonraki 23 bit ise (0-22) mantissanın 24 bitini gösterir. • Mantissa’nın ilk bitinin gösterilmesine gerek yoktur. 31 30 23 22 0

  21. Double Precision • İlk bit (63. bit), yönü gösterir (0 ise pozitif ve 1 ise negatiftir) • Sonraki 11 bit (52-62) biased exponent (bias = 1023) kısmıdır • Sonraki 52 bit ise (0-51) mantissanın 52 bitini gösterir. • Mantissa’nın ilk bitinin gösterilmesine gerek yoktur. 63 62 52 51 0

  22. 64.2 (Single Precision) • 64.2 pozitif olduğu için, yön biti 0’dır. • Exponent 6’dır; 127 ilave edilir ve 133 değerine ulaşılır(6 + 127 = 133 = 1000 0101) • Mantissa 1.00 0000 0011 0011 0011 …’dir • Integer kısmındaki 1 ihmal edilir ve fractional kısımdan 23 bit alınır: 000 0000 0110 0110 0110 0110 • Birleştir:0100 0010 1000 0000 0110 0110 0110 0110 (veya 42806666h)

  23. 64.2 (Double Precision) • 64.2 pozitif olduğu için, yön biti 0’dır • Exponent 6’dır; 1023 ilave edilir ve 1029 değerine ulaşılır (6 + 1023 = 1029 = 100 0000 0101) • Mantissa 1.00 0000 0011 0011 0011 …’dır • Integer kısmındaki 1 ihmal edilir ve fractional kısımdan 52 bit alınır: 0000 0000 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 • Birleştir: 0100 0000 0101 0000 0000 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 (veya 40500CCCCCCCCCCCh)

  24. Ayrıcalıklar • Sıfır, tüm bitler sıfır olarak gösterilir • Sonsuz sayısını göstermek için, exponent kısmındaki tüm bitler bir, mantissa’daki tüm bitler sıfır olarak değerine atanır. Yön biti ise, pozitif veya negatifi gösterir. +∞ = 01111 1111 000 0000 0000 0000 0000 0000 -∞ = 11111 1111 000 0000 0000 0000 0000 0000

  25. Egzersizler • 12.3’ün Single ve Double precision gösterimlerini hesaplayınız (cevap: 4144 CCCDh ve 4028 9999 9999 999Ah) • -23.4’ün Single ve Double precision gösterimlerini hesaplayınız (cevap: C1BB 3333h ve C037 6666 6666 6666h) • 3F80 0000h, hangi floating point sayının single precision gösterimidir?

  26. BCD (Binary Coded Decimal) Veri • Bazı durumlarda, tam sayıların her basamağını 4 bit olarak göstermek gerekli olabilir. • Örneğin, 1234h, 1234 decimal değerini gösterebilir. • Bu sayılara BCD sayılar ismi verilir. • BCD sayılar ile kullanılmak üzere özel komutlar bulunmaktadır.

  27. DAA • DAA: Decimal Adjust after Addition • İki BCD sayının AL register’ında yapılan toplama işleminin sonuçlarını düzeltir. • Örnek: MOV AL, 15 ; AL = 0Fh DAA ; AL = 15h

  28. DAA Örnek • BX ve DX register’larında bulunan iki 4-digit BCD sayının toplama sonucu CX register’ında BCD olarak saklanacaktır. MOV DX, 1234h ; 1234 BCD sayısını sakla MOV BX, 3099h ; 3099 BCD sayısını sakla MOV AL, BL ; Düşük bayt basamaklarını topla ADD AL, DL ; AL = 34h + 99h = CDh DAA ; CF = 1, AL = 33h (133) MOV CL, AL ; Düsükbayt’taki sonucu sakla MOV AL, BH ; AL = 30h (Yüksek basamakları topla) ADC AL, DH ; AL = 43h DAA ; CF = 0, AL = 43h MOV CH, AL ; Yüksek bayt’taki sonucu sakla

  29. DAS • DAS: Decimal Adjust after Subtraction • AL register’ında bulunan iki BCD değerinin fark sonucunu düzeltin. • DAA’ya benzer, ancak çıkarma işleminden sonra kullanılır.

  30. ASCII kodlanmış sayılar • Örneğin, 19, 3139h olarak gösterilebilir. ‘1’in ASCII kodu31h (49) ve ‘9’un ASCII kodu 39h (57) dir. • ASCII kodlanmış sayılar için özel komutlar bulunmaktadır: AAA, AAD, AAMve AAS.

  31. AAA • AAA: ASCII Adjust after Addition • AH ve AL register’larındaki iki ASCII kodlanmış sayının toplamı sonucunu düzeltir. • AL üzerinde çalışır. AL ve AH’yi değiştirir. • AAA’dan sonra AX’e 3030h ilave edelim. • Örnek: MOV AX, '01' ; AX = 3031h (‘1’in ASCII kodu) ADD AL, '9' ; AL = 6Ah AAA ; AH = 01h, AL = 00h ADD AX, 3030h ; AX = 3130 (10’un ASCII kodu)

  32. Diğer ASCII Kod operasyonları • AAD: ASCII Adjust before Division • AAM: ASCII Adjust after Multiplication • AAS: ASCII Adjust after Subtraction

  33. Shift ve Rotate • Shift ve rotate komutları, binary bit seviyesinde binary sayıları değiştirir. • I/O aygıtlarını kontrol eden alt seviye kontrol yazılımlarında sıklıkla kullanılır. • Shift/Rotate adedi, ivedi bir değer veya CL register’ındaki değer olabilir. • Örnek: SHL AX, 1 SHR BX, CL

  34. Shift • Bir register veya hafıza adresindeki veri, sola veya sağa kaydırılır. • Basit aritmetik işlemler yapar: 2+nile çarpım (sola shift) ve 2-nile bölüm (sağa shift). • Mikroişlemci komut setinde 4 adet shift komutu bulunur: • İki tane mantıksal; iki tane aritmetik shift

  35. Shift Komutları • Mantıksal shift’ler (SHL, SHR), boşta kalan bite 0 değerini verir. • Aritmetik shift operasyonları ise • Sağa shift’te 0 ilave edilir. • Sola shift’te ise, yön biti kopyalanır.

  36. Mantıksal vs. Aritmetik? • Mantıksal shift, yönsüz verileri çarpar veya böler. • Aritmetik shift, yönlü sayıları çarpar veya böler. • Sola shift operasyonu, her shift işlemi için 2 ile çarpar. • Sağa shift operasyonu, her shift işlemi için 2 ile böler. • 2 kere shift operasyonu, 4 ile çarpar veya böler.

  37. Rotate

More Related