Máté: Architektúrák 3. előadás 1
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).
Máté: Architektúrák 3. előadás 2
3.10. ábra SSI lapka négy NAND kapuval
Vcc: feszültség, GND: föld.
14 13 12 11 10 9 8
1 2 3 4 5 6 7
Vcc
GND
Bevágás
Máté: Architektúrák 3. előadás 3
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.
Máté: Architektúrák 3. előadás 4
• Multiplexer: n vezérlő bemenet, 2n adatbemenet, 1 kimenet. Az egyik adatbemenet kapuzott (gated) a kimenetre (3.11-12. ábra).
C
D0
D1
D2
D3
D4
D5
D6
D7
A B
F
Sematikus rajza
Máté: Architektúrák 3. előadás 5
n vezérlő bemenetű multiplexerrel tetszés szerinti n változós Boole-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.
Máté: Architektúrák 3. előadás 6
multiplexer demultiplexer
• Demultiplexer: egy egyedi bemenetet irányít az n vezérlő bemenet értékétől függően a 2n kimenet egyikére
Máté: Architektúrák 3. előadás 7
dekódolódemultiplexer
• Dekódoló: n bemenet, 2n kimenet. Pontosan egy kimeneten lesz 1 (3.13. ábra). Demultiplexerrel: a bemenetet igazra állítjuk.
Máté: Architektúrák 3. előadás 8
KIZÁRÓ VAGY
(XOR eXclusive OR) kapu
A B X0 0 00 1 11 0 11 1 0
Igazság tábla:
Szimbolikus jelölése
A
BX
• Összehasonlító (comparator): (3.14. ábra)
Máté: Architektúrák 3. előadás 9
• Programozható logikai tömbök: PLA (3.15. ábra) (Programmable Logic Array).
0
1
49
0 1 5
A B L
12 bemenő jel
Ha ezt a biztosítékot kiégetjük, akkor nem jelenik meg B# az 1-es ÉS kapu bemenetén
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
24 bemenő vonal
50 bemenő vonal
6 kimenet
Máté: Architektúrák 3. előadás 10
Máté: Architektúrák 3. előadás 11
Aritmetikai áramkörökA kombinációs áramkörökön belül külön csoportot alkotnak.
Léptető:
C=1: jobbra,
C=0: balraléptet.
Máté: Architektúrák 3. előadás 12
Összeadók:
Fél-összeadó (half adder, 3.17. ábra)
Máté: Architektúrák 3. előadás 13
Összeadók:
Teljes-összeadó (full adder, 3.18. ábra)
Máté: Architektúrák 3. előadás 14
Aritmetikai-logikai egység: bitszelet (bit slice, 3.19. ábra), F0, F1 -től függően ÉS, VAGY, NEGÁCIÓ vagy +
Máté: Architektúrák 3. előadás 15
• átvitel továbbterjesztő összeadó (ripple carry adder):
Máté: Architektúrák 3. előadás 16
• átvitel kiválasztó összeadó (carry select adder) eljárás:
Máté: Architektúrák 3. előadás 17
Nem kombinációs áramkörök
Óra (clock, 3.21. ábra): ciklusidő (cycle time). Pl.: 500 MHz - 2 nsec. Finomabb felbontás késleltetéssel.Aszimmetrikus óra.
késleltetés
AB
C
Máté: Architektúrák 3. előadás 18
Memória: „Emlékszik” az utolsó beállításra.
Tároló: Szint vezérelt (level triggered).
SR tároló (Set Reset latch, 3.22. ábra). Stabil állapot: a két kimenet 0, 1 vagy 1, 0. S (set), R (reset) bemenet. (Q# ≡ Q)
Máté: Architektúrák 3. előadás 19
Mindkét SR tároló indeterminisztikussá válna, ha S = R = 1 egyszerre fordulna elő.
Máté: Architektúrák 3. előadás 20
Az inverternek van egy pici (1-10 ns) késleltetése (Δ).
Máté: Architektúrák 3. előadás 21
Flip-flop: élvezérelt (edge triggered), D flip-flop: 3.26. ábra.
Máté: Architektúrák 3. előadás 22
3.27. ábra: Tárolók és flip-flopok
(a) CK=1, (b) CK=0 szint esetén írja be D-t,
(c) CK emelkedő, (d) CK lefelé menő élénél.
Sokszor S (set, PR preset), R (reset,CLR clear) be- és Q# kimenet is van.
D Q
CK
D Q
>CK
(a) (b)
tárolók
(c) (d)
flip-flopok
D Q
CK
D Q
>CK
CK: órajel
Máté: Architektúrák 3. előadás 23
3.28. ábra: (a) 2 független D flip-flop,
1 2 3 4 5 6 7
14 13 12 11 10 9 8
D Q
>CK Q#
CLR
PR
D Q
>CK Q#
CLR
PR
Vcc
GND
Máté: Architektúrák 3. előadás 24
3.28. ábra: (b) közös CK-val és CLR-rel vezérelt 8 bites D flip-flop: regiszter
20 19 18 17 16 15 14 13 12 11
1 2 3 4 5 6 7 8 9 10GND
Vcc
D Q
>CKCLR
D Q>CKCLR
D Q
>CKCLR
D Q>CKCLR
D Q
>CKCLR
D Q>CKCLR
D Q
>CKCLR
D Q>CKCLR
Máté: Architektúrák 3. előadás 25
Memória szervezése
Elvárás: szavak címezhetősége.
3.29. ábra: Négy db három bites szó. Bemenetek: három a vezérléshez, – CS (Chip Select): lapka választás, – RD (ReaD): 1: olvasás, 0: írás választása, – OE (Output Enable): kimenet engedélyezése.
kettő a címzéshez (dekódoló), három a bemenő adatoknak, három adat kimenet.
Máté: Architektúrák 3. előadás 26
3.29. ábra.
4 3-as memória
Máté: Architektúrák 3. előadás 27
Memória szervezése Az igazi memóriáknál a bemenet és kimenet közös
(kevesebb lábra van szükség): Nem invertáló és invertáló pufferek (ezek három állapotú eszközök, tri-state device, 3.30. ábra).
adat be adat ki
vezérlés
adat be adat ki
vezérlés
nem invertáló puffer invertáló puffer
magas
alacsony
Ha a vezérlő jel
magas
alacsony
Ha a vezérlő jel
Máté: Architektúrák 3. előadás 28
Memórialapkák Előnyös, ha a szavak száma 2 hatvány. 4 Mbit-es memória kétféle szervezése: 3.31. ábra.
A0 A1...
A18
D0 D1...
D7
512 K 8 bites
memória
(4 Mbit)
CS WE OE
A0 A1...
A10D
4096 K 1 bites
memória
(4 Mbit)
CS WE OE
RAS
CAS
19 cím, 8 adat vonal
11 cím, 1 adat vonalRow Address Strobe
Column Address Strobe
Máté: Architektúrák 3. előadás 29
Memórialapkák A jel (bemenet) beállított (asserted) vagy negált.
CS beállított: 1, de CS# beállított: 0
a) 512 K bájtos elrendezés: 19 cím, 8 adat vonal.
b) 2048*2048 bites elrendezés: 11 cím, 1 adat vonal: Bit kiválasztás sor- (RAS: Row Address Strobe) és oszlopindex CAS (Column ...) segítségével. Gyakran alkalmazzák nagyobb memóriáknál, bár a két cím megadása lassíthat.
Nagyobb memóriáknál 1, 4, 8, 16 bites kimeneteket is használnak.
Máté: Architektúrák 3. előadás 30
RAM (Random Access Memory) • Statikus RAM (SRAM). D flip-flop elemekből épül fel.
Amíg áram alatt van, tartja a tartalmát. Elérési idő: néhány nsec (cache-nek jók).
• Dinamikus RAM (DRAM): minden bit egy tranzisztor és egy kondenzátor: néhány msec-onként frissíteni kell, de nagyobb adatsűrűség érhető el. Elérési idő: néhány tíz nsec (főmemóriák). - régi: FPM (Fast Page Mode) sor-, oszlopcím.- újabb: EDO (Extended Data Output) lehet új
memóriahivatkozás, mielőtt az előző befejeződik.• SDRAM (Synchronous DRAM). A központi óra vezérli.
Blokkos átvitel. Újabban: DDR (Double Data Rate). Az órajel föl- és lefutó élénél is van adatátvitel.
Máté: Architektúrák 3. előadás 31
ROM (Read-Only Memory)ROM: gyárilag kialakított tartalom.PROM (Programmable ROM): a tartalom
biztosítékok kiégetésével alakul ki (a PLA-khoz hasonlóan, 3.15. ábra).
EPROM (Erasable PROM): a biztosítékok speciális fénnyel kiolvaszthatók és „kijavíthatók”.
EEPROM: elektromos impulzusokkal.Flash memória: törlés és újraírás csak blokkonként.
Kb. 100 000 használat után „elkopnak”. Ilyen van a legtöbb MP3 lejátszóban, digitális fényképezőgépben …
Máté: Architektúrák 3. előadás 32
512 MB-os flash memória (2006)
Máté: Architektúrák 3. előadás 33
1 GB-os flash memória (2007)
Máté: Architektúrák 3. előadás 34
Az I8086/8088 utasítás rendszereJelőlések : értékadás : felcserélésop, op1, op2: tetszőlegesen választható operandus
(közvetlen, memória vagy regiszter). op1 és op2 közül az egyik regiszter kell legyen!reg: általános, bázis vagy index regisztermem: memória operandusipr: (8 bites) IP relatív cím port: port cím (8 bites eltolás vagy DX)[op]: az op által mutatott cím tartalma
Máté: Architektúrák 3. előadás 35
Adat mozgató utasítások Nem módosítják a flag-eket (kivéve POPF és SAHF)
MOV op1, op2 ; op1 op2 (MOVe)XCHG op1, op2 ; op1 op2 (eXCHanGe), op2 sem
; lehet közvetlen operandusXLAT ; AL [BX+AL] (trans(X)LATe), a
; BX által címzett maximum 256 byte-; os tartomány AL-edik byte-jának ; tartalma lesz AL új tartalma
LDS reg, mem ; reg mem, mem+1; DS mem+2, mem+3 (Load DS)
LES reg, mem ; reg mem, mem+1; ES mem+2, mem+3 (Load ES)
LEAreg, mem ; reg mem effektív (logikai) címe ; (Load Effective Address)
Máté: Architektúrák 3. előadás 36
A veremmel (stack-kel) kapcsolatos adat mozgató utasítások:
PUSH op ; SP SP-2; (SS:SP) op
PUSHF ; (PUSH Flags)
; SP SP-2; (SS:SP) STATUS
POP op ; op (SS:SP); SP SP+2
POPF ; (POP Flags)
; STATUS (SS:SP); SP SP+2
Az Intel 8080-nal való kompatibilitást célozza az alábbi két utasítás:
SAHF ; STATUS alsó 8 bitje AH
LAHF ; AH STATUS alsó 8 bitje
Máté: Architektúrák 3. előadás 37
Aritmetikai utasításokADD op1, op2 ; op1 op1 + op2 (ADD)
Pl.: előjeles/előjel nélküli számok összeadása MOV AX, -1 ; AX=-1 (=0FFFFH)ADD AX, 2 ; AX=1, C=1, O=0
ADC op1, op2 ; op1 op1 + op2 + C ; (ADD with Carry)
Pl.: két szavas összeadás (előjeles/előjel nélküli)ADD AX, BXADC DX, CX ; (DX:AX) = (DX:AX) +
(CX:BX)
INC op ; op op + 1, C változatlan! (INCrement)
Máté: Architektúrák 3. előadás 38
SUB op1, op2 ; op1 op1 - op2 (SUBtraction)
CMP op1, op2 ; flag-ek op1 - op2 szerint (CoMPare)
SBB op1, op2 ; op1 op1 - op2 – C:
; a több szavas kivonást segíti.
DECop ; op op - 1, C változatlan ; (DECrement)
NEG op ; op -op (NEGate)
Máté: Architektúrák 3. előadás 39
Az összeadástól és kivonástól eltérően a szorzás és osztás esetében különbséget kell tennünk, hogy előjeles vagy előjel nélküli számábrázolást alkalmazunk-e. További lényeges eltérés, hogy két 8 bites vagy 16 bites mennyiség szorzata ritkán fér el 8 illetve 16 biten, ezért a szorzás műveletét úgy alakították ki, hogy 8 bites tényezők szorzata 16, 16 biteseké pedig 32 biten keletkezzék:
Szorzásnál op nem lehet közvetlen operandus!
MUL op ; előjel nélküli szorzás (MULtiplicate),
IMUL op ; előjeles szorzás (Integer MULtiplicate).
Ha op 8 bites AX AL op.
Ha op 16 bites (DX:AX) AX op.
Máté: Architektúrák 3. előadás 40
Osztásnál op nem lehet közvetlen operandus!
DIV op ; (DIVide) előjel nélküli osztás,IDIV op ; (Integer DIVide) előjeles osztás,
; A nem 0 maradék előjele megegyezik; az osztóéval.
Ha op 8 bites: AL AX/op hányadosa,AH AX/op maradéka.
Ha op 16 bites: AX (DX:AX)/op hányadosa,DX (DX:AX)/op maradéka.
Osztásnál túlcsordulás azonnal elhal (abortál) a programunk!
Máté: Architektúrák 3. előadás 41
Ha bájtot bájttal vagy szót szóval akarunk osztani, akkor:• Előjel nélküli osztás előkészítése AH illetve DX
nullázásával történik. • Előjeles osztás előkészítésére szolgál az alábbi két előjel
kiterjesztő utasítás: CBW ; (Convert Byte to Word)
; AX AL előjel helyesenCWD ; (Convert Word to Double word)
; (DX:AX) AX előjel helyesen Pozitív számok esetén (az előjel 0) az előjel kiterjesztés az AH illetve a DX regiszter nullázását, negatív számok esetén (az előjel 1) csupa 1-es bittel való feltöltését jelenti.
Az előjel kiterjesztés máskor is alkalmazható.
Máté: Architektúrák 3. előadás 42
; Két vektor skalár szorzata. 1. változat
code segment para public ’code’
assume cs:code, ds:data, ss:stack, es:nothing
skalar proc far
push ds ; visszatérési cím a verembe
xor ax,ax ; ax 0
push ax ; visszatérés offset címe
mov ax,data ; ds a data szegmensre mutasson
mov ds,ax ; sajnos „mov ds,data”
; nem megengedett
; A
Máté: Architektúrák 3. előadás 43
mov cl,n ; cl n, 0 n 255
xor ch,ch ; cx = n szavasan
xor dx,dx ; az eredmény ideiglenes helye
JCXZ kesz ; ugrás a kesz címkére,
; ha CX (=n) = 0
xor bx,bx ; bx 0,
; bx-et használjuk indexezéshez
Máté: Architektúrák 3. előadás 44
ism: mov al,a[bx] ; al a[0], később a[1], ...
imul b[bx] ; ax a[0]b[0], a[1]b[1], ...
add dx,ax ; dx részösszeg
inc bx ; bx bx+1, az index növelése
; B
dec cx ; cx cx-1, (vissza)számlálás
JCXZ kesz ; ugrás a kész címkére, ha cx=0
jmp ism ; ugrás az ism címkére
kesz: mov ax,dx ; a skalár szorzat értéke ax-ben
; C
Máté: Architektúrák 3. előadás 45
call hexa ; az eredmény kiírása
; hexadecimálisan
mov si,offset kvse ; kocsi vissza soremelés
call kiiro ; kiírása
ret ; vissza az Op. rendszerhez
skalar endp ; a skalár eljárás vége
; D
Máté: Architektúrák 3. előadás 46
hexa proc ; ax kiírása hexadecimálisanxchg ah,al ; ah és al felcserélésecall hexa_b ; al (az eredeti ah) kiírásaxchg ah,al ; ah és al visszacserélésecall hexa_b ; al kiírásaret ; visszatérés
hexa endp ; a hexa eljárás vége; ----------------------------------------------------------hexa_b proc ; al kiírása hexadecimálisan
push cx ; 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 bitencall h_jegy ; az első jegy kiírása ROR al,CL ; a második jegy az alsó 4 bitencall h_jegy ; a második jegy kiírása pop cx ; visszamentés a verembőlret ; visszatérés
hexa_b endp ; a hexa_b eljárás vége
Máté: Architektúrák 3. előadás 47
h_jegy proc ; hexadecimális jegy kiírásapush ax ; 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’-’0’-0AH ; A-F hexadecimális jegyek
; kialakításah_jegy1: mov ah,14 ; BIOS szolgáltatás előkészítése
int 10H ; BIOS hívás: karakter kiíráspop ax ; visszamentés a verembőlret ; visszatérés
h_jegy endp ; a hexa_b eljárás vége
Máté: Architektúrák 3. előadás 48
kiiro proc ; szöveg kiírás (DS:SI)-tőlpush axcld
ki1: lodsb ; ala következő karaktercmp al, 0 ; al =? 0je ki2 ; ugrás a ki2 címkéhez, ha al=0mov ah,14 ; BIOS rutin paraméterezéseint 10H ; az AL-ben lévő karaktert
; kiírja a képernyőrejmp ki1 ; a kiírás folytatása
ki2: pop axret ; visszatérés a hívó programhoz
kiiro endp ; a kiíró eljárás vége; ----------------------------------------------------------code ends ; a code szegmens vége
Máté: Architektúrák 3. előadás 49
data segment para public ’data’n db 3a db 1, 2, 3b db 3, 2, 1kvse db 13, 10, 0 ; kocsi vissza, soremelésdata ends ; a data szegmens vége; ==========================================stack segment para stack ’stack’
dw 100 dup (?) ; 100 word legyen a veremstack ends ; a stack szegmens vége; ==========================================
end skalar ; modul vége, ; a program kezdő címe: skalar
Máté: Architektúrák 3. előadás 50
Vezérlés átadó utasítások
Eljárásokkal kapcsolatos utasítások
Eljárás hívás:
CALL op ; eljárás hívás
- közeli: push IP, IP op,
- távoli: push CS, push IP, (CS:IP) op.
Visszatérés az eljárásból:
RET ; visszatérés a hívó programhoz (RETurn)
- közeli: pop IP,
- távoli: pop IP, pop CS.
RET op ; . . . , SP SP+op
; op csak közvetlen adat lehet!
Máté: Architektúrák 3. előadás 51
Feltétlen vezérlés átadás (ugrás)
JMP op ; ha op közeli: IP op,
; ha távoli: (CS:IP) op.
Máté: Architektúrák 3. előadás 52
Feltételes ugrások, aritmetikai csoport
Előjeles Reláció Előjel nélküli
JZ ≡ JE = JZ ≡ JE
JNZ ≡ JNE ≠ JNZ ≡ JNE
JG ≡ JNLE > JA ≡ JNBE
JGE ≡ JNL ≥ JAE ≡ JNB ≡ JNC
JL ≡ JNGE < JB ≡ JNAE ≡ JC
JLE ≡ JNG ≤ JBE ≡ JNA
A feltételek: Zero, Equal, No (Not), Greater, Less, Above, Below, Carry
Máté: Architektúrák 3. előadás 53
A feltételek: Zero, Equal, No (Not), Carry, Sign, Overflow, Parity Even, Parity Odd.
Feltételes ugrások, logikai csoport
a flag igaz (1) flag a flag hamis (0)
JZ ≡ JE Zero JNZ ≡ JNE
JC Carry JNC
JS Sign JNS
JO Overflow JNO
JP ≡ JPE Parity JNP ≡ JPO
JCXZ CX = 0
Máté: Architektúrák 3. előadás 54
Minden feltételes vezérlés átadás IP relatív címzéssel (SHORT) valósul meg!
Pl.:
JZ MESSZE ; Hibás, ha
; MESSZE messze van
Megoldás:
JNZ IDE ; Negált feltételű ugrás
JMP MESSZE
IDE: . . .
Máté: Architektúrák 3. előadás 55
Ciklus szervező utasítások
IP relatív címzéssel (SHORT) valósulnak meg.
LOOP ipr ; CX CX – 1, ugrás ipr -re,
; ha CX 0
LOOPZ ipr ; CX CX – 1, ugrás ipr -re,
; ha (CX 0 és Z=1)
LOOPE ipr ; ugyanaz mint LOOPZ
LOOPNZ ipr ; CX CX – 1, ugrás ipr -re,
; ha (CX 0 és Z=0)
LOOPNE ipr ; ugyanaz mint LOOPNZ
Máté: Architektúrák 3. előadás 56
FeladatokMit nevezünk kombinációs áramkörnek?Milyen kombinációs áramköröket ismer?Milyen be- és kimenetei vannak a multiplexernek, a
demultiplexernek, a dekódolónak?Mire használható a multiplexer, és hogyan?Mire használható a PLA, és hogyan?Milyen aritmetikai áramköröket ismer?Hogy működik a léptető?Hogy működik a „fél összeadó”? Mi indokolja a „fél összeadó” elnevezést?
Máté: Architektúrák 3. előadás 57
Feladatok
Hogy épül fel a teljes összeadó?
Milyen részei vannak az ALU-nak?
Milyen be- és kimenetei vannak az 1 bites ALU-nak?
Milyen műveletek végezhetők el az ALU-val?
Hogy működik az átvitel továbbterjesztő/kiválasztó összeadó?
Máté: Architektúrák 3. előadás 58
FeladatokHogy érhetünk el az órajelnél finomabb időzítést?Milyen nem kombinációs áramköröket ismer?Kombinációs áramkör-e az ALU?Hogyan csökkenthető az összeadásnál az átvitelekből
származó idő?Hány stabil állapota van az SR tárolónak?Mi a különbség az SR és az időzített SR tároló között?Mi a különbség az SR és D tároló között?Mi a pulzusgenerátor, és mi a működési elve?Mi a különbség a tároló és a flip-flop között?
Máté: Architektúrák 3. előadás 59
FeladatokHogy működik az invertáló és a nem invertáló puffer?Miért használnak a memóriáknál invertáló vagy nem
invertáló puffert?Hogy címezhető meg n címlábon 2n nél nagyobb
memória?Mit jelent, hogy a CS/CS# bemenet beállított/negált?Mi a RAM?Milyen elemekből épül fel a SRAM?Milyen elemekből épül fel a DRAM?Hogy működik a DRAM?
Máté: Architektúrák 3. előadás 60
Feladatok
Hogy működik az SDRAM?
Mit jelent az FPM rövidítés?
Mit jelent az EDO rövidítés?
Hogy működik a DDR?
Mit jelent a ROM rövidítés?
Hogy működik az EPROM?
Hogy működik az EEPROM?
Milyen memória van a legtöbb fényképezőgépben?
Máté: Architektúrák 3. előadás 61
Feladatok
Milyen adat mozgató utasításokat ismer? Hogy működnek?
Milyen aritmetikai utasításokat ismer? Hogy működnek?
Mit csinál az IDIV utasítás?
Mit csinál az CWD utasítás?
Miért hibás az
imul [di+bx]
utasítás?
Máté: Architektúrák 3. előadás 62
Feladatok
Írjon program részletet a/b kiszámítására, feltéve, hogy a és b előjeles/előjel nélküli bájt/word!
Írjon program részletet a/b kiszámítására, feltéve, hogy a előjeles és b előjel nélküli bájt/word!
Írjon program részletet a/b kiszámítására, feltéve, hogy a előjeles bájt és b előjeles word!
Írjon program részletet a/b kiszámítására, feltéve, hogy a előjeles bájt és b előjel nélküli word!
Írjon program részletet a/b kiszámítására, feltéve, hogy a előjeles word és b előjel nélküli bájt!
Máté: Architektúrák 3. előadás 63
FeladatokMelyik az eljárást hívó utasítás?Hova helyezi el a visszatérési címet a CALL utasítás?Mi a különbség a közeli és távoli eljárás hívás között?Meghívható-e egy közeli/távoli eljárás másik
szegmensből?Honnan „tudja” a CALL utasítás, hogy közeli vagy
távoli a hívott eljárás?Honnan „tudja” a RET utasítás, hogy közeli vagy
távoli ugrással kell visszatérni az eljárásból?Mi történik RET 4 hatására?Mi történik CALL FAR 8[BX][SI] hatására?
Máté: Architektúrák 3. előadás 64
FeladatokMilyen a feltételes ugró utasítások címzési módja?Mi a különbség a JA és JG utasítás között?Sorolja fel az aritmetikai csoportba tartozó feltételes
ugró utasításokat!Írjon programrészletet, amely az A, B, C címkéhez
ágazik el aszerint, hogy AX <, = vagy > 0!Írjon programrészletet, amely az A, B, C címkéhez
ágazik el aszerint, hogy X <, = vagy > Y! X előjeles, Y előjel nélküli bájt.
A program JCXZ A utasítása hibás, mert az A címke túl messze van. Hogy javítható a hiba?
Máté: Architektúrák 3. előadás 65
FeladatokMilyen ciklus szervező utasításokat ismer? Hogy
működnek?Mi a különbség a LOOP és a LOOPZ utasítás között?Írjon programrészletet az 50 elemű, szavakból álló A
tömb első 0 elemének megtalálására!Írjon programrészletet az 50 elemű, szavakból álló A
tömb utolsó 0 elemének megtalálására!Írjon programrészletet az 50 elemű, bájtokból álló A
tömbben található a betűk megszámlálására!Hibás a LOOPNE A utasítás, mert az A címke túl
messze van. Hogy javítható a hiba?