Késleltetés
Sponsored Links
This presentation is the property of its rightful owner.
1 / 55

Nem kombinációs áramkörök PowerPoint PPT Presentation


  • 51 Views
  • Uploaded on
  • Presentation posted in: General

késleltetés. Nem kombinációs áramkörök Óra (clock): ciklusidő (cycle time). Pl.: 500 MHz - 2 nsec. Finomabb felbontás eltolással: 3.21. ábra. A. B. C. 0. 0. 0. 0. 1. 1 0. 0. 0 1. S. S. S. S. #Q. #Q. #Q. #Q. 1. 0. 0 1. 1 0. 0 1. 1. 1 0. 0. Q. Q. Q. Q. R. R.

Download Presentation

Nem kombinációs áramkörök

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


késleltetés

Nem kombinációs áramkörök

Óra (clock): ciklusidő (cycle time). Pl.: 500 MHz - 2 nsec. Finomabb felbontás eltolással: 3.21. ábra.

A

B

C

3. előadás


0

0

0

0

1

1 0

0

0 1

S

S

S

S

#Q

#Q

#Q

#Q

1

0

0 1

1 0

0 1

1

1 0

0

Q

Q

Q

Q

R

R

R

R

1 0

0 1

0

1

0

0

0

0

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)

1 állapot:

0 állapot:

Nem stabil állapotok:

3. előadás


1-be állítás:

0-ról:1-ről:

1

0

0

1

0 1

0

1 0

1

S

S

S

S

#Q

#Q

#Q

#Q

0 1

1

1 0

0

1 0

0 1

0

1

Q

Q

Q

Q

R

R

R

R

1

0 1

1 0

0

1

0

1

0

0-ba állítás:

0-ról:1-ről:

3. előadás


S

#Q

óra

Q

R

D

#Q

Q

Időzített (clocked) SR tároló (3.23. ábra).

Mindkét SR tároló indeterminisztikussá válna, ha S = R = 1 egyszerre fordulna elő.

IdőzítettD-tároló (3.24. ábra).

3. előadás


Δ

d

b ÉS c

c

b

a

D

#Q

Q

b

a

d

c

Pulzusgenerátor 3.25. ábra.

Az inverternek van egy pici (1-10 ns) késleltetése (Δ).

Flip-flop: élvezérelt (edge triggered), D flip-flop: 3.26. ábra.

3. előadás


Q

Q

Q

D

D

D

Q

D

CK

>CK

>CK

CK

3.27. ábra: Tárolók és flip-flopok

(a) (b)

tárolók

(c) (d)

flip-flopok

CK: órajel

(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.

3. előadás


14 13 12 11 10 9 8

CLR

CLR

D Q

D Q

>CK #Q

>CK #Q

PR

PR

1 2 3 4 5 6 7

Vcc

3.28. ábra: (a) 2 független D flip-flop,

GND

3. előadás


Vcc

20 19 18 17 16 15 14 13 12 11

D Q

D Q

D Q

D Q

>CK

>CK

>CK

>CK

CLR

CLR

CLR

CLR

CLR

CLR

CLR

CLR

>CK

>CK

>CK

>CK

D Q

D Q

D Q

D Q

1 2 3 4 5 6 7 8 9 10

GND

3.28. ábra: (b) közös CK-val vezérelt 8 bites D flip-flop: regiszter

3. előadás


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.

3. előadás


2

1

0

D Q

>CK

D Q

>CK

D Q

>CK

dekóder

D Q

>CK

D Q

>CK

D Q

>CK

A0

A1

D Q

>CK

D Q

>CK

D Q

>CK

D Q

>CK

D Q

>CK

D Q

>CK

CS

RD

OE

input

0. szó

1. szó

2. szó

3. szó

210

output

3. előadás


adat be

adat be

adat ki

adat ki

vezérlés

vezérlés

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 (tri-state device, 3.30. ábra).

invertáló puffer

nem invertáló puffer

magas

bemenet esetén

alacsony

3. előadás


D0 D1...D7

A0 A1...A18

A0 A1...A10

512K 8 bitesmemória

(4M bit)

4096K 1 bitesmemória

(4M bit)

D

RASCAS

CS WE OE

CS WE OE

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.

19 cím, 8 adat vonal

11 cím, 1 adat vonal

Row Address Strobe Column Address Strobe

3. előadás


Memórialapkák

A jel (bemenet) beállított (asserted) vagy negált.CS beállított: 1, de CS# beállított: 0

  • 512 K bájtos elrendezés: 19 cím, 8 adat vonal.

  • 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.

3. előadás


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). Szinkron: SDRAM (synchronous DRAM).Aszinkron működésű:-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.

