Operandus megad - PowerPoint PPT Presentation

About This Presentation
Title:

Operandus megad

Description:

Title: ARCH/1 - 1 Last modified by: mate Created Date: 11/7/1995 10:49:56 PM Document presentation format: Diavet t s a k perny re Other titles – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 58
Provided by: infUszeg9
Category:
Tags: megad | operandus

less

Transcript and Presenter's Notes

Title: Operandus megad


1
  • Operandus megadás
  • Közvetlen operandus (immediate operand) Az
    operandus megadása a címrészen (5.16. ábra)
  • Direkt címzés (direct addressing) A memóriacím
    megadása a címrészen. Az utasítás mindig ugyanazt
    a címet használja. Az operandus értéke változhat,
    de a címe nem (fordításkor ismert kell legyen!).
  • Regiszter címzés (register addressing) Mint a
    direkt címzés, csak nem memóriát, hanem
    regisztert címez.

MOV R1 4
2
  • Regiszter-indirekt címzés (register indirect
    addresing) A címrészen valamelyik regisztert
    adjuk meg, de a megadott regiszter nem az
    operandust tartalmazza, hanem azt a memóriacímet,
    amely az operandust tartalmazza (mutató -
    pointer).
  • Rövidebb és a cím változtatható. Önmódosító
    program (Neumann) Ma már kerülendo (cache
    problémák!), regiszter indirekt címzéssel
    kikerülhetjük.

3
  • Pl., a 100 szóból álló A tömb elemeinek
    összeadása (egy elem 4 bájt), 5.17. ábra.
  • MOV R1, 0 gyujtsük az eredményt R1-ben,
  • kezdetben ez 0.
  • MOV R2, A az A tömb címe
  • MOV R3, A 400 a tömb utáni cím
  • C ADD R1, (R2) regiszter-indirekt címzés a
    tömb
  • aktuális elemének elérésére
  • ADD R2, 4 R2 tartalmát növeljük 4-gyel
  • CMP R2, R3 végeztünk?
  • BLT C ugrás a C címkéhez, ha nem
  • . . . kész az összegzés

4
  • Indexelt címzés (indexed addressing) Egy
    eltolási érték (offset) és egy (index) regiszter
    tartalmának összege lesz az operandus címe,
    5.18-19. ábra.
  • MOV R1, 0 gyujtsük az eredményt R1-ben,
  • kezdetben ez 0.
  • MOV R2, 0 az index kezdo értéke
  • MOV R3, 400 a tömb mögé mutató index
  • C ADD R1, A(R2) indexelt címzés a tömb
  • aktuális elemének elérésére
  • ADD R2, 4 R2 tartalmát növeljük 4-gyel
  • CMP R2, R3 végeztünk?
  • BLT C ugrás a C címkéhez, ha nem
  • . . . kész az összegzés

5
  • Bázisindex címzés (based-indexed addressing) Egy
    eltolási érték (offset) és két (egy bázis és egy
    index) regiszter tartalmának összege lesz az
    operandus címe. Ha R5 A címét tartalmazza, akkor
  • C ADD R1, A(R2)
  • helyett a
  • C ADD R1, (R2R5)
  • utasítás is írható.
  • Verem címzés (stack addressing) Az operandus a
    verem tetején van. Nem kell operandust megadni az
    utasításban.

6
  • Az Intel 8086/8088 társzervezése
  • A memória byte szervezésu.
  • Egy byte 8 bitbol áll. word, double word.
  • Byte sorrend Little Endian (LSBfirst).
  • A negatív számok 2-es komplemens kódban.
  • szegmens, szegmens cím
  • a szegmensen belüli relatív cím, logikai cím,
    virtuális cím, OFFSET, displacement, eltolás,
    Effective Address (EA)
  • fizikai cím (Address)

7
  • Az Intel 8086/8088 üzemmódjai
  • valós (real) védett (protected)
  • szegmens cím
  • szegmens regiszter
  • ?
  • szegmens regiszter page tábla elem
  • tartalma 16 ?
  • szegmens kezdocíme
  • fizikai cím
  • szegmens kezdocíme szegmensen belüli cím

