Papp Róbert

SZámítógép ARchitektúra jegyzet 2005/I.

(Bartók Tamás / Szerda 16:00-17:00)
3. gyakorlat - 2005. 09. 21.


Endianizmus

  • big endian (MSBFirst / Most Significant Byte)
  • little endian (LSBFirst / Least Significant Byte)
Intel 8086-os processzor: little endian, Motorola: big endian

Számábrázolás

Bináris és hexadecimális rendszerek között gyorsabb átváltás:
1111 0101 1010 0111b
F5A7h
Ez Big Endianban ábrázolva: F5h A7h, Little Endianban pedig: A7h F5h

Véges pontosságú számábrázolás:

Előjel nélkül: [0;999]
Előjellel: [-999,999]

Helyiértékes ábázolás

...34534612,1231...

Előjeles abszolút érték

+2910 = 0001 11012
-2910 = 1001 11012
1: -
0: +

Egyes komplemens
-2910 = 1110 00102

Kettes komplemens: egyes komplemens + 1
-2910 = 1110 00112

[BCD = Binary Coded Decimal]
(Bartók Tamás szerint nem fontos, de más gyakokon volt tesztkérdés, úgyhogy legyen valami fogalmatok róla)


Lebegőpontos ábrázolás:

Előjel, karakterisztika, törtrész
1984 = 0,1984 * 10-4
198410 = 37008 = 0,37 * 84 (normalizálás)
0      110                    011 111 000 000b
Előjel Hatvány: 4 + 2 többlet Törtrész
0      6                      3   7   0   0  o = 0637008
A kitevőt mindig többlettel ábrázoljuk
Lebegőpontos átváltás

Kiterjesztés:

  • előjeles:

  • 0000 0000 0000 0101 = +5
    1111 1111 1111 1010 egyes komplemens
    1111 1111 1111 1011 = -5 (kettes komplemens)
  • előjeltelen:

  • 0000 0000 1111 1011 = -5

Memória társzervezése:

word = 2 byte
dword = 4 byte (= 2 * 2 byte / double word)

Lineáris modell:

Lényege, hogy nincsenek szegmensek, hanem minden byteot az ő abszolút sorszámával címzünk, szóval a byteok lineárisan "helyezkednek el".
A lieáris és a fizikai cím között csak körbefordulásnál van különbség.

Szegmentált modell:

Lényege, hogy a memóriát 64 kilobájtos szegmensekre osztja fel, és az offset cím azt mondja meg, hogy az adott szegmensben hol helyezkedik el a mutatott bájt.

szegmenscím = a cím első bájtja
offsetcím = eltolási cím
logikai cím = szegmenscím:offsetcím
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 <- szegmens
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 <- offset
- - - - - - - - - - - - - - - -
                ^ <- 3. szegmens
                    ^ <- 2. offszet
A kiválaszott cím = 3:2
Az Intel 8086-osnak 20 bites címbusza van.
220 = 1MB
64 kb egy szegmens <- 16 bit
A szegmens mindig 16-tal osztható memóriacímen van.

Például: 1234h:5678h
1234h * 10h (1610) = 12340h
12340h + 5678h = 179B8h = 179Bh:0008h = 130Dh:48E8h, mert 130Dh * 10h (1610) + 48E8h = 179B8h
Az offszet (0008h) 4 biten elfér.

Címterület Átfordulás

FFFFFh:0010h -> 100000h (A fentiek szerint)
1|00000h (A gép levágja a 20bitnél hosszabbat) [AddressSpace Swap-Around]
© All rights reserved by TWiStEr & PaulikR. Köszönöm -[PaulikR]-nek a segítséget!