1 / 57

Operandus megadás

Operandus megadás Közvetlen operandus (immediate operand): Az operandus megadása a címrészen ( 5.16. ábra )

neci
Download Presentation

Operandus megadás

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 2. előadás

  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ülendő (cache problémák!), regiszter indirekt címzéssel kikerülhetjük. 2. előadás

  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 ; gyűjtsü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 2. előadá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 ; gyűjtsük az eredményt R1-ben, ; kezdetben ez 0. MOV R2, #0 ; az index kezdő é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 2. előadá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, (R2+R5) 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. 2. előadás

  6. Az Intel 8086/8088 társzervezése A memória byte szervezésű. Egy byte 8 bitből á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) 2. előadás

  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 kezdőcíme fizikai cím szegmens kezdőcíme + szegmensen belüli cím 2. előadás

  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 2. előadás

  9. Vezérlő 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 jelző 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 2. előadás

  10. STATUS (FLAGS) bitjei (flag-jei) • O (Overflow) előjeles túlcsordulás • D (Direction) a string műveletek iránya, 0: növekvő, 1: csökkenő • 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ékű bit-je (előjel 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 előjel nélküli műveleteknél 2. előadás

  11. Általános regiszterek (16 illetve 8 bitesek) 2. előadás

  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 2. előadás

  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 (DS:SZO) illetve (DS:KAR) MOV AX, KAR ; hibás MOV AL, SZO ; hibás MOV AX, WORD PTR KAR ; helyes MOV AL, BYTE PTR SZO ; helyes 2. előadás

  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, 10H[SI] MOV AX, -10H[SI] • 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, 10H[BX][SI] MOV AX, [BX+SI+10H] 2. előadás

  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. 2. előadás

  16. Program terület címzés Automatikus szegmens regiszter: CS A végrehajtandóutasítás címe: (CS:IP) 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 előjeles 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 <= a 16 bites operandus Távoli (FAR): (CS:IP) <= a 32 bites operandus. CALL VALAMI ; az eljárás típusától függően ;NEAR vagy FAR 2. előadás

  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énő vezérlés átadás. Pl.: JMP AX ; ugrás az AX-ben tárolt címre JMP [BX] ; ugrás a (DS:BX) által címzett ; szóban tárolt címre. 2. előadás

  18. Az utasítások szerkezete Prefixum: utasítás ismétlés, explicit szegmens megadás vagy LOCK MOV AX, CS:S ; S nem a DS, ; hanem a CS regiszterrel címzendő 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 műveletet elvégezni 2. előadás

  19. Címzési mód byte A legtöbb utasítás kód után szerepel. Szerkezete: Ha a műveleti kód legalacsonyabb helyértékű bit-je 0, akkor a regiszter byte, 1, akkor a regiszter word. 2. előadás

  20. 2. előadás

  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, 122H[SI+BX] ; hexadecimálisan 8B 80 0122 MOV 122H[SI+BX], AX ; hexadecimálisan 89 80 0122 2. előadás

  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, sőt, IP és CS csak vezérlés átadó utasításokkal módosítható, közvetlenül nem is olvasható. 2. előadás

  23. ; Assembly főprogram, amely adott szöveget ír a képernyőre ; ================================================= 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 értelemszerűen ASSUME CS:KOD, DS:ADAT, SS:VEREM, ES:NOTHING ; feltételezett szegmens regiszter értékek. ; A beállításról ez az utasítás nem gondoskodik! 2. előadás

  24. KIIR PROC FAR ; A fő eljárás mindig FAR ; FAR: távoli, NEAR: közeli eljárás ; Az operációs rendszer úgy hívja meg a főprogramokat, hogy ; a CS és IP a program végén lévő 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 főprogram előkészületi része 2. előadás

  25. MOV SI, OFFSET SZOVEG ; SISZÖVEG OFFSET címe CLD ; a SZÖVEGet növekvő címek ; szerint kell olvasni CALL KIIRO ; Eljárás hívás RET ; Visszatérés az op. rendszerhez ; a veremből visszaolvasott ; szegmens és OFFSET címre KIIR ENDP ; A KIIR eljárás vége 2. előadás

  26. KIIRO PROC ; NEAR eljárás, ; megadása nem kötelező CIKLUS: LODSB ; ALa következő karakter CMP AL, 0 ; AL =? 0 JE VEGE ; ugrás a VEGE címkéhez, ; ha AL=0 MOV AH, 14 ; BIOS rutin paraméterezése INT 10H ; a 10-es interrupt hívása: ; az AL-ben lévő karaktert kiírja ; a képernyőre 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 2. előadás

  27. ADAT SEGMENT PARA PUBLIC DATA SZOVEG DB Ezt a szöveget kiírja a képernyőre 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 kezdőcíme: KIIR 2. előadás

  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ékű jelek valamilyen függvényét tudja kiszámítani.Kapcsolási idő néhány ns (nanoszekundum = 10-9 s) 2. előadás

  29. 0 + Vcc + Vcc + Vcc + Vcc + Vcc Vki Bázis NEM (NOT) kapu (3.1.ábra). Kollektor 0 Vbe Emitter NEM(NOT)kapu, inverter Tranzisztor Szimbolikus jelölése: Igazság tábla: X A Inverziós gömb erősítő 2. előadás

  30. + Vcc Vki V1 V2 Igazság tábla: NEM-ÉS (NAND) kapu Szimbolikus jelölése A X B 2. előadás

  31. V1 V2 A X B Igazság tábla: + Vcc NEM-VAGY (NOR) kapu Vki Szimbolikus jelölése 2. előadás

  32. A X B Igazság tábla: ÉS kapu Szimbolikus jelölése 2. előadás

  33. A X B Igazság tábla: VAGY kapu Szimbolikus jelölése 2. előadás

  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. 2. előadás

  35. Igazság tábla: Pl. 3 változós többségi függvény (3.3. ábra): értéke 1, ha legalább két operandus 1 Bool algebrai alakja: A fölülvonás a NEM (negáció), az egymás mellé írás az ÉS, a + a VAGY művelet jele. 2. előadás

  36. A B C A B C M A B C 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. 2. előadás

  37. NOT NAND és NOR előnye: teljesség (3.4. ábra). AND OR 2. előadás

  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 ellenőrizhető az igazság táblájuk alapján. Pl.: AB + AC és A(B + C) ekvivalens (3.5. ábra). Az első függvény megvalósításához két ÉS és egy VAGY kapura van szükség, a másodikhoz elegendő egy ÉS és egy VAGY kapu. 2. előadás

  39. Néhány azonosság (3.6. ábra) 2. előadás

  40. Disztribúciós szabály: A+BC=A+(BC)=(A+B)(A+C) Jelölje az ÉS műveletet ٨ , a VAGYműveletet ٧ , akkor A ٧ (B ٨ C) = (A ٧ B) ٨ (A ٧ C) 2. előadás

  41. Alapvető digitális logikai áramkörök Integrált áramkör (IC, Integrated Circuit, chip, lapka) 5x5 mm2 szilícium darab kerámia vagy műanyag 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 ..., > 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. 2. előadás

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

  43. Kívánalom: sok kapu – kevés láb Kombinációs áramkörök Definíció:A kimeneteket egyértelműen meghatározzák a pillanatnyi bemenetek. 2. előadás

  44. D0 D0 D1 D1 D2 D2 F D3 D3 D4 D4 D5 D5 D6 D6 D7 D7 A B A B C • Multiplexer:2n adatbemenet, n vezérlő bemenet, 1 kimenet. Az egyik adatbemenet kapuzott (gated) a kimenetre (3.11. ábra). F C Sematikus rajza 2. előadás

  45. D0 D1 D2 Vcc D3 D4 D5 D6 F D7 A B C 3.12. ábra Igazság tábla: n vezérlő bemenetű multiplexerrel tetszés szerinti n változós bool függvény megvalósítható az adatbemenetek megfelelő választásával. Pl. a 3 változós többségi függvény: Párhuzamos-soros átalakítás: vezérlő vonalakon rendre: 000, 001, … 111. 2. előadás

  46. D0 D0 D1 D1 D2 D2 D3 D3 D4 D4 D5 D5 D6 D6 D7 D7 • Demultiplexer: egy egyedi bemenetet irányít az n vezérlő bemenet értékétől függően a 2n kimenet egyikére demultiplexer multiplexer 2. előadás

  47. D0 D0 D1 D1 D2 D2 D3 D3 D4 D4 D5 D5 D6 D6 D7 D7 • Dekódoló:n bemenet, 2n kimenet. Pontosan egy kimeneten lesz 1 (3.13. ábra). Demultiplexerrel: a bemenetet igazra állítjuk. dekódoló demultiplexer 2. előadás

  48. Összehasonlító (comparator): (3.14. ábra). A0 B0 A1 B1 A2 B2 A3 A X B3 B Igazság tábla: KIZÁRÓ VAGY kapu A ≡ B Szimbolikus jelölése 4 bites összehasonlító 2. előadás

  49. 0 1 5 0 1 49 6 kimenet Ha ezt a biztosítékot kiégetjük, akkor nem jelenik meg #B az 1-es ÉS kapu bemenetén • Programozható logikai tömbök:PLA (3.15. ábra) (Programmable Logic Array). 50 bemenő vonal 24 bemenő 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 bemenő jel 2. előadás

  50. D0 D1 D2 D3 D4 D5 D6 D7 C S0 S1 S2 S3 S4 S5 S6 S7 Aritmetikai áramkörök A kombinációs áramkörökön belül külön csoportot alkotnak. Léptető (shifter):3.16. ábra, C=0: balra, 1: jobbra. 2. előadás

More Related