29
1 Uvod u organizaciju Uvod u organizaciju ra ra čunara čunara vežbe - čas vežbe - čas 6: BCD 6: BCD

Cas 06 - BCD

Embed Size (px)

Citation preview

Page 1: Cas 06 - BCD

1

Uvod u organizaciju raUvod u organizaciju računaračunara

vežbe - čas vežbe - čas 6: BCD6: BCD

Page 2: Cas 06 - BCD

Uvod u organizaciju računara 2

Binarni kodovi dekadnih cifaraBinarni kodovi dekadnih cifara

Zbog problema sa preciznim predstavljanjem dekadnih razlomljenih brojeva u binarnom sistemu pojavila se ideja o kodiranju pojedinačnih dekadnih cifara binarnim brojevima.

Page 3: Cas 06 - BCD

Uvod u organizaciju računara 3

Binarni kodovi dekadnih cifaraBinarni kodovi dekadnih cifara

Za kodiranje dekadnih cifara binarnim brojevima potrebne su bar četiri binarne cifre.

Postoji više načina da se jednoj dekadnoj cifri dodeli binarni kod.

Page 4: Cas 06 - BCD

Uvod u organizaciju računara 4

Binarni kodovi dekadnih cifaraBinarni kodovi dekadnih cifara

Najvažniji zahtevi koje kodovi treba da zadovolje su:– Jednoznačnost– Najvećoj dekadnoj cifri odgovara kod koji ima

najveću vrednost.– Očuvanje parnosti– Komplementarnost – kodovi cifara a i b za koje

važi a+b=9 su komplementarni– Kod je težinski ako se vrednost dekadne cifre

u tom kodu dobija kao zbir proizvoda vrednosti binarnih cifara i vrednosti pozicija na kojima se one nalaze.

Page 5: Cas 06 - BCD

Uvod u organizaciju računara 5

Neki binarni kodovi dekadnih cifaraNeki binarni kodovi dekadnih cifara

Dekadna cifra

Binarni kod

8421 2421 5421 753-6 84-2-1 Višak 3 Ciklični

0 0000 0000 0000 0000 0000 0011 0001

1 0001 0001 0001 1001 0111 0100 0101

2 0010 0010 0010 0111 0110 0101 0111

3 0011 0011 0011 0010 0101 0110 1111

4 0100 0100 0100 1011 0100 0111 1110

5 0101 1011 1000 0100 1011 1000 1100

6 0110 1100 1001 1101 1010 1001 1000

7 0111 1101 1010 1000 1001 1010 1001

8 1000 1110 1011 0110 1000 1011 1011

9 1001 1111 1100 1111 1111 1100 0011

Page 6: Cas 06 - BCD

Uvod u organizaciju računara 6

NeoznaNeoznaččeni binarno kodirani dekadni eni binarno kodirani dekadni brojevibrojevi

Binarno kodirani zapis neoznačenog dekadnog broja u nekom kodu se dobija tako što se binarno kodira u odgovarajućem kodu svaka od njegovih cifara.

Page 7: Cas 06 - BCD

Uvod u organizaciju računara 7

PrimeriPrimeri

Broj 5384 možemo zapisati u različitim kodovima na sledeći način:

0101 0011 1000 0100 (8421)

1000 0110 1011 0111 (Višak 3)

1011 0101 1000 0100 (84-2-1)

Page 8: Cas 06 - BCD

Uvod u organizaciju računara 8

OznaOznaččeni binarno kodirani dekadni brojevieni binarno kodirani dekadni brojevi

Označeni binarno kodirani dekadni brojevi se zapisuju na dva načina:– Znak i apsolutna vrednost– U potpunom komplementu pri čemu se

prvo nađe potpuni komplement broja u sistemu sa osnovom 10, pa se zatim izvrši kodiranje.

Page 9: Cas 06 - BCD

Uvod u organizaciju računara 9

Nepakovani zapisNepakovani zapis

Binarno kodirani dekadni brojevi se mogu koristiti kako za zapis brojeva, tako i za zapis znakova. Iz tog zahteva proističu neke specifičnosti zapisa brojeva.

Kod računara koji koriste ASCII kod u nepakovanom zapisu broja se u polubajt veće težine upisuje cifra 5 koja označava da je u bajtu zapisana cifra, a u polubajtu manje težine se zapisuje BCD zapis cifre u odgovarajućem kodu.

Page 10: Cas 06 - BCD

Uvod u organizaciju računara 10

Nepakovani zapisNepakovani zapis

BCD brojevi se u računaru obično zapisuju u obliku znak i apsolutna vrednost.