8
  • Szegmens regiszterek (16 bitesek)
  • A szegmens regiszterek bevezetésének eredeti
    célja az volt, hogy nagyobb memóriát lehessen
    elérni.
  • CS (Code Segment) utasítások címzéséhez
  • SS (Stack Segment) verem címzéséhez
  • DS (Data Segment) (automatikus) adat terület
    címzéséhez
  • ES (Extra Segment) másodlagos adat terület
    címzéséhez

9
  • Vezérlo regiszterek (16 bitesek)
  • IP (Instruction Pointer) az éppen végrehajtandó
    utasítás logikai címét tartalmazza a CS által
    mutatott szegmensben
  • SP (Stack Pointer) a stack-be (verembe) utolsónak
    beírt elem logika címét tartalmazza az SS által
    mutatott szegmensben
  • STATUS (SR vagy FLAGS) a processzor állapotát
    jelzo regiszter
  • BP (Base Pointer) a stack indexelt címzéséhez
    használatos
  • SI (Source Index) a kiindulási (forrás) adat
    terület indexelt címzéséhez használatos
  • DI (Destination Index) a cél adat terület
    indexelt címzéséhez használatos

10
  • STATUS (FLAGS) bitjei (flag-jei)
  • O (Overflow) elojeles túlcsordulás
  • D (Direction) a string muveletek iránya, 0
    növekvo, 1 csökkeno
  • I (Interrupt) 1 megszakítás engedélyezése
    (enable), 0 tiltása (disable)
  • T (Trap) 1 single step, 0 automatikus üzemmód
  • S (Sign) az eredmény legmagasabb helyértéku
    bit-je (elojel bit)
  • Z (Zero) 1 (igaz), ha az eredmény 0, különben 0
    (hamis)
  • A (Auxiliary Carry) átvitel a 3. és 4. bit között
    (decimális aritmetika)
  • P (Parity) az eredmény alsó 8 bitjének paritása
  • C (Carry) átvitel elojel nélküli muveleteknél

- - - - O D I T S Z - A - P - C
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
11
  • Általános regiszterek (16 illetve 8 bitesek)

word higher byte lower byte
AX AH AL Accumulátor (szorzás, osztás is)
BX BH BL Base Register (címzo regiszter)
CX CH CL Counter Register (számláló regiszter)
DX DH DL Data Register (szorzás, osztás, I/O)
12
  • Az I8086/88 címzési rendszere
  • Operandus megadás
  • Adat megadás
  • Kódba épített adat (immediate közvetlen
    operandus)
  • MOV AL, 6 AL új tartalma 6
  • MOV AX, 0FFH AX új tartalma 000FFH

13
  • Automatikus szegmens regiszter DS
  • Direkt memória címzés a címrészen az operandus
    logikai címe (eltolás, displacement)
  • MOV AX, SZO AX új tartalma SZO tartalma
  • MOV AL, KAR AL új tartalma KAR tartalma
  • Valahol a DS által mutatott szegmensben
  • SZO DW 1375H
  • KAR DB 3FH
  • (DSSZO) illetve (DSKAR)
  • MOV AX, KAR hibás
  • MOV AL, SZO hibás
  • MOV AX, WORD PTR KAR helyes
  • MOV AL, BYTE PTR SZO helyes

14
  • Indexelt címzés a logikai cím a 8 vagy 16 bites
    eltolás SI vagy DI (esetleg BX) tartalma
  • MOV AX, SI
  • MOV AX, 10HSI
  • MOV AX, -10HSI
  • Regiszter indirekt címzés eltolási érték nélküli
    indexelt címzés
  • MOV AX, BX
  • MOV AX, SI
  • Bázis relatív címzés a logikai cím eltolás
    BX SI vagy DI tartalma
  • MOV AX, 10HBXSI
  • MOV AX, BXSI10H

15
  • Stack (verem) terület címzés
  • Automatikus szegmens regiszter SS
  • Megegyezik a bázis relatív címzéssel, csak a BX
    regiszter helyett a BP szerepel.

