Sunuyu indir
1
Mikroişlemciler Sayı gösterimleri
2
İçerik Sayı gösterimleri Gerçek sayılar BCD Sayılar ASCII Sayılar
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: 134:
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: -5:
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: -5:
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: -5:
10
Biased gösterim 2n-1 veya 2n-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: (132) bias=127 ise -5: (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: (8 bit) (16 bit) -5: (8 bit) (16 bit)
12
Karakter gösterimi Karakter gösteriminde, ASCII kodları kullanılır
Karakterler 8 bit olarak gösterilir. Örnekler: ‘A’: (65 veya 41h) ‘B’: (66 veya 42h) ‘0’: (48 veya 30h) ‘9’: (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 * = 35 ‘4’ oku ve 4’e dönüştür TamSayı= 35 * = 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 ’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 = … Bu durumda, 64.2 şu şekilde gösterilebilir: …
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: … × 26 Burada, … 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-precision ve 64 bitlik versiyona ise double-precision adı verilir.
20
Single Precision 31 30 23 22 S Exponent 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.
21
Double Precision 63 62 52 51 S Exponent 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.
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( = 133 = ) Mantissa …’dir Integer kısmındaki 1 ihmal edilir ve fractional kısımdan 23 bit alınır: Birleştir: (veya h)
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 ( = 1029 = ) Mantissa …’dır Integer kısmındaki 1 ihmal edilir ve fractional kısımdan 52 bit alınır: Birleştir: (veya CCCCCCCCCCCh)
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. +∞ = -∞ =
25
Egzersizler 12.3’ün Single ve Double precision gösterimlerini hesaplayınız (cevap: 4144 CCCDh ve Ah) -23.4’ün Single ve Double precision gösterimlerini hesaplayınız (cevap: C1BB 3333h ve C h) 3F h, 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ük bayt’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, AAM ve 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+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
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
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.