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.
18prefixum 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
30Igazsá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
31Igazság tábla
A B X
0 0 1
0 1 0
1 0 0
1 1 0
Vcc
Vki
Szimbolikus jelölése
32Igazság tábla
A B X
0 0 0
0 1 0
1 0 0
1 1 1
Szimbolikus jelölése
33A 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.
42Vcc
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).
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?