Mikroilemciler Say gsterimleri 1 erik Say gsterimleri Ynsz

  • Slides: 37
Download presentation
Mikroişlemciler Sayı gösterimleri 1

Mikroişlemciler Sayı gösterimleri 1

İç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

İç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 2

Veri gösterimi Bilgisayarlar, binary değerler üzerinde çalışırlar (transistörlerden oluşmalarının bir sonucu) Sayıların, farklı binary

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: 1. 2. 3. 4. 3 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

Tam sayı gösterimleri Genelde kullanılan 5 adet tam sayı gösterimi bulunmaktadır: 1. 2. 3.

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

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

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) 5

Yönsüz sayılar Daha önceden de bilgiğiniz standart binary kodlama Sadece pozitif sayılar gösterilir. n

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

Yön büyüklük Pozitif ve negatif sayılar gösterilebilir. MSB (most significant bit – en önemli

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 7

One’s Complement Pozitif sayılar, yönsüz ile aynı şekilde gösterilir. Negatiflik için ise, pozitif gösterimdeki

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 8

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

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 9

Biased gösterim 2 n-1 veya 2 n-1 -1 sayılarından biri bias değeri olarak seçilir.

Biased gösterim 2 n-1 veya 2 n-1 -1 sayılarından biri bias değ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) 10

Two’s Complement’de yönlü genişletme 8 bitlik yönlü bir sayının 16 bit olarak ifade edilmesinin

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 0101 (16 bit) -5: 1111 1010 (8 bit) 1111 1011 (16 bit) 11

Karakter gösteriminde, ASCII kodları kullanılır Karakterler 8 bit olarak gösterilir. Örnekler: ‘A’: 0100 0001

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

String->tam sayı dönüşümü ‘ 0’ karakteri ile 0 sayısı farklıdır. ‘ 354’ karakter dizisini

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 (30 h=‘ 0’ çıkart) ‘ 5’ oku ve 5’e dönüştür Tam. Sayı= 3 * 10 + 5 = 35 ‘ 4’ oku ve 4’e dönüştür Tam. Sayı= 35 * 10 + 4 = 354 13

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

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, v 10. 0 standardını kullanırlar. Intel 8086, floating point komutları içermez. Bu komutların kodlanması gereklidir. 14

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

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. 15

Örnek: 64. 2’nin binary’ye dönüştürülmesi Sayıyı 64 ve 0. 2 olarak ikiye ayır 64’ün

Ö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 … Bu durumda, 64. 2 şu şekilde gösterilebilir: 100 0000. 0011 … 16

Bilimsel gösterim Gerçek sayılar, normalize edilmeli (normalized) ve bilimsel gösterimde (scientific notation) yazılmalıdır. Bilimsel

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 17

Örnek: 64. 2’nin bilimsel gösterimi 64. 2 binary olarak şu şekilde gösterilebilir: 1. 00

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

IEEE 754 Standardı IEEE 754 standardına göre, floating point sayılar, 32 bit veya 64

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-precision ve 64 bitlik versiyona ise double-precision adı verilir. 19

Single Precision 31 30 S 23 22 Exponent 0 Mantissa İlk bit (31. bit),

Single Precision 31 30 S 23 22 Exponent 0 Mantissa İ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) mantissa nın 24 bitini gösterir. Mantissa’nın ilk bitinin gösterilmesine gerek yoktur. 20

Double Precision 63 S 62 52 51 Exponent 0 Mantissa İlk bit (63. bit),

Double Precision 63 S 62 52 51 Exponent 0 Mantissa İ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) mantissa nın 52 bitini gösterir. Mantissa’nın ilk bitinin gösterilmesine gerek yoktur. 21

64. 2 (Single Precision) 64. 2 pozitif olduğu için, yön biti 0’dır. Exponent 6’dır;

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 0011 …’dir Integer kısmındaki 1 ihmal edilir ve fractional kısımdan 23 bit alınır: 0000 0110 Birleştir: 0100 0010 1000 0110 0110 (veya 42806666 h) 22

64. 2 (Double Precision) 64. 2 pozitif olduğu için, yön biti 0’dır Exponent 6’dır;

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 0011 …’dır Integer kısmındaki 1 ihmal edilir ve fractional kısımdan 52 bit alınır: 0000 1100 1100 1100 Birleştir: 0100 0000 0101 0000 1100 1100 1100 (veya 40500 CCCCCCh) 23

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

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. +∞ = 0 1111 0000 0000 -∞ = 1 1111 0000 0000 24

Egzersizler 12. 3’ün Single ve Double precision gösterimlerini hesaplayınız (cevap: 4144 CCCDh ve 4028

Egzersizler 12. 3’ün Single ve Double precision gösterimlerini hesaplayınız (cevap: 4144 CCCDh ve 4028 9999 999 Ah) -23. 4’ün Single ve Double precision gösterimlerini hesaplayınız (cevap: C 1 BB 3333 h ve C 037 6666 h) 3 F 80 0000 h, hangi floating point sayının single precision gösterimidir? 25

BCD (Binary Coded Decimal) Veri Bazı durumlarda, tam sayıların her basamağını 4 bit olarak

BCD (Binary Coded Decimal) Veri Bazı durumlarda, tam sayıların her basamağını 4 bit olarak göstermek gerekli olabilir. Örneğin, 1234 h, 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. 26

DAA DAA: Decimal Adjust after Addition İki BCD sayının AL register’ında yapılan toplama işleminin

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 = 0 Fh DAA ; AL = 15 h 27

DAA Örnek BX ve DX register’larında bulunan iki 4 -digit BCD sayının toplama sonucu

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, 1234 h MOV BX, 3099 h MOV AL, BL ADD AL, DL DAA MOV CL, AL MOV AL, BH topla) ADC AL, DH DAA MOV CH, AL 28 ; ; ; ; 1234 BCD sayısını sakla 3099 BCD sayısını sakla Düşük bayt basamaklarını topla AL = 34 h + 99 h = CDh CF = 1, AL = 33 h (133) Düsük bayt’taki sonucu sakla AL = 30 h (Yüksek basamakları ; AL = 43 h ; CF = 0, AL = 43 h ; Yüksek bayt’taki sonucu sakla

DAS DAS: Decimal Adjust after Subtraction AL register’ında bulunan iki BCD değerinin fark sonucunu

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. 29

ASCII kodlanmış sayılar Örneğin, 19, 3139 h olarak gösterilebilir. ‘ 1’in ASCII kodu 31

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

AAA AAA: ASCII Adjust after Addition AH ve AL register’larındaki iki ASCII kodlanmış sayının

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 3030 h ilave edelim. Örnek: MOV AX, '01' kodu) ADD AL, '9' AAA ADD AX, 3030 h kodu) 31 ; AX = 3031 h (‘ 1’in ASCII ; AL = 6 Ah ; AH = 01 h, AL = 00 h ; AX = 3130 (10’un ASCII

Diğer ASCII Kod operasyonları AAD: ASCII Adjust before Division AAM: ASCII Adjust after Multiplication

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

Shift ve Rotate Shift ve rotate komutları, binary bit seviyesinde binary sayıları değiştirir. I/O

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 33

Shift Bir register veya hafıza adresindeki veri, sola veya sağa kaydırılır. Basit aritmetik işlemler

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

Shift Komutları Mantıksal shift’ler (SHL, SHR), boşta kalan bite 0 değerini verir. Aritmetik shift

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. 35

Mantıksal vs. Aritmetik? Mantıksal shift, yönsüz verileri çarpar veya böler. Aritmetik shift, yönlü sayıları

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. 36

Rotate 37

Rotate 37