16
  • Program terület címzés
  • Automatikus szegmens regiszter CS
  • A végrehajtandó utasítás címe (CSIP)
  • Egy utasítás végrehajtásának elején IP IP
    az utasítás hossza.
  • IP relatív címzés IP IP a 8 bites elojeles
    közvetlen operandus
  • Direkt utasítás címzés Az operandus annak az
    utasításnak a címe, ahova a vezérlést átadni
    kívánjuk.
  • Közeli (NEAR) IP lt a 16 bites operandus
  • Távoli (FAR) (CSIP) lt a 32 bites operandus.
  • CALL VALAMI az eljárás típusától függoen
    NEAR vagy FAR

17
  • Indirekt utasítás címzés Bármilyen adat címzési
    móddal megadott szóban vagy dupla szóban tárolt
    címre történo vezérlés átadás. Pl.
  • JMP AX ugrás az AX-ben tárolt címre
  • JMP BX ugrás a (DSBX) által címzett
    szóban tárolt címre.

18
  • Az utasítások szerkezete

prefixum operációs kód címzési mód operandus
0 - 2 byte 1 byte 0 - 1 byte 0 - 4 byte
Prefixum utasítás ismétlés, explicit szegmens
megadás vagy LOCK MOV AX, CSS S nem a
DS, hanem a CS regiszterrel
címzendo Operációs kód szimbolikus alakját
mnemonic-nak nevezzük Címzési mód byte hogyan
kell az operandust értelmezni Operandus mivel
kell a muveletet elvégezni
19
  • Címzési mód byte
  • A legtöbb utasítás kód után szerepel. Szerkezete

7 6 5 4 3 2 1 0
Mód Mód Reriszter Reriszter Reriszter Reg/Mem Reg/Mem Reg/Mem
Ha a muveleti kód legalacsonyabb helyértéku
bit-je 0, akkor a regiszter byte, 1, akkor a
regiszter word.
20
 Regiszter  Regiszter  Regiszter Reg/Mem jelentése, ha Mód Reg/Mem jelentése, ha Mód Reg/Mem jelentése, ha Mód Reg/Mem jelentése, ha Mód
byte word 00 01 10 11
000 AL AX BX SI DI 00 8 bit displ. 00 16 bit displ. R e g i s z t e r
001 CL CX BX SI DI 00 8 bit displ. 00 16 bit displ. R e g i s z t e r
010 DL DX BP SI DI 00 8 bit displ. 00 16 bit displ. R e g i s z t e r
011 BL BX BP SI DI 00 8 bit displ. 00 16 bit displ. R e g i s z t e r
100 AH SP SI DI 00 8 bit displ. 00 16 bit displ. R e g i s z t e r
101 CH BP SI DI 00 8 bit displ. 00 16 bit displ. R e g i s z t e r
110 DH SI közv. op. BP8 bit d. BP16 bit d. R e g i s z t e r
111 BH DI BX 008 bit 0016 bit R e g i s z t e r
21
  • Szimbolikus alakban az operandusok sorrendje,
    gépi utasítás formájában a gépi utasítás kód
    mondja meg a regiszter és a memória közti
    adatátvitel irányát. Pl. az alábbi két utasítás
    esetén a címzési mód byte megegyezik
  • MOV AX, 122HSIBX
  • hexadecimálisan 8B 80 0122
  • MOV 122HSIBX, AX
  • hexadecimálisan 89 80 0122

7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0
Mód Mód Reriszter Reriszter Reriszter Reg/Mem Reg/Mem Reg/Mem
16 bit d. 16 bit d. AX AX AX SIBX SIBX SIBX
22
  • Az általános regiszterek és SI, DI, SP, BP
    korlátlanul használható, a többi (a szegmens
    regiszterek, IP és STATUS) csak speciális
    utasításokkal. Pl.
  • MOV DS, ADAT hibás!
  • MOV AX, ADAT helyes!
  • MOV DS, AX helyes!
  • A többi regiszter nem lehet aritmetikai
    utasítás operandusa, sot, IP és CS csak vezérlés
    átadó utasításokkal módosítható, közvetlenül nem
    is olvasható.