3. előadás


ROM (Read-Only Memory)

ROM: gyárilag kialakított tartalom.

PROM (Programmable ROM): a tartalom biztosítékok kiégetésével alakul ki (hasonlóan a PLA-khoz, 3.15. ábra).

EPROM (Erasable PROM): a biztosítékok speciális fénnyel kiolvaszthatók és „kijavíthatók”.

EEPROM: elektromos impulzusokkal.

Flash (fény) memória: törlés és újraírás csak blokkonként.Kb. 10 000 használat után „elkopnak”.

3. előadás


Az I8086/8088 utasítás rendszere

Jelőlések

 : értékadás

: felcserélés

op, 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 regiszter

mem: memória operandus

ipr: (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

3. előadás


Adat mozgató utasítások

Nem módosítják a flag-eket (kivéve POPF és SAHF)

MOVop1, op2; op1  op2 (MOVe)

XCHGop1, op2; op1  op2 (eXCHanGe), op2 sem

; lehet közvetlen operandus

XLAT; 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

LDSreg, mem; reg  mem, mem+1

; DS  mem+2, mem+3 (Load DS)

LESreg, mem; reg  mem, mem+1

; ES  mem+2, mem+3 (Load ES)

LEAreg, mem; reg  mem effektív (logikai) címe

; (Load Effective Address)

3. előadás


A veremmel (stack-kel) kapcsolatos adat mozgató utasítások:

PUSHop; SP  SP-2; (SS:SP)  op

PUSHF; (PUSH Flags)

; SP  SP-2; (SS:SP)  STATUS

POPop; 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

3. előadás


Aritmetikai utasítások

ADDop1, op2; op1  op1 + op2 (ADD)

Pl.: előjeles/előjel nélküli számok összeadása

MOVAX, -1; AX=-1 (=0FFFFH)

ADDAX, 2; AX=1, C=1, O=0

ADCop1, op2; op1  op1 + op2 + C

; (ADD with Carry)

Pl.: két szavas összeadás (előjeles/előjel nélkül)

ADDAX, BX

ADCDX, CX; (DX:AX) = (DX:AX) + (CX:BX)

INCop; op  op + 1, C változatlan! (INCrement)

3. előadás


SUBop1, op2; op1  op1 - op2 (SUBtraction)

CMPop1, op2; flag-ek op1 - op2 szerint (CoMPare)

SBBop1, op2; op1  op1 - op2 – C:

; a több szavas kivonást segíti.

DECop; op  op - 1, C változatlan ; (DECrement)

NEGop; op  -op (NEGate)

3. előadás


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!

MULop; előjel nélküli szorzás (MULtiplicate),

IMULop; előjeles szorzás (Integer MULtiplicate).

Ha op 8 bitesAX  AL  op.

Ha op 16 bites (DX:AX)  AX  op.

3. előadás


Osztásnál op nem lehet közvetlen operandus!

DIVop; (DIVide) előjel nélküli osztás,

IDIVop; (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!

3. előadás


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 helyesen

    CWD; (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ó.

3. előadás


; Két vektor skalár szorzata. 1. változat

codesegment para public ’code’

assume cs:code, ds:data, ss:stack, es:nothing

skalarprocfar

pushds; visszatérési cím a verembe

xorax,ax; ax  0

pushax; visszatérés offset címe

movax,data; ds a data szegmensre mutasson

mov ds,ax; sajnos „mov ds,data”

; nem megengedett

; A

3. előadás


movcl,n; cl  n, 0  n  255

xorch,ch; cx = n szavasan

xordx,dx; az eredmény ideiglenes helye

JCXZkesz; ugrás a kesz címkére,

; ha CX (=n) = 0

xorbx,bx; bx  0,

; bx-et használjuk indexezéshez

3. előadás


ism:moval,a[bx]; al  a[0], később a[1], ...

imulb[bx]; ax  a[0]b[0], a[1]b[1], ...

adddx,ax; dx  részösszeg

incbx; bx  bx+1, az index növelése

; B

deccx; cx  cx-1, (vissza)számlálás

JCXZkesz; ugrás a kész címkére, ha cx=0

jmpism; ugrás az ism címkére

kesz: movax,dx; a skalár szorzat értéke ax-ben

; C

3. előadás


callhexa; az eredmény kiírása

; hexadecimálisan

movsi,offset kvse ; kocsi vissza soremelés

callkiiro; kiírása

ret; vissza az Op. rendszerhez

skalarendp; a skalár eljárás vége

; D

3. előadás


hexaproc; ax kiírása hexadecimálisan

xchgah,al; ah és al felcserélése

callhexa_b; al (az eredeti ah) kiírása

xchgah,al; ah és al visszacserélése

call hexa_b; al kiírása

ret; visszatérés

hexaendp; a hexa eljárás vége

; ----------------------------------------------------------

hexa_bproc; al kiírása hexadecimálisan

pushcx; mentés a verembe

movcl,4; 4 bit-es rotálás előkészítése

RORal,CL; az első jegy az alsó 4 biten

callh_jegy; az első jegy kiírása

RORal,CL; a második jegy az alsó 4 biten

callh_jegy; a második jegy kiírása

popcx; visszamentés a veremből

ret; visszatérés

hexa_bendp; a hexa_b eljárás vége

3. előadás


h_jegyproc; hexadecimális jegy kiírása

pushax; mentés a verembe

ANDal,0FH; a felső 4 bit 0 lesz,

; a többi változatlan

addal,’0’; + 0 kódja

cmpal,’9’;  9 ?

JLEh_jegy1; ugrás h_jegy1 -hez, ha igen

addal,’A’-’0’-0AH; A-F hexadecimális jegyek

; kialakítása

h_jegy1: movah,14; BIOS szolgáltatás előkészítése

int10H; BIOS hívás: karakter kiírás

popax; visszamentés a veremből

ret; visszatérés

h_jegyendp; a hexa_b eljárás vége

3. előadás


kiiroproc ; szöveg kiírás (DS:SI)-től

pushax

cld

ki1:lodsb ; ala következő karakter

cmpal, 0; al =? 0

jeki2; ugrás a ki2 címkéhez, ha al=0

movah,14; BIOS rutin paraméterezése

int 10H; az AL-ben lévő karaktert

; kiírja a képernyőre

jmpki1; a kiírás folytatása

ki2:popax

ret; visszatérés a hívó programhoz

kiiroendp; a kiíró eljárás vége

; ----------------------------------------------------------

codeends; a code szegmens vége

3. előadás


datasegment para public ’data’

ndb3

adb1, 2, 3

bdb3, 2, 1

kvsedb13, 10, 0; kocsi vissza, soremelés

dataends; a data szegmens vége

; ==========================================

stacksegment para stack ’stack’

dw100 dup (?); 100 word legyen a verem

stackends; a stack szegmens vége

; ==========================================

endskalar; modul vége,

; a program kezdő címe: skalar

3. előadás


Egyszerűsítési lehetőség:

; B

deccx; cx  cx-1, (vissza)számlálás

JCXZkesz; ugrás a kész címkére, ha cx=0

jmpism; ugrás az ism címkére

kesz: movax,dx ; a skalár szorzat értéke ax-ben

helyett:

; B

LOOPism; ugrás az ism címkére,

; ha kell ismételni

kesz: movax,dx ; a skalár szorzat értéke ax-ben

3. előadás


Annak érdekében, hogy a skalárszorzatot kiszámító program ne rontson el regisztereket, kívánatos ezek mentése:

; A

PUSHBX; mentés

PUSHCX

PUSHDX

és visszamentése:

POPDX; visszamentés

POPCX

POPBX

; C

3. előadás


A paraméterek szabványos helyen történő átadása

; Két vektor skalár szorzata. 2. változat

. . .

; A

; ELJÁRÁS HÍVÁS A PARAMÉTEREK

; SZABVÁNYOS HELYEN TÖRTÉNŐ ÁTADÁSÁVAL

CALLSKAL; ELJÁRÁS HÍVÁS

; eredmény az AX regiszterben

; C

callhexa; az eredmény kiírása

movsi,offset kvse ; kocsi vissza, soremelés

callkiiro; kiírása

. . .

ret; vissza az Op. rendszerhez

skalarendp; a skalár eljárás vége

3. előadás


SKALPROC; KÖZELI (NEAR) ELJÁRÁS ; KEZDETE

PUSHBX; MENTÉSEK

PUSHCX

PUSHDX

movcl,n; cl  n, 0  n  255

xorch,ch; cx = n szavasan

xordx,dx; az eredmény ideiglenes helye

jcxzkesz; ugrás a kesz címkére, ha n=0

xorbx,bx; bx  0,

; bx-et használjuk indexezéshez

3. előadás


ism:moval,a[bx]; al  a[0], később a[1], ...

imulb[bx]; ax  a[0]b[0], a[1]b[1],...

adddx,ax; dx  részösszeg

incbx; bx  bx+1, az index növelése

; B

LOOPism; ugrás az ism címkére,

; ha kell ismételni

kesz: movax,dx; a skalár szorzat értéke ax-ben

POPDX; VISSZAMENTÉSEK

POPCX

POPBX

RET; VISSZATÉRÉS A HÍVÓ ; PROGRAMHOZ

SKALENDP; A SKAL ELJÁRÁS VÉGE

; D

Csak az a és b vektor skalár szorzatát tudja kiszámolni!

3. előadás


A paraméterek regiszterekben történő átadása

; Két vektor skalár szorzata. 3. változat

. . .

; A

; ELJÁRÁS HÍVÁS A PARAMÉTEREK

; REGISZTEREKBEN TÖRTÉNŐ ÁTADÁSÁVAL

MOVCL, n; PARAMÉTER BEÁLLÍTÁSOK

XORCH, CH; CX = n, ÉRTÉK

MOVSI,OFFSET a; SI  a OFFSET CÍME

MOVDI,OFFSET b; DI  b OFFSET CÍME

callskal; eljárás hívás

; eredmény az ax regiszterben

callhexa; az eredmény kiírása

movsi,offset kvse ; kocsi vissza, soremelés

callkiiro; kiírása

. . .

ret; visszatérés az Op. rendszerhez

skalarendp; a skalár eljárás vége

3. előadás


skalproc; Közeli (NEAR) eljárás kezdete

pushbx; mentések

pushcx

pushdx

xordx,dx; az eredmény ideiglenes helye

jcxzkesz; ugrás a kesz címkére, ha n=0

xorbx,bx; bx  0,

; bx-et használjuk indexezéshez

3. előadás


ism:moval,[SI+BX]; FÜGGETLEN a-tól

imulBYTE PTR [DI+BX]; FÜGGETLEN b-től

; csak „BYTE PTR”-ből derül ki, hogy 8 bites a szorzás

adddx,ax; dx  részösszeg

incbx; bx  bx+1, az index növelése

loopism; ugrás az ism címkére,

; ha kell ismételni

kesz: movax,dx; a skalár szorzat értéke ax-ben

popdx; visszamentések

popcx

popbx

ret; visszatérés a hívó programhoz

skalendp; a skal eljárás vége

; D

. . .

Így csak kevés paraméter adható át!

3. előadás


; Két vektor skalár szorzata. 4. változat

. . .

; A

; ELJÁRÁS HÍVÁS A PARAMÉTEREK

; VEREMBEN TÖRTÉNŐ ÁTADÁSÁVAL

MOVAL,n; AL-t nem kell menteni, mert

XORAH,AH; AX-ben kapjuk az eredményt

PUSHAX; AX=n a verembe

MOVAX,OFFSET a; AX  a OFFSET címe

PUSHAX; a verembe

MOVAX,OFFSET b; AX  b OFFSET címe

PUSHAX; a verembe

A verembe került:

n értéke, a címe, b címeparaméterek

3. előadás


callskal; eljárás hívás

; eredmény az ax regiszterben

ADDSP,6; paraméterek ürítése a veremből

. . .

ret; visszatérés az Op. rendszerhez

skalarendp; a skalár eljárás vége

callskal

Hatására a verembe került a visszatérési cím

3. előadás


skalproc; Közeli (near) eljárás kezdete

PUSHBP; BP értékét mentenünk kell

MOVBP,SP; BP  SP,

; a stack relatív címzéshez

PUSHSI; mentések

PUSHDI

pushbx

pushcx

pushdx

A verem tartalma:

n értéke, a címe, b címeparaméterek

visszatérési cím,

bp, si, di, bx, cx, dxmentett regiszterek

3. előadás


A verem tartalma:

n értéke, a címe, b címeparaméterek

visszatérési cím,

bp, si, di, bx, cx, dxmentett regiszterek

(SS:SP)dx

+ 2cx

+ 4bx

+ 6di

+ 8si

+10bp - - - - - - - - - - - - - - - - - - - - - (SS:BP)

+12visszatérési cím+ 2

+14b címe+ 4

+16a címe+ 6

+18n értéke+ 8

. . .korábbi mentések. . .

3. előadás


+10bp - - - - - - - - - - - - - - - - - - - - - (SS:BP)

+12visszatérési cím+ 2

+14b címe+ 4

+16a címe+ 6

+18n értéke+ 8

. . .korábbi mentések. . .

MOVSI,6[BP]; SI  az egyik vektor címe

MOVDI,4[BP]; DI  a másik vektor címe

MOVCX,8[BP]; CX  a dimenzió értéke

xordx,dx; az eredmény ideiglenes helye

jcxzkesz; ugrás a kesz címkére, ha n=0

xorbx,bx; bx  0, indexezéshez

3. előadás


ism:moval,[si+bx]; független a-tól

imulbyte ptr [di+bx]; független b-től

; csak „byte ptr”-ből derül ki, hogy 8 bites a szorzás

adddx,ax; dx  részösszeg

incbx; bx  bx+1, az index növelése

loopism; ugrás az ism címkére,

; ha kell ismételni

kesz: movax,dx; a skalár szorzat értéke ax-ben

3. előadás


popdx; visszamentések

popcx

popbx

POPDI

POPSI

POPBP

ret; visszatérés a hívó programhoz

skalendp; a skal eljárás vége

; D

. . .

ADDSP,6; paraméterek ürítése a veremből

helyett más megoldás:

RET6; visszatérés a hívó programhoz

; verem ürítéssel: . . . SP = SP + 6

3. előadás


Lokális adat terület, rekurzív és re-entrant eljárások

Ha egy eljárás működéséhez lokális adat területre,

munkaterületre van szükség, és a működés befejeztével a

munkaterület tartalma fölösleges, akkor a munkaterületet

célszerűen a veremben alakíthatjuk ki. A munkaterület

lefoglalásának ajánlott módja:

. . .proc. . .

PUSHBP; BP értékének mentése

MOVBP,SP; BP  SP,

; a stack relatív címzéshez

SUBSP,n; n a munkaterület byte-jainak száma

. . .; további regiszter mentések

3. előadás


Lokális adat terület (NEAR eljárás esetén)

(SS:SP) lokális adat terület . . .

+ 2 . . .

. . .. . .

. . .– 2

bp - - - - - - - - - - - - - - - - - - - - - (SS:BP)

visszatérési cím+ 2

paraméterek. . .

korábbi mentések. . .

A munkaterület negatív displacement érték mellett stack

relatív címzéssel érhető el. (A veremben átadott

paraméterek ugyancsak stack relatív címzéssel, de pozitív

displacement érték mellett érhetők el.)

3. előadás


A munkaterület felszabadítása visszatéréskor a

. . .; visszamentések

MOVSP,BP; a munkaterület felszabadítása

POPBP; BP értékének visszamentése

ret. . .; visszatérés

utasításokkal történhet.

3. előadás


Rekurzív és re-entrant eljárások

Egy eljárás rekurzív, ha önmagát hívja közvetlenül, vagy más eljárásokon keresztül.

Egy eljárás re-entrant, ha többszöri belépést tesz lehetővé, ami azt jelenti, hogy az eljárás még nem fejeződött be, amikor újra felhívható. A rekurzív eljárással szemben a különbség az, hogy a rekurzív eljárásban „programozott”, hogy mikor történik az eljárás újra hívása, re-entrant eljárás esetén az esetleges újra hívás ideje a véletlentől függ. Ez utóbbi esetben azt, hogy a munkaterületek ne keveredjenek össze, az biztosítja, hogy újabb belépés csak másik processzusból képzelhető el, és minden processzus saját vermet használ.

3. előadás


Rekurzív és re-entrant eljárások

Ha egy eljárásunk készítésekor betartjuk, hogy az eljárás a paramétereit a vermen keresztül kapja, kilépéskor visszaállítja a belépéskori regiszter tartalmakat – az esetleg eredményt tartalmazó regiszterek kivételével –, továbbá a fenti módon kialakított munkaterületet használ, akkor az eljárásunk rekurzív is lehet, és a többszöri belépést is lehetővé teszi (re-entrant).

3. előadás


Feladatok

Milyen bemenetei vannak az ALU-nak?

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ő?

Magyarázza el a pulzus generátor működését!

Mi a különbség a tároló és a flip-flop között?

Mi a különbség a SRAM és a DRAM között?

Mi az EPROM?

Mi az EEPROM?

3. előadás


Feladatok

Milyen adat mozgató utasításokat ismer?

Milyen aritmetikai utasításokat ismer?

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?

Milyen paraméter átadási módszereket ismer?

3. előadás


Feladatok

Alakítsa át a skalárszorzat kiszámításának négy változatát, hogy előjeles/előjel nélküli bájt/word vektor elemeit összegezze (számítson arra, hogy az eredmény nem fér el egy bájton/word-ön)!

Készítsen eljárást 2 jegyű előjeles/előjel nélküli szám decimálissá konvertálására és kiírására!

Készítsen eljárást előjeles/előjel nélküli word decimálissá konvertálására és kiírására!

3. előadás


Feladatok

Hogy alakíthatunk ki lokális adat területet?

Mi a rekurzív és a re-entrant eljárás?

Készítsen rekurzív eljárást n! kiszámítására!

Készítsen rekurzív eljárást a és b legnagyobb közös osztójának meghatározására (euklideszi algoritmus)!

3. előadás


  • Login