Znak se zapisuje u polubajtu veće težine (umesto cifre 5) poslednjeg bajta i to kao binarno zapisana heksadekadna cifra A za pozitivne brojeve, a B za negativne.

Page 11: Cas 06 - BCD

Uvod u organizaciju računara 11

PrimerPrimer

+896312 58 59 56 53 51 A2

-896312 58 59 56 53 51 B2

Page 12: Cas 06 - BCD

Uvod u organizaciju računara 12

Pakovani zapisPakovani zapis

Ukoliko se koriste samo brojčani podaci dolazi do nepotrebnog trošenja prostora, jer se ponavlja vrednost 5 u svakom polubajtu veće težine, osim kod poslednjeg bajta.

Zato se uvodi pakovani zapis BCD brojeva.

Page 13: Cas 06 - BCD

Uvod u organizaciju računara 13

Pakovani zapisPakovani zapis

Kod pakovanog zapisa se u svakom polubajtu, osim u poslednjem, čuva neka cifra broja.

U poslednjem polubajtu zapisa, čuva se znak broja prema prethodnom dogovoru.

Pošto se koristi ceo broj bajtova, u slučaju zapisa broja sa parnim brojem cifara u vodeći polubajt se upisuje 0.

Page 14: Cas 06 - BCD

Uvod u organizaciju računara 14

PrimeriPrimeri

+896312 08 96 31 2A

-896312 08 96 31 2B

+56421 56 42 1A

-56421 56 42 1B

Page 15: Cas 06 - BCD

Uvod u organizaciju računara 15

Decimalna aritmetikaDecimalna aritmetika

Nepakovani zapis brojeva se najčešće koristi pri ulazno-izlaznim operacijama za direktno unošenje brojeva, dok se u aritmetičkim operacijama koristi pakovani zapis.

Operacije sa BCD brojevima su sporije u odnosu na operacije sa binarnim brojevima zbog specifičnosti zapisa.

Page 16: Cas 06 - BCD

Uvod u organizaciju računara 16

Promena znakaPromena znaka

Pošto su BCD brojevi u računaru zapisani u obliku znak i aspolutna vrednost promena znaka je jednostavna. Samo se menja vrednost poslednjeg polubajta.

08 96 31 2A 08 96 31 2B

Page 17: Cas 06 - BCD

Uvod u organizaciju računara 17

Sabiranje i oduzimanjeSabiranje i oduzimanje

Pri sabiranju i oduzimanju važe opšta pravila sabiranja i oduzimanja celih brojeva u zapisu znak i apsolutna vrednost. To znači da se operacije nad označenim brojevima mogu svesti na operacije nad neoznačenim brojevima.

Page 18: Cas 06 - BCD

Uvod u organizaciju računara 18

Sabiranje i oduzimanjeSabiranje i oduzimanje

Sabiranje BCD brojeva se vrši u dve faze. U prvoj fazi se BCD zapisi cifara sabiraka

sabiraju kao neoznačeni celi četvorocifreni binarni brojevi. Ako se javi prekoračenje, ono se prenosi kao jedinica koja se dodaje zbiru narednih dekadnih cifara. Ovi prenosi se pamte zbog upotrebe u drugoj fazi.

U drugoj fazi se vrše korekcije koje zavise od koda u kome smo predstavljali dekadne cifre.

Page 19: Cas 06 - BCD

Uvod u organizaciju računara 19

Sabiranje i oduzimanjeSabiranje i oduzimanje

Oduzimanje se može izvršiti na dva načina:– po sličnom principu kao i sabiranje, pri

čemu se u obe faze umesto sabiranja vrši oduzimanje, i

– Kao sabiranje u potpunom komplementu umanjenika sa umanjiocem kome je promenjen znak.

Page 20: Cas 06 - BCD

Uvod u organizaciju računara 20

Sabiranje u kodu 8421Sabiranje u kodu 8421

Prva faza je nezavisna od koda u kome su zapisane dekadne cifre.

Neka je n maksimalan broj cifara sabiraka. Neka su p’i prenosi u prvoj fazi sabiranja

sa dekadnog mesta i-1 na mesto i, a p’’i odgovarajući prenosi u drugoj fazi. Važi p’0=0 i p’’0=0.

Druga faza se sastoji iz n koraka u kojima se zdesna na levo grupama od po četiri binarne cifre rezultata prve faze dodaju korekcije i računa prenos za sledeći korak.

Page 21: Cas 06 - BCD

Uvod u organizaciju računara 21

Sabiranje u kodu 8421Sabiranje u kodu 8421

U i-tom koraku radimo:– Neka je c3c2c1c0 i-ta grupa od četiri