23
  • Assembly foprogram, amely adott szöveget ír a
    képernyore

  • KOD SEGMENT PARA PUBLIC ?CODE? Szegmens
    kezdet
  • KOD a szegmens neve
  • align-type (igazítás típusa) BYTE, WORD, PARA,
    PAGE
  • combine-type PUBLIC, COMMON, AT ?kifejezés?,
    STACK
  • class ?CODE?, ?DATA?, (?CONSTANT?,) ?STACK?,
    ?MEMORY?
  • ajánlott értelemszeruen
  • ASSUME CSKOD, DSADAT, SSVEREM, ESNOTHING
  • feltételezett szegmens regiszter értékek.
  • A beállításról ez az utasítás nem gondoskodik!

24
  • KIIR PROC FAR A fo eljárás mindig FAR
  • FAR távoli, NEAR közeli eljárás
  • Az operációs rendszer úgy hívja meg a
    foprogramokat, hogy
  • a CS és IP a program végén lévo END utasításban
    megadott
  • címke szegmens és OFFSET címét tartalmazza, SS
    és SP a
  • a STACK kombinációs típusú szegmens végét
    mutatja,
  • a visszatérés szegmens címe DS-ben van,
    OFFSET-je pedig 0
  • PUSH DS DS-ben van a visszatérési cím
  • SEGMENT része
  • XOR AX, AX AX?0, az OFFSET rész 0
  • PUSH AX Veremben a (FAR) visszatérési cím
  • MOV AX, ADAT AX? az ADAT SEGMENT címe
  • MOV DS, AX
  • Most már teljesül, amit az ASSUME utasításban
    írtunk
  • Eddig tartott a foprogram elokészületi része

25
  • MOV SI, OFFSET SZOVEG
  • SI?SZÖVEG OFFSET címe
  • CLD a SZÖVEGet növekvo címek
  • szerint kell olvasni
  • CALL KIIRO Eljárás hívás
  • RET Visszatérés az op. rendszerhez
  • a verembol visszaolvasott
  • szegmens és OFFSET címre
  • KIIR ENDP A KIIR eljárás vége

26
  • KIIRO PROC NEAR eljárás,
  • megadása nem kötelezo
  • CIKLUS LODSB AL?a következo karakter
  • CMP AL, 0 AL ? 0
  • JE VEGE ugrás a VEGE címkéhez,
  • ha AL0
  • MOV AH, 14 BIOS rutin paraméterezése
  • INT 10H a 10-es interrupt hívása
  • az AL-ben lévo karaktert kiírja
  • a képernyore
  • JMP CIKLUS ugrás a CIKLUS címkéhez,
  • a kiírás folytatása
  • VEGE RET Visszatérés a hívó programhoz
  • KIIRO ENDP A KIIRO eljárás vége
  • KOD ENDS A KOD szegmens vége

27
  • ADAT SEGMENT PARA PUBLIC ?DATA?
  • SZOVEG DB ?Ezt a szöveget kiírja a képernyore?
  • DB 13, 10 13 a kocsi vissza,
  • 10 a soremelés kódja,
  • DB 0 0 a szöveg vége jel
  • ADAT ENDS Az ADAT szegmens vége

  • VEREM SEGMENT PARA STACK
  • DW 100 DUP (?) Helyfoglalás 100 db
  • inicializálatlan szó számára
  • VEREM ENDS A VEREM szegmens vége

  • END KIIR Modul vége,
  • a program kezdocíme KIIR

28
  • Digitális logikai szint
  • Digitális áramkör két érték általában
  • 0-1 volt között az egyik (pl. 0, hamis),
  • 2-5 volt között a másik (1, igaz).
  • Más feszültségeket nem engednek meg.
  • Kapu (gate) kétértéku jelek valamilyen
    függvényét tudja kiszámítani.Kapcsolási ido
    néhány ns (nanoszekundum 10-9 s)

29
  • NEM (NOT) kapu (3.1. ábra).

Vcc
Vcc
Vcc
Vcc
Vki
Bázis
Kollektor
0
Vbe
Emitter
NEM (NOT) kapu, inverter
Tranzisztor
Szimbolikus jelölése
A X
0 1
1 0
Igazság tábla
X
A
Inverziós gömb
erosíto
30
  • NEM-ÉS (NAND) kapu

Igazság tábla
A B X
0 0 1
0 1 1
1 0 1
1 1 0
Szimbolikus jelölése
A
X
B
31
  • NEM-VAGY (NOR) kapu

Igazság tábla
A B X
0 0 1
0 1 0
1 0 0
1 1 0
Vcc
Vki
Szimbolikus jelölése
32
  • ÉS kapu

Igazság tábla
A B X
0 0 0
0 1 0
1 0 0
1 1 1
Szimbolikus jelölése
33
  • VAGY kapu

A B X
0 0 0
0 1 1
1 0 1
1 1 1
Igazság tábla
Szimbolikus jelölése
34
  • Boole algebra
  • Olyan algebra, amelynek változói és függvényei
    csak a 0, 1 értéket veszik fel.
  • Igazságtábla olyan táblázat, amely a változók
    összes lehetséges értéke mellett megadja a
    függvény vagy kifejezés értékét.

35
  • Pl. 3 változós többségi függvény (3.3. ábra)
    értéke 1, ha legalább két operandus 1

Igazság tábla
A B C M
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Bool algebrai alakja
A fölülvonás a NEM (negáció), az egymás mellé
írás az ÉS, a a VAGY muvelet jele.
36
  • Boole függvény megvalósításának lépései
  • igazságtábla,
  • negált értékek,
  • ÉS kapuk bemenetei,
  • ÉS kapuk,
  • VAGY kapu, kimenet.

A B C M
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
37
  • NAND és NOR elonye teljesség (3.4. ábra).

NOT
AND
OR
38
  • Definíció Akkor mondjuk, hogy két boole függvény
    ekvivalens, ha az összes lehetséges bemenetre a
    két függvény azonos kimenetet ad.
  • Két boole függvény ekvivalenciája könnyen
    ellenorizheto az igazság táblájuk alapján.
  • Pl. AB AC és A(B C) ekvivalens (3.5.
    ábra).
  • Az elso függvény megvalósításához két ÉS és egy
    VAGY kapura van szükség, a másodikhoz elegendo
    egy ÉS és egy VAGY kapu.

39
  • Néhány azonosság (3.6. ábra)

Szabály ÉS forma VAGY forma
Identitás 1A A 0AA
Null 0A 0 1A1
Idempotens AAA AAA
Inverz AA0 AA1
Kommutatív ABBA ABBA
Asszociatív (AB)CA(BC) (AB)CA(BC)
Disztribúciós ABC(AB)(AC) A(BC)ABAC
Abszorpciós A(AB)A AABA
De Morgan ABAB ABAB
40
  • Disztribúciós szabály
  • ABCA(BC)(AB)(AC)
  • Jelölje az ÉS muveletet ? , a VAGY muveletet ? ,
    akkor
  • A ? (B ? C) (A ? B) ? (A ? C)

41
  • Alapveto digitális logikai áramkörök
  • Integrált áramkör (IC, Integrated Circuit, chip,
    lapka) 5x5 mm2 szilícium darab kerámia vagy
    muanyag lapon (tokban), lábakkal (pins). Négy
    alaptípus
  • SSI (Small Scale Integrated 1-10 kapu),
  • MSI (Medium Scale ..., 10-100 kapu),
  • LSI (Large Scale..., 100-100 000 kapu),
  • VLSI (Very Large Scale ..., gt 100 000 kapu).
  • Példa SSI-re 3.10. ábra, Vcc feszültség, GND
    föld.
  • Kapukésleltetés (gate delay) 1-10 nsec.

42
Vcc
14
13
12
11
10
9
8
Bevágás
1
2
3
4
5
6
7
GND
  • 3.10. ábra SSI lapka négy NAND kapuval
  • Vcc feszültség, GND föld.

43
  • Kívánalom sok kapu kevés láb
  • Kombinációs áramkörök
  • Definíció A kimeneteket egyértelmuen
    meghatározzák a pillanatnyi bemenetek.

