VEREM Tekirdağ Halk Sağlığı Müdürlüğü Bulaşıcı Hastalık ve Kontrol Programları Şubesi
A verem két felső szavának cseréje (4.17. ábra)
description
Transcript of A verem két felső szavának cseréje (4.17. ábra)
![Page 1: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/1.jpg)
Máté: Architektúrák 7. előadás 1
A verem két felső szavának cseréje (4.17. ábra)
Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny.
swap1 MAR = SP – 1; rd // A 2. szó címe, olvasás MAR → Bswap2 MAR = SP // MAR a verem tetejére mutat MAR → A
MDR B
SP → AB
![Page 2: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/2.jpg)
Máté: Architektúrák 7. előadás 2
A verem két felső szavának cseréje (4.17. ábra)
swap1 MAR = SP – 1; rd // A 2. szó címe, olvasás MAR → Bswap2 MAR = SP // MAR a verem tetejére mutat MAR → A
MDR Bswap3 H = MDR; wr // 2. szó H-ba, verem tetejére H = B
MDR (MAR)swap4 MDR = TOS // verem régi teteje MDR = A
swap4-ben előny, hogy TOS tartalmazza a verem tetején lévő szót.
SP → BB
![Page 3: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/3.jpg)
Máté: Architektúrák 7. előadás 3
A verem két felső szavának cseréje (4.17. ábra)
swap1 MAR = SP – 1; rd // A 2. szó címe, olvasás MAR → Bswap2 MAR = SP // MAR a verem tetejére mutat MAR → A
MDR Bswap3 H = MDR; wr // 2. szó H-ba, verem tetejére H = B
MDR (MAR)swap4 MDR = TOS // verem régi teteje MDR = Aswap5 MAR = SP – 1; wr // a 2. szóba MAR → B
MDR (MAR)swap6 TOS = H; goto Main1 // TOS frissítése
swap6-ban hátrány, mert ez az utasítás csak azért kell, hogy TOS tartalmazza a verem tetején lévő szót.
SP → BA
![Page 4: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/4.jpg)
Máté: Architektúrák 7. előadás 4
A verem két felső szavának cseréje (4.17. ábra)
![Page 5: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/5.jpg)
Máté: Architektúrák 6. előadás 5
A WIDE utasításA WIDE utasítás valójában prefixum: önmagában nem
csinál semmit, csak jelzi, hogy a következő utasításnak 16 bites indexe van. Pl.:ILOAD varnum lokális változó a verembe varnum a lokális változó 8 bites indexe. WIDEILOAD varnum lokális változó a verembevarnum a lokális változó 16 bites indexe.
w_iload1 címe = iload1 címe + 0x100
![Page 6: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/6.jpg)
Máté: Architektúrák 6. előadás 6
Main1 PC = PC + 1; fetch; goto(MBR) MBR = ILOAD
iload1 H = LV MBR varnumiload2 MAR = H + MBRU; rd // rd(LV+varnum)iload3 MAR = SP = SP + 1 MDR (MAR)iload4 PC = PC + 1; fetch; wr (MAR) MDRiload5 TOS = MDR; goto Main1 MBR opkód
ILOAD varnum lokális változó a verembe varnum a lokális változó 8 bites indexe.
![Page 7: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/7.jpg)
Máté: Architektúrák 6. előadás 7
Main1 PC = PC + 1; fetch; goto(MBR) MBR = WIDEiload1 H = LViload2 MAR = H + MBRU; rd // rd(LV+varnum)iload3 MAR = SP = SP + 1 MDR (MAR)iload4 PC = PC + 1; fetch; wr (MAR) MDRiload5 TOS = MDR; goto Main1 MBR opkódwide1 PC = PC + 1; fetch; goto(MBR OR 0x100) MBR ILOADw_iload1 PC = PC + 1; fetch // index 2.
bájtjaMBR 1. bájt
w_iload2 H = MBRU << 8 // 1. bájt léptetése MBR 2. bájtw_iload3 H = H OR MBRU // H = a 16 bites indexw_iload4 MAR = LV + H; rd; goto iload3 rd(LV+varnum)
WIDEILOAD varnum lokális változó a verembe
varnum a lokális változó 16 bites indexe.
![Page 8: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/8.jpg)
Máté: Architektúrák 6. előadás 8
![Page 9: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/9.jpg)
Máté: Architektúrák 6. előadás 9
Az GOTO offset utasítás. PC relatív: PC értékéhez hozzá kell adni a két bájtos, előjeles offset értékét. Mic-1 program:
Main1 PC = PC + 1; fetch; goto(MBR)goto1 OPC=PC–1 // Main1-nél : PC=PC+1 MBR 1. bájtgoto2 PC=PC+1; fetch // offset 2. bájtjagoto3 H=MBR<<8 // 1. (előjeles) bájt <<8 MBR 2. bájtgoto4 H=MBRU OR H // 16 bites offsetgoto5 PC=OPC+H; fetch; goto (Main1) // PC új értéke
Main1 PC = PC + 1; fetch; goto(MBR) MBR opkód
goto5 kezdeményezi a PC új értékénél lévő bájt olvasását, Main1-ben goto(MBR) már a folytatás első opkódjának megfelelő címre ugrik!
![Page 10: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/10.jpg)
Máté: Architektúrák 6. előadás 10
A IFLT offset utasítás (Mic-1)Kivesz egy szót a veremből és ugrik, ha negatív.iflt1 MAR=SP=SP–1; rd // 2. szó a verembőliflt2 OPC=TOS // TOS
mentéseiflt3 TOS=MDR // TOS= a verem új
tetejeiflt4 N=OPC; if(N) goto T; else goto F //elágazásT OPC=PC–1; goto goto2 // igaz ágF PC=PC+1 // hamis ág, át kell lépni offset-et F2 PC=PC+1; fetch; goto (Main1) // PC új értéke
a folytatás 1. utasításának betöltése
Fontos: T címe = F címe + 0x100
![Page 11: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/11.jpg)
Máté: Architektúrák 6. előadás 11
INVOKEVIRTUAL disp (4.12. ábra),
• A CPP által mutatott területen a disp (2 bájt) indexű szó mutat a meghívandó metódus kezdő szavára.
• Ennek a szónak - az első két bájtja tartalmazza a
metódus paramétereinek számát, - a második két bájtja a
metódus lokális változóinak számát. • A metódus végrehajtása a metódus 5. bájtján indul.
![Page 12: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/12.jpg)
Máté: Architektúrák 6. előadás 12
INVOKEVIRTUAL disp(~4.12. ábra) Hívó LV-je
Hívó PC-jeHívott lokális
változóinak helye3. paraméter2. paraméter1. paraméter
Kapcsoló mutatóElőző LVElőző PC
Hívó lokális változóinak helye
2. paraméter1. paraméter
Kapcsoló mutató
3. paraméter2. paraméter1. paraméter
OBJREFElőző LVElőző PC
Hívó lokális változóinak helye
2. paraméter1. paraméter
Kapcsoló mutató ← LV
← LV
← SP
← SP
A verem új alapja
Betett paraméterek
A verem alapja hívás előtt
A hívó lokális területe
verem a hívás előtt
verem a hívás után
![Page 13: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/13.jpg)
Máté: Architektúrák 6. előadás 13
INVOKEVIRTUAL dispA CPP által mutatott táblázat disp indexű eleme a
meghívandó metódusra mutat. disp első bájtjának MBR-be olvasását már Main1 kezdeményezte.
invo1 PC = PC + 1; fetch // disp 2. bájtját olvassainvo2 H = MBRU << 8 // disp 1. bájtját léptetiinvo3 H = H OR MBRU // H = dispinvo4 MAR = CPP + H; rd // kezdő cím olvasásainvo5 OPC = PC + 1 // OldPC = visszatérési címA könyvben MBRU OR H szerepel, az OR művelet
kommutativitása miatt megengedhető.
![Page 14: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/14.jpg)
Máté: Architektúrák 6. előadás 14
INVOKEVIRTUAL: a metódus elején lévő 2 bájt tartalmazza a paraméterek számát.
invo6 PC = MDR; fetch // PC: új metódus eleje
invo7 PC = PC + 1; fetch // paraméterek számainvo8 H = MBRU << 8invo9 H = H OR MBRU // H = paraméterek számainvo10 TOS = SP – H // OBJREF is
paraméter!invo11 TOS = MAR = TOS + 1 // OBJREF címeTOS-ban tároljuk ideiglenesen OBJREF címét, ide
mutat majd a hívott metódus LV-je.Az utasítások sorrendje más, mint a könyvben!
![Page 15: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/15.jpg)
Máté: Architektúrák 6. előadás 15
INVOKEVIRTUAL: lokálisok száma 2 bájt a paraméterek száma után, OBJREF cseréje, ide kerül a lokális változók fölötti címre mutató Kapcsoló mutató. A mutatott címre kerül majd a Hívó PC-je.
TOS = MAR = OBJREF címe
invo12 PC = PC + 1; fetch // lokálisok száma 1. bájtinvo13 PC = PC + 1; fetch // lokálisok száma 2. bájtinvo14 H = MBRU << 8invo15 H = H OR MBRU // H = lokálisok számainvo16 MDR = H + SP + 1; wr // OBJREF cseréje
TOS = OBJREF címe
![Page 16: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/16.jpg)
Máté: Architektúrák 6. előadás 16
← SP
INVOKEVIRTUAL disp(~4.12. ábra) Hívó LV-je
Hívó PC-jeHívott lokális
változóinak helye3. paraméter2. paraméter1. paraméter
Kapcsoló mutatóElőző LVElőző PC
Hívó lokális változóinak helye
2. paraméter1. paraméter
Kapcsoló mutató
3. paraméter2. paraméter1. paraméter
OBJREFElőző LVElőző PC
Hívó lokális változóinak helye
2. paraméter1. paraméter
Kapcsoló mutató ← LV
← LV
← SPA verem új alapja
Betett paraméterek
A verem alapja hívás előtt
A hívó lokális területe
verem a hívás előtt
verem a hívás után
← SP
![Page 17: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/17.jpg)
Máté: Architektúrák 6. előadás 17
INVOKEVIRTUAL: a hívó PC-je és LV-jeTOS = OBJREF címe
invo17 MAR = SP = MDR // hívó PC-jének helyeinvo18 MDR = OPC; wr // hívó PC vermeléseinvo19 MAR = SP = SP + 1 // hívó LV-jének a
helye invo20 MDR = LV; wr // hívó LV-jének
vermeléseinvo21 PC = PC + 1; fetch // utasítás olvasásinvo22 LV = TOS // LV új értékeinvo23 TOS = MDR; goto Main1 // TOS=hívó LV-jeTOS = MDR nélkül TOS a Kapcsoló mutató címét
(a hívott LV-jét) tartalmazná!
![Page 18: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/18.jpg)
Máté: Architektúrák 6. előadás 18
IRETURN~4.12. ábra
Visszatérési é.Hívó LV-jeHívó PC-je
Hívott lokális változóinak helye
3. paraméter2. paraméter1. paraméter
Kapcsoló mutatóElőző LVElőző PC
Hívó lokális változóinak helye
2. paraméter1. paraméter
Kapcsoló mutató
Visszatérési é.Előző LVElőző PC
Hívó lokális változóinak helye
2. paraméter1. paraméter
Kapcsoló mutató
← LV
← LV
← SP
← SP
Betett paraméterek
A verem alapja
IRETURN után
A hívó lokális területe
A verem alapja
IRETURN előtt
Verem IRETURN előtt
Verem IRETURN után
![Page 19: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/19.jpg)
Máté: Architektúrák 6. előadás 19
IRETURN // ~4.13. ábra
iret1 MAR = SP = LV; rd // kapcs. mut. olvasásairet2 H = H // vár, hogy az olvasás befejeződjöniret3 LV = MAR = MDR; rd // hívó PC olvasásairet4 MAR = LV + 1; rd // hívó LV címeiret5 PC = MDR; fetch // hívó PC, opkód olv.iret6 MAR = SP // visszatérési érték címeiret7 LV = MDR // hívó LViret8 MDR = TOS; wr; goto Main1
iret3-4: MAR nem lehet SOURCE operandus!
![Page 20: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/20.jpg)
Máté: Architektúrák 6. előadás 20
![Page 21: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/21.jpg)
Máté: Architektúrák 6. előadás 21
Házi feladat: A 4.17. ábra többi része.
Továbbfejlesztések: több sínes rendszerek.
![Page 22: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/22.jpg)
Máté: Architektúrák 6. előadás 22
Logikai utasításokBitenkénti logikai műveleteket végeznek.
1 az igaz, 0 a hamis logikai érték.AND op1,op2 ; op1 op1 & op2, bitenkénti ésTEST op1,op2 ; flag-ek op1 & op2 szerintOR op1,op2 ; op1 op1 | op2, bitenkénti vagyXOR op1,op2 ; op1 op1 ^ op2 (eXclusive OR),
; bitenkénti kizáró vagyNOT op ; op ~op, bitenkénti negáció,
; nem módosítja STATUS tartalmát!
![Page 23: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/23.jpg)
Máté: Architektúrák 6. előadás 23
Bit forgató (Rotate) és léptető (Shift) utasításokForgatják (Rotate) illetve léptetik (Shift) op tartalmát. A forgatás/léptetés történhet – 1 bittel, – vagy byte illetve word esetén a CL regiszter
alsó 3 illetve 4 bit-jén megadott bittel jobbra (Right) vagy balra (Left).
Az utoljára kilépő bit lesz a Carry új tartalma.
![Page 24: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/24.jpg)
Máté: Architektúrák 6. előadás 24
A rotálás történhet a Carry-n keresztül, ilyenkor a belépő bit a Carry-ből kapja az értékét:
RCR op,1/CL ; Rotate through Carry Right
RCL op,1/CL ; Rotate through Carry Left
C …
C …
![Page 25: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/25.jpg)
Máté: Architektúrák 6. előadás 25
A rotálás történhet úgy, hogy Carry csak a kilépő bitet fogadja, a belépő bit értékét a kilépő bit szolgáltatja:
ROR op,1/CL ; ROtate Right
ROL op,1/CL ; ROtate Left
C …
C …
![Page 26: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/26.jpg)
Máté: Architektúrák 6. előadás 26
Logikai léptetés jobbra: A belépő bit 0:SHR op,1/CL ; SHift Right
0
Előjel nélküli egész számok 2 hatványával történő osztására alkalmas.
Aritmetikai léptetés jobbra: A belépő bit op előjele: SAR op,1/CL ; Shift Arithmetical Right
Előjeles egész számok 2 hatványával történő osztására alkalmas. Negatív számok esetén csal!
C …
C …
![Page 27: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/27.jpg)
Máté: Architektúrák 6. előadás 27
Balra léptetéskor a belépő bit mindig 0:SHL op,1/CL ; SHift LeftSAL op,1/CL ; Shift Arithmetical Left
SAL ≡ SHL
0
Előjel nélküli vagy előjeles egész számok 2 hatványával történő szorzására alkalmas.
C …
![Page 28: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/28.jpg)
Máté: Architektúrák 6. előadás 28
hexa proc ; ax kiírása hexadecimálisan; legyen a példa kedvéért: ax = 1234H
xchg ah,al; ah és al felcserélése; most: ax = 3412H, al = 12H
call hexa_b ; al (az eredeti ah) kiírása; kiírtuk, hogy 12
xchg ah,al; ah és al visszacserélése; most újra: ax = 1234H, al = 34H
call hexa_b ; al kiírása; most kiírtuk, hogy 34, tehát eddig kiírtuk, hogy 1234
ret ; visszatéréshexa endp; a hexa eljárás vége
![Page 29: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/29.jpg)
Máté: Architektúrák 6. előadás 29
hexa_b proc ; al kiírása hexadecimálisan; az első híváskor: al = 12H
pushcx ; mentés a verembemov cl,4 ; 4 bit-es rotálás előkészítéseROR al,CL ; az első jegy az alsó 4 biten
; most: al = 21Hcall h_jegy ; az első jegy kiírása
; kiírtuk, hogy 1ROR al,CL ; a 2. jegy az alsó 4 biten
; most újra: al = 12Hcall h_jegy ; a második jegy kiírása
; most kiírtuk, hogy 2, tehát eddig kiírtuk, hogy 12pop cx ; visszamentés a verembőlret ; visszatérés
hexa_bendp; a hexa_b eljárás vége
![Page 30: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/30.jpg)
Máté: Architektúrák 6. előadás 30
h_jegy proc ; hexadecimális jegy kiírásapushax ; mentés a verembeAND al,0FH ; a felső 4 bit 0 lesz, ; a többi változatlanadd al,’0’ ; + 0 kódjacmp al,’9’ ; 9 ?jle h_jegy1 ; ugrás h_jegy1 -hez, ha igenadd al,’A’-0AH-’0’ ; A…F hexadecimális ; jegyek kialakítása
h_jegy1: mov ah,14 ; BIOS hívás: int 10H ; karakter kiíráspop ax ; visszamentés a verembőlret ; visszatérés
h_jegy endp; a h_jegy eljárás vége
![Page 31: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/31.jpg)
Máté: Architektúrák 6. előadás 31
Processzor vezérlő utasítások I.A processzor állapotát módosít(hat)ják.
A STATUS bitjeinek módosításaFlag CLear SeT CoMplement
C CLC STC CMC
D CLD STD
I CLI STI
![Page 32: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/32.jpg)
Máté: Architektúrák 6. előadás 32
Input, output, interfész, I/O lapkák UART (Universal Asynchronous Receiver and
Transmitter) egy bájtot tud olvasni az adatsínről, és aztán sorosan továbbítja az eszközhöz (vagy fordítva), programmal konfigurálható (belső regiszterének beállításával): 5-8 bit szélesség, sebesség (50-19.200 bps), paritás ellenőrzés (páros, páratlan, nincs).
USART (Universal Synchronous Asynchronous Receiver and Transmitter): szinkron és aszinkron módon is tud működni.
![Page 33: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/33.jpg)
Máté: Architektúrák 6. előadás 33
PIO (Parallel Input/Output, 3.60. ábra)24 B/K vonal, amellyel TTL kompatibilis
eszközökhöz (billentyűzet, kapcsolók, nyomtatók) tud kapcsolódni. Konfigurálható. Leggyakoribb az ábrán látható használat. Aszinkron eszközökhöz „kézfogás” logika van beépítve.
8255ApárhuzamosB/K lapka
Port A
Port B
Port C88
8
82
#CSA0-A1
#WR#RD
RESETD0-D7
![Page 34: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/34.jpg)
Máté: Architektúrák 6. előadás 34
Beviteli/Kiviteli (B/K, Input/Output, I/O) eszközök használata (chip selection):
• Valódi B/K eszköz.• Memóriára leképezett B/K (memory-mapped I/O).
Pl.: 3.61. ábra.
0 32 K 64 K
2 KB EPROM
a 0 címnél
2 KB RAM a 8000H címnél
4 B PIO az FFFCH címnél
![Page 35: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/35.jpg)
Máté: Architektúrák 6. előadás 35
3. 61-62. ábra. Teljes cím dekódolás.A15 a legmagasabb helyértékű bit.
0 32 K 64 K
2 KB EPROM
a 0 címnél
2 KB RAM a 8000H címnél
4 B PIO az FFFCH címnél
#CS
EPROM
#CS
RAM#CS
PIO
A15
A0
A11
![Page 36: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/36.jpg)
Máté: Architektúrák 6. előadás 36
3.61-62. ábra. Részleges cím dekódolás.
0 32 K 64 K
2 KB EPROM a 0 címnél
2 KB RAM a 8000H címnél
4 B PIO az FFFCH címnél
#CS
EPROM
#CS
RAM
#CS
PIO
A0
A15
![Page 37: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/37.jpg)
Máté: Architektúrák 6. előadás 37
Input, output (I/O) utasítások (I8086/88)
A külvilággal történő információ csere port-okon (kapukon) keresztül zajlik. A kapu egy memória cím, az információ csere erre a címre történő írással, vagy erről a címről való olvasással történik. Egy-egy cím vagy cím csoport egy-egy perifériához kötődik. A központi egység oldaláról a folyamat egységesen az IN (input) és az OUT (output) utasítással történik.
![Page 38: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/38.jpg)
Máté: Architektúrák 6. előadás 38
Input, output (I/O) utasítások (I8086/88)A perifériától függ, hogy a hozzá tartozó port 8 vagy 16 bites. A központi egységnek az AL illetve AX regisztere vesz részt a kommunikációban. A port címzése 8 bites közvetlen adattal vagy a DX regiszterrel történik.
IN AL/AX,port; AL/AX egy byte/word a port-ról
OUT port,AL/AX; port egy byte/word AL/AX-ből
![Page 39: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/39.jpg)
Máté: Architektúrák 6. előadás 39
A periféria oldaláról a helyzet nem ilyen egyszerű. Az input információ „csomagokban” érkezik, az output információt „csomagolva” kell küldeni. A csomagolás (vezérlő információ) mondja meg, hogy hogyan kell kezelni a csomagba rejtett információt (adatot). Éppen ezért az operációs rendszerek olyan egyszerűen használható eljárásokat tartalmaznak (BIOS – Basic Input/Output System – rutinok, stb.), amelyek elvégzik a ki- és becsomagolás munkáját, és ezáltal lényegesen megkönnyítik a külvilággal való kommunikációt.
![Page 40: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/40.jpg)
Máté: Architektúrák 6. előadás 40
Input/output (5.31-33. ábra)
Az I/O vezérlő regiszterei (5.31. ábra). Terminál: külön regiszterek az inputra és outputra.
Beírt karakter Megjelenítendő karakterBillentyűzet puffere Képernyő puffere
Megszakítás engedélyezett
Billentyűzet állapot Képernyő állapot
Van beírt karakterKész a következő karakter
fogadására
![Page 41: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/41.jpg)
Máté: Architektúrák 6. előadás 41
• programozott B/K (5.32. ábra) tevékeny várakozás (pollozásos technika):
public static void output_buffer(int buf[], int count) { // count számú bájt kiírása buf-ból az eszközreint status, i, ready; for(i=0; i < count; i++) { do { status = in(display_status_reg); // az állapot lekérdezése ready = (status >> 7) & 0x01; // a kész bit elkülönítése } while(ready != 1); out(display_buffer_reg, buf[i]); }}
![Page 42: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/42.jpg)
Máté: Architektúrák 6. előadás 42
• megszakítás vezérelt B/Kaz eszköz megkapja a feladatát, majd ha elkészült,beállítja a „Megszakítás engedélyezett” bitet, addig aközponti egység más feladatot végezhet.
• DMA (Direct Memory Access, 5.33. ábra)a DMA önállóan végzi az eszköz figyelését és azadatok mozgatását.
10032
41
CPU
DMAcím
számlálóeszköz
irány
Memória
Cikluslopás.
![Page 43: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/43.jpg)
Máté: Architektúrák 6. előadás 43
Processzor vezérlő utasítások II.
NOP ; NO oPeration, üres utasítás, ; nem végez műveletet.
WAIT ; A processzor várakozik, amíg más ; processzortól (pl. lebegőpontos ; segédprocesszortól) kész jelzést nem kap.
HLT ; HaLT, leállítja a processzort. ; A processzor külső megszakításig ; várakozik.
![Page 44: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/44.jpg)
Máté: Architektúrák 6. előadás 44
Megszakítás rendszer, interrupt utasítások• Az I/O utasítás lassú a CPU gyors,
a CPU várakozni kényszerül• I/O regiszter (port): a port és a központi egység
közötti információ átadás gyors, a periféria autonóm módon elvégzi a feladatát. Újabb perifériához fordulás esetén a CPU várakozni kényszerülhet.
• Pollozásos technika (~tevékeny várakozás): a futó program időről időre megkérdezi a periféria állapotát, és csak akkor ad ki újabb I/O utasítást, amikor a periféria már fogadni tudja. A hatékonyság az éppen futó programtól függ.
![Page 45: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/45.jpg)
Máté: Architektúrák 6. előadás 45
MegszakításA (program) megszakítás azt jelenti, hogy az éppen futó program végrehajtása átmenetileg megszakad – a processzor állapota megőrződik, hogy a program egy későbbi időpontban folytatódhassék – és a processzor egy másik program, az úgynevezett megszakítás kezelő végrehajtását kezdi meg.
Miután a megszakítás kezelő elvégezte munkáját, gondoskodik a processzor megszakításkori állapotának visszaállításáról, és visszaadja a vezérlést a megszakított programnak.
![Page 46: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/46.jpg)
Máté: Architektúrák 6. előadás 46
Pl.: nyomtatás• Nyomtatás pufferbe, később a tényleges nyomtatást vezérlő
program indítása. • Nyomtatás előkészítése (a nyomtató megnyitása), HLT. • A továbbiak során a nyomtató megszakítást okoz, ha kész
újabb adat nyomtatására. Ilyenkor a HLT utasítást követő címre adódik a vezérlés. A következő karakter előkészítése nyomtatásra, HLT. A bekövetkező megszakítás hatására a megszakító rutin mindig a következő adatot nyomtatja. Ha nincs további nyomtatandó anyag, akkor a nyomtatást vezérlő program lezárja a nyomtatót (nem következik be újabb megszakítás a nyomtató miatt), és befejezi a működését.
![Page 47: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/47.jpg)
Máté: Architektúrák 6. előadás 47
A HLT utasítás csak akkor szükséges, ha a nyomtatást kérő program befejezte a munkáját. Ellenkező esetben visszakaphatja a vezérlést. Ilyenkor az ő feladata az esetleg szükséges várakozásról gondoskodni a program végén.
Bevitel esetén olyankor is várakozni kell, ha még a beolvasás nem történt meg, és a további futáshoz szükség van ezekre az adatokra.
Jobb megoldás, ha a HLT utasítás helyett az operációs rendszer fölfüggeszti a program működését, és elindítja egy másik program futását.
Ez vezetett a multiprogramozás kialakulásához.
![Page 48: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/48.jpg)
Máté: Architektúrák 6. előadás 48
A megszakító rutin megszakítható-e? Gyors periféria kiszolgálása közben megszakítás kérés, …
„Alap” állapot – „megszakítási” állapot, megszakítási állapotban nem lehet újabb megszakítás.
Hierarchia: megszakítási állapotban csak magasabb szintű ok eredményezhet megszakítást.
Bizonyos utasítások csak a központi egység bizonyos kitüntetett állapotában hajthatók végre, alap állapotban nem → csapda, szoftver megszakítás.
Megoldható az operációs rendszer védelme, a tár védelem stb.
A megoldás nem tökéletes: vírus.
![Page 49: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/49.jpg)
Máté: Architektúrák 6. előadás 49
Csapda és megszakításCsapda (trap): A program által előidézett feltétel
(pl. túlcsordulás) hatására automatikus eljárás hívás. Csapda kezelő.
Megszakítás (interrupt): Olyan automatikus eljárás hívás, amit általában nem a futó program, hanem valamilyen B/K eszköz idéz elő, pl. a program utasítja a lemezegységet, hogy kezdje el az adatátvitelt, és annak végeztével megszakítást küldjön. Megszakítás kezelő.
A csapda a programmal szinkronizált,a megszakítás nem.
![Page 50: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/50.jpg)
Máté: Architektúrák 6. előadás 50
Pl.: Egy sornyi karakter képernyőre írása a terminálon. Előkészítés: Egy rendszerprogram összegyűjti a
kiírandó karaktereket egy pufferben, beállít egy globális változót, hogy mutasson a puffer elejére, egy másik globális változóban megadja a karakterek számát. Megnézi, hogy a terminál tud-e adatot fogadni (5.31. ábra), és ha igen, akkor elindítja az első karakter kiíratását. Ekkor a CPU fölszabadul egy másik program futtatására.
A terminál a képernyőre írja a karaktert, és megszakítást kezdeményez. A megszakítás kezelő újabb karakter kiírását kezdeményezi . . .
![Page 51: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/51.jpg)
Máté: Architektúrák 6. előadás 51
Megszakítás kezelés (3.43. ábra)
8259AMegszakítás
vezérlő
bere
ndez
ések
CPU
INTINTA#
RD#WR#A0#CS#
D0-D7
IR0IR1IR2IR3IR4IR5IR6IR7
IRi , INT , ha CPU tudja fogadni, akkor INTA# ,i D0-D7, a CPU megszakításvektor táblázat i –edik eleméből tudja a megszakítást kiszolgáló eljárás kezdőcímét, megszakítás …
Nyolcnál több eszköz kiszolgálásához több megszakítás vezérlő kapcsolható össze.
![Page 52: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/52.jpg)
Máté: Architektúrák 6. előadás 52
Megszakítás Hardver tevékenységek (3.42. ábra): 1. Az eszköz vezérlő megszakítás jelet tesz a sínre,2. ha a CPU fogadni tudja a megszakítást, nyugtázza,3. az eszköz vezérlője az eszköz azonosítószámát
(megszakítás-vektor) elküldi a sínen, 4. ezt a CPU átmenetileg tárolja, 5. a CPU a verembe teszi az utasításszámláló aktuális
értékét és a PSW-t, 6. a CPU az azonosító indexű megszakítás kezelő
címét teszi az utasításszámlálóba és gyakran betölti vagy módosítja PSW-t.
![Page 53: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/53.jpg)
Máté: Architektúrák 6. előadás 53
Szoftver tevékenységek (terminálra íráskor): 7. menti a használni kívánt regisztereket, 8. kiolvassa egy eszközregiszterből a terminál számát,9. beolvassa az állapotkódot,10. ha B/K hiba történt, itt lehet kezelni, 11. aktualizálja a mutatót és a számlálót, a kimenő
pufferbe írja a következő karaktert, ha van,12. visszajelez az eszköz vezérlőnek, hogy készen van, 13. visszaállítja a mentett regisztereket, 14. visszatér a megszakításból, itt történik a PSW
eredeti értékének visszaállítása is.
![Page 54: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/54.jpg)
Máté: Architektúrák 6. előadás 54
Átlátszóság: Amikor bekövetkezik egy megszakítás, akkor bizonyos utasítások végrehajtódnak, de amikor ennek vége, a CPU ugyanolyan állapotba kerül, mint amilyenben a megszakítás bekövetkezése előtt volt.
Ha sok eszköz van a rendszerben, akkor célszerű, ha
egy megszakítás kiszolgálása közben másik megszakítás is történhet, ilyenkor a megszakítások hierarchiába vannak rendezve (5.46. ábra).
![Page 55: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/55.jpg)
Máté: Architektúrák 6. előadás 55
5.46. ábra ISR: Interrupt Service Routine
0 10 15 20 25 35 40
Felhasználói program
RS232 ISR
Lemez ISR
Felhasználói program
Nyom-tató ISR
Nyom-tató ISR
Nyomtató megszakítás 2-es elsőbbséggel
RS232 megszakítás 5-ös elsőbbséggel
Nyomtató ISR befejeződik
Lemez ISR befejeződik
RS232 ISR befejeződik, lemez megszakítás keletkezik
A lemez 4-es elsőbbségű megszakítási kérelme függőben marad
NyomtatóFelhasz-
nálóFelhasz-
náló
NyomtatóFelhasz-
nálóFelhasz-
náló Verem
![Page 56: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/56.jpg)
Máté: Architektúrák 6. előadás 56
I8086/88Az i. megszakítási okhoz tartozó megszakító rutin
FAR címe a memória 4*i. címén található (0 i 255). A megszakítási ok sorszámát hardver megszakítás esetén a hardver egység installáláskor adott száma, szoftver megszakítás esetén az operandus rész szolgáltatja.
Megszakítási ok jelentkezésekor a STATUS, CS és IP a verembe kerül, az I és a T flag 0 értéket kap (az úgynevezett maszkolható megszakítások tiltása és folyamatos üzemmód beállítása), majd (CS:IP) felveszi a megszakítás kezelő kezdőcímét.
![Page 57: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/57.jpg)
Máté: Architektúrák 6. előadás 57
Interrupt utasítások
Szoftver megszakítást eredményeznek.INT i ; 0 i 255,
; megszakítás az i. ok szerint.Az INT 3 utasítás kódja csak egy byte (a többi 2
byte), így különösen alkalmas nyomkövető (DEBUG) programokban történő alkalmazásra.
![Page 58: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/58.jpg)
Máté: Architektúrák 6. előadás 58
A DEBUG program saját magához irányítja a 3-as megszakítást. Az ellenőrzendő program megadott pontján (törés pont, break point) lévő utasítást (annak 1. bájtját) átmenetileg az INT 3 utasításra cseréli, és átadhatja a vezérlést az ellenőrzendő programnak. Amikor a program az INT 3 utasításhoz ér, a megszakítás hatására a DEBUG kapja meg a vezérlést. Kiírja a regiszterek tartalmát, és további információt kérhetünk a program állapotáról. Később visszaírja azt a tartalmat, amit INT 3 -ra cserélt, elhelyezi az újabb törés pontra az INT 3 utasítást és visszaadja a vezérlést az ellenőrzendő programnak.
![Page 59: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/59.jpg)
Máté: Architektúrák 6. előadás 59
Ezek alapján érthetővé válik a DEBUG program néhány „furcsasága”:
• Miért „felejti el” a töréspontot? Ha ugyanis nem
felejtené el – azaz nem cserélné vissza a töréspontra elhelyezett utasítást az eredeti utasításra – akkor a program nyomkövetésében nem tudna továbblépni.
• Miért nem lehet egy ciklus futásait egyetlen
töréspont elhelyezésével figyeltetni, stb?
![Page 60: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/60.jpg)
Máté: Architektúrák 6. előadás 60
INTO ; megszakítás csak O=1 (Overflow) ; esetén a 4. ok szerint
Visszatérés a megszakító rutinból
IRET ; IP, CS, STATUS feltöltése a ; veremből
![Page 61: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/61.jpg)
Máté: Architektúrák 6. előadás 61
SzemaforLegyen az S szemafor egy olyan word típusú változó, amely
mindegyik program számára elérhető. Jelentse S=0 azt, hogy az erőforrás szabad, és S0 azt, hogy az erőforrás foglalt. Próbáljuk meg a szemafor kezelését!
; 1. kísérletujra: mov cx,S
jcxz szabad. . . ; foglalt az erőforrás, várakozásjmp ujra
szabad: mov cx,0FFFFhmov S,cx ; a program lefoglalta az erőforrást
![Page 62: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/62.jpg)
Máté: Architektúrák 6. előadás 62
; 2. kísérletujra: MOV CX,0FFFFH
XCHG CX,S ; már foglaltat jelez a ; szemafor!
JCXZ szabad ; ellenőrzés S korábbi tartalma
; szerint.. . . ; foglalt az erőforrás,
; várakozásjmp ujra
szabad: . . . ; szabad volt az erőforrás,; de a szemafor már foglalt
![Page 63: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/63.jpg)
Máté: Architektúrák 6. előadás 63
Az XCHG utasítás mikroprogram szinten:
Segéd regiszter S; S CX; CX Segéd regiszterolvasás – módosítás – visszaírás
ujra: mov cx,0FFFFh LOCK xchg cx,S ; S már foglaltat jelez
jcxz szabad ; ellenőrzés S korábbi ; tartalma szerint. . . ; foglalt, várakozásjmp ujra
szabad: . . . ; használható az erőforrás, ; de a szemafor már foglalt . . .MOV S,0 ; a szemafor szabadra állítása
![Page 64: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/64.jpg)
Máté: Architektúrák 6. előadás 64
FeladatokMire szolgál a SWAP utasítás?Hogy valósítható meg a SWAP utasítás?Mire szolgál a WIDE utasítás?Hogy valósítható meg a WIDE utasítás?Mire szolgál az ILOAD utasítás?Hogy valósítható meg az ILOAD utasítás?Mire szolgál a WIDE ILOAD utasítás?Hogy valósítható meg a WIDE ILOAD utasítás?Mire szolgál a GOTO utasítás?Hogy valósítható meg a GOTO utasítás?
![Page 65: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/65.jpg)
Máté: Architektúrák 6. előadás 65
FeladatokMelyek az IJVM feltételes ugró utasításai?Mire szolgál az IFLT utasítás?Hogy valósítható meg az IFLT utasítás?Mit nevezünk metódusnak?IJVM melyik utasítása szolgál a metódus hívására?Mire szolgál az INVOKEVIRTUAL utasítás? Hol található az INVOKEVIRTUAL disp utasítással
hívott metódus?Milyen információ van a metódus elején?Hogy néz ki a veremnek egy metódus számára látható
része?
![Page 66: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/66.jpg)
Máté: Architektúrák 6. előadás 66
FeladatokMely regiszterek tartalmát kell menteni metódus hívás
esetén?IJVM melyik utasítása szolgál a metódusból való
visszatérésre?Hogy találhatók meg a mentett regiszter tartalmak
visszatéréskor?Miért nem lenne jó IRETURN megvalósításában:
iret3: MAR = MDR; rdiret4: MAR = MAR + 1 ?
Hol található a metódus visszatérési értéke az IRETURN utasítás után?
![Page 67: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/67.jpg)
Máté: Architektúrák 6. előadás 67
FeladatokAz IRETURN utasítás mikroprogramozását úgy is
megvalósíthattuk volna, hogy a Kapcsoló mutatót nem használjuk, hanem SP értékéből indulunk ki. Hogyan? Így 7 utasítás is elegendő lett volna. Miért jobb mégis az előadáson bemutatott megoldás?
Elemezze a 4.17. ábra programjait!
![Page 68: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/68.jpg)
Máté: Architektúrák 6. előadás 68
FeladatokHogy működik a TEST utasítás?Mi történik a flag-ekkel NOT utasítás hatására?Milyen operandusai vannak a SAR utasításnak?Milyen szerepe van C-nek a bit forgató utasításoknál?Hogy cserélhető fel BL alsó és felső négy bitje?Mi C tartalma többszörös léptetés esetén?Szorozza be BX-et 32-vel (tegyük fel, hogy az
eredmény elfér BX-ben)!Ossza el az előjeles BX-et 16-tal!
![Page 69: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/69.jpg)
Máté: Architektúrák 6. előadás 69
FeladatokMi az UART?Mire szolgál az UART?Paritás ellenőrzés szempontjából hogy működhet az
UART?Mi az USART?Milyen digitális áramkörök segítségével tudja
megvalósítani a párhuzamos-soros átalakítást?Mit jelent a CS# jelölés egy chip lábán?Mit jelent a PIO rövidítés?Milyen lábai vannak PIO lapkának?Hány regisztere van PIO lapkának?
![Page 70: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/70.jpg)
Máté: Architektúrák 6. előadás 70
FeladatokMi biztosítja, hogy kapcsolók állapotának
lekérdezésére és lámpák működtetésére is használható a PIO lapka?
Mit jelent a valódi/memóriára leképezett I/O? Melyiknek mi az előnye, hátránya?
Mit nevezünk teljes/részleges cím dekódolásnak? Melyiknek mi az előnye, hátránya?
Mit nevezünk port-nak?Hogy történik egy port címzése a PC-n?Hogy működik az IN és az OUT utasítás?Mi a BIOS?
![Page 71: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/71.jpg)
Máté: Architektúrák 6. előadás 71
FeladatokMilyen vezérlő regiszterei vannak egy terminálnak?Mire szolgál a terminál billentyűzet puffer regisztere?Hogyan történik a programozott B/K?Mit nevezünk pollozásos technikának? Mire használható a DMA?Hogy működik a DMA?Milyen regiszterei vannak a DMA-nak?Mire szolgál a NOP utasítás?Mire szolgál a WAIT utasítás?Mire szolgál a HLT utasítás?
![Page 72: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/72.jpg)
Máté: Architektúrák 6. előadás 72
FeladatokMit nevezünk program megszakításnak?Mi a megszakítás kezelő?Hogyan történhet a nyomtatás szervezése megszakítás
segítségével?Megszakítható-e a megszakítás kezelő?Mi a csapda?Mi a különbség a csapda és a megszakítás között?Hogy működik a 8259A megszakítás vezérlő lapka?Milyen hardver és milyen szoftver tevékenységek
tartoznak a megszakításhoz?Mit jelent az átlátszóság megszakítás esetén?
![Page 73: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/73.jpg)
Máté: Architektúrák 6. előadás 73
FeladatokHogy történik a program megszakítás a PC-n?Mire szolgál az INT utasítás, és hogy működik?Mi az INT 3 utasítás nevezetessége?Hogy működik a DEBUG program?Miért „felejti el” a töréspontot a DEBUG program? Miért nem lehet egy ciklus futásait egyetlen töréspont
elhelyezésével figyeltetni a DEBUG programmal?Mire szolgál az INTO utasítás?Hogy történik a visszatérés a megszakítás kezelőből?Hogy működik az IRET utasítás?
![Page 74: A verem két felső szavának cseréje (4.17. ábra)](https://reader034.fdocument.pub/reader034/viewer/2022052703/56814bf4550346895db8e650/html5/thumbnails/74.jpg)
Máté: Architektúrák 6. előadás 74
FeladatokMire szolgál a szemafor?Miért támaszt speciális nehézséget a szemafor
kezelése?Hogy kezelhető PC-n a szemafor?