binarne cifre gledano zdesna na levo– ti=c3c2c1c0 + p’’i

– Ako je p’i+1 = 1 ili ti ≥ (1010)2 onda ovoj grupi cifara dodajemo korekciju (0110)2 i pri tome određuemo prenos p’’i+1.

Ako je p’n=1 ili p’’n=1 došlo je do prekoračenja.

Page 22: Cas 06 - BCD

Uvod u organizaciju računara 22

PrimerPrimer

X= -23492 Y=-5189 X+Y=-28681 23 49 2B + 05 18 9B = 28 68 1B -X 0010 0011 0100 1001 0010 -Y 0000 0101 0001 1000 1001 p’ 0 0 0 1 0 0 S1 0010 1000 0110 0001 1011 p’’ 0 0 0 0 1 0 k 0000 0000 0000 0110 0110 -S 0010 1000 0110 1000 0001

=>S=-28681

Page 23: Cas 06 - BCD

Uvod u organizaciju računara 23

Oduzimanje u kodu 8421Oduzimanje u kodu 8421

U prvoj fazi se BCD zapisi cifara umanjenika i umanjioca oduzimaju kao neoznačeni celi četvorocifreni binarni brojevi. Ako se javi potreba za pozajmicom, ona se prenosi kao jedinica koja se oduzima od razlike narednih dekadnih cifara. Ove pozajmice se pamte zbog upotrebe u drugoj fazi i označavaju se sa p’i.

U drugoj fazi se zdesna nalevo posmatraju po četiri binarne cifre c3c2c1c0 rezultata prve faze i od njih se oduzima (0110)2 ako važi p’i+1 = 1.

Page 24: Cas 06 - BCD

Uvod u organizaciju računara 24

PrimerPrimer

X=-52629 Y=2634 X+Y=-49995 52 62 9B + 02 63 4A = 49 99 5B

-X 0101 0010 0110 0010 1001 Y 0000 0010 0110 0011 0100 p 0 1 1 1 0 0 S1 0100 1111 1111 1111 0101 K 0000 0110 0110 0110 0000 -S 0100 1001 1001 1001 0101

Page 25: Cas 06 - BCD

Uvod u organizaciju računara 25

Sabiranje u kodu viSabiranje u kodu viššak 3ak 3

Neka važe oznake koje smo koristili za kod 8421.

I u kodu višak 3 se druga faza izvodi u n koraka gde se u svakom koraku zdesna na levo dodaju korekcije grupama od po četiri binarne cifre rezulata prve faze.

Page 26: Cas 06 - BCD

Uvod u organizaciju računara 26

Sabiranje u kodu viSabiranje u kodu viššak 3ak 3

U i-tom koraku radimo:– Neka je c3c2c1c0 i-ta grupa od četiri

binarne cifre gledano zdesna na levo– Ako je p’i+1 = 1 onda ovoj grupi cifara

dodajemo korekciju (0011)2

– Ako je p’i+1 = 0 onda se ovoj grupi cifara dodaje korekcija (1101)2

Do prekoračenja je došlo ako je p’n=1.

Page 27: Cas 06 - BCD

Uvod u organizaciju računara 27

PrimerPrimer

X=28367 Y=2847 X+Y=31214 28 36 7A + 02 84 7A = 31 21 4A

X 0101 1011 0110 1001 1010Y 0011 0101 1011 0111 1010p’ 0 1 1 1 1 0S1 1001 0001 0010 0001 0100k 1101 0011 0011 0011 0011S 0110 0100 0101 0100 0111

Page 28: Cas 06 - BCD

Uvod u organizaciju računara 28

Oduzimanje u kodu viOduzimanje u kodu viššak 3ak 3

Pošto je kod višak 3 komplementaran određivanje potpunog komplementa broja zapisanog u ovom kodu se jednostavno vrši komplementiranjem datog zapisa.

Zato se oduzimanje najjednostavnije vrši kao sabiranje u potpunom komplementu umanjenika sa umanjiocem kome je promenjen znak.

Page 29: Cas 06 - BCD

Uvod u organizaciju računara 29

PrimerPrimer X=5836 Y=8586 X-Y=2750 05 83 6A – 08 58 6A = -02 75 0A

P.K. X=05836 Y=08586-Y 91414-Y 1100 0100 0111 0100 0111

X 0011 1000 1011 0110 1001-Y 1100 0100 0111 0100 0111 p 0 0 1 0 1 0 S1 1111 1101 0010 1011 0000 k 1101 1101 0011 1101 0011 S 1100 1010 0101 1000 0011 = 97250 = -2750