44
  • Multiplexer 2n adatbemenet, n vezérlo bemenet,
    1 kimenet. Az egyik adatbemenet kapuzott (gated)
    a kimenetre (3.11. ábra).

F
C
Sematikus rajza
45
  • n vezérlo bemenetu multiplexerrel tetszés
    szerinti n változós bool függvény megvalósítható
    az adatbemenetek megfelelo választásával. Pl. a 3
    változós többségi függvény

A B C M
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
3.12. ábra Igazság tábla
Párhuzamos-soros átalakítás vezérlo vonalakon
rendre 000, 001, 111.
46
  • Demultiplexer egy egyedi bemenetet irányít az n
    vezérlo bemenet értékétol függoen a 2n kimenet
    egyikére

demultiplexer
multiplexer
47
  • Dekódoló n bemenet, 2n kimenet. Pontosan egy
    kimeneten lesz 1 (3.13. ábra). Demultiplexerrel
    a bemenetet igazra állítjuk.

dekódoló
demultiplexer
48
  • Összehasonlító (comparator) (3.14. ábra).
  • KIZÁRÓ VAGY kapu

Igazság tábla
A B X
0 0 0
0 1 1
1 0 1
1 1 0
A B
Szimbolikus jelölése
4 bites összehasonlító
49
  • Programozható logikai tömbök PLA (3.15. ábra)
    (Programmable Logic Array).

6 kimenet
Ha ezt a biztosítékot kiégetjük, akkor nem
jelenik meg B az 1-es ÉS kapu bemenetén
50 bemeno vonal
24 bemeno vonal
Ha ezt a biztosítékot kiégetjük, akkor az 1-es ÉS
kapu kimenete nem jelenik meg az 5-ös VAGY kapu
bemenetén
A B L
12 bemeno jel
50
  • Aritmetikai áramkörök
  • A kombinációs áramkörökön belül külön csoportot
    alkotnak.
  • Lépteto (shifter) 3.16. ábra, C0 balra, 1
    jobbra.

51
  • Aritmetikai áramkörök
  • Összeadók

átvitel be
összeg
összeg
átvitel
Fél-összeadó (half adder, 3.17. ábra)
átvitel ki
Teljes-összeadó (full adder, 3.18. ábra)
52
  • Aritmetikai-logikai egység bitszelet (bit slice,
    3.19. ábra), F0, F1 -tol függoen ÉS, VAGY,
    NEGÁCIÓ vagy

átvitel be
INVA
A
kimenet
ENA
B
összeg
ENB
engedélyezo jelek
átvitel ki
53
  • átvitel továbbterjeszto összeadó (ripple carry
    adder)

54
  • átvitel kiválasztó összeadó (carry select adder)
    eljárás

55
  • Feladatok
  • Az alábbi memóriák közül melyik lehetséges,
    melyik ésszeru? Indokolja meg!
  • 10 bites címek 1024 db 8 bites rekesz
    10 1024 12 9 1024 10
    11 1024 10
  • 10 10 10241024 10 10
  • Egy régi gépnek 8192 szavas memóriája volt. Miért
    nem 8000?

56
  • Feladatok
  • A memória 100-adik bájtjától a 01234567H 4bájtos
    számot és folytatólagosan az abcd szöveget
    helyeztük el. Mi az egyes bájtok tartalma, ha a
    memória big/little endian szervezésu? Mi a
    helyzet Intel 8086/8088-as gépen?
  • Hogyan számítjuk ki a fizikai címet Intel
    8086/8088-as gépen valós üzemmódban?
  • Milyen operandus megadási módokat ismer? Ezek
    közül melyek alkalmazhatók az IBM PC-n?
  • Mire szolgál a címzési mód bájt?

57
  • Feladatok
  • Mit jelent az áramköri ekvivalencia?
  • Sorolja fel a bool algebra néhány azonosságát!
  • Írja fel a De Morgan szabályt!
  • Milyen kombinációs áramköröket ismer?
  • Mi indokolja a fél összeadó elnevezést?
Write a Comment
User Comments (0)
About PowerShow.com