Presentation is loading. Please wait.

Presentation is loading. Please wait.

Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus.

Similar presentations


Presentation on theme: "Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus."— Presentation transcript:

1

2 Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus

3 12/07/2005 ID218 Riistvaralähedane programmeerimine2 Arvuti programmeerija pilguga Registrid Mälu korraldus Käsustik

4 12/07/2005 ID218 Riistvaralähedane programmeerimine3 Registrid Üldregistrid Segmendiregistrid Eriregistrid

5 12/07/2005 ID218 Riistvaralähedane programmeerimine4 Üldregistrid I

6 12/07/2005 ID218 Riistvaralähedane programmeerimine5 Üldregistrid II Axaccumulator Bxbase register Cxcount register Dxdata register

7 12/07/2005 ID218 Riistvaralähedane programmeerimine6 Üldregistrid III Sisource index Didestination index Bpbase pointer Spstack pointer

8 12/07/2005 ID218 Riistvaralähedane programmeerimine7 Segmendiregistrid Cscode segment Dsdata segment Ssstack segment Esextra segment

9 12/07/2005 ID218 Riistvaralähedane programmeerimine8 Eriregistrid IPinstruction pointer Flags register

10 12/07/2005 ID218 Riistvaralähedane programmeerimine9 Mälu korraldus Segmendid Adresseerimisviisid Intel 8086 adresseerimine

11 12/07/2005 ID218 Riistvaralähedane programmeerimine10 Füüsiline segment

12 12/07/2005 ID218 Riistvaralähedane programmeerimine11 Loogiline segment Andmete segment (Data segment) Koodi segment (Code segment) Pinu segment (Stack segment) Lisasegment (Extra segment)

13 12/07/2005 ID218 Riistvaralähedane programmeerimine12 Mälu adresseerimisviisid Otseadresseerimine Vahetu adresseerimine Kaudne adresseerimine

14 12/07/2005 ID218 Riistvaralähedane programmeerimine13 Otseadresseerimine I Op. Code Effective address Direct Mode

15 12/07/2005 ID218 Riistvaralähedane programmeerimine14 Otseadresseerimine II Effektiivaadress on registris Kasutatakse kui aadress on muutuja Op. Code Register Register direct Mode Effective aaddressRegister

16 12/07/2005 ID218 Riistvaralähedane programmeerimine15 Otseadresseerimine III Op. Code Base displacement Mode aaddressRegister Constant Effective aaddress +

17 12/07/2005 ID218 Riistvaralähedane programmeerimine16 Otseadresseerimine IV Op. Code Base displacement Mode aaddressRegister Effective aaddress + aaddressRegister

18 12/07/2005 ID218 Riistvaralähedane programmeerimine17 Vahetu adresseerimine I Op. Code Constant Immidiate Mode

19 12/07/2005 ID218 Riistvaralähedane programmeerimine18 Vahetu adresseerimine II Op. Code Register Register addressing Mode OperandRegister

20 12/07/2005 ID218 Riistvaralähedane programmeerimine19 Kaudne adresseerimine I Op. CodeAddress Main memory Effective address Indirect addressing mode

21 12/07/2005 ID218 Riistvaralähedane programmeerimine20 Kaud adresseerimine II Op. CodeAddress Main memory Effective address Register indirect addressing mode aaddressRegister

22 12/07/2005 ID218 Riistvaralähedane programmeerimine21 Käsuloenduriga adresseerimine aaddressPC Op. Code Offset PC relative addressing Mode Effective aaddress +

23 12/07/2005 ID218 Riistvaralähedane programmeerimine22 Intel 8086 mälu adresseerimisviisid Register Immediate Direct memory Indirect memory

24 12/07/2005 ID218 Riistvaralähedane programmeerimine23 Register Operands I 8- või 16-bit protsessori register Andmed asuvad registris Ei nõua mälupöördumist

25 12/07/2005 ID218 Riistvaralähedane programmeerimine24 Register Operands II Movbx, 10; Load constant to BX Addax, bx; Add BX to AX Jmpdi; Jump to the address in DI Mov[bx], dl; Store DL in indirect memory operand inc bx; Increment register operand Mov[bx], dl; Store DL in new indirect memory operand

26 12/07/2005 ID218 Riistvaralähedane programmeerimine25 Immediate Operands I Operandi väärtus on käsukoodis Operand on const Määratakse kompileerimise ajal Lubatud avaldis Ei nõua mälupöördumist

27 12/07/2005 ID218 Riistvaralähedane programmeerimine26 Immediate Operands II Movcx, 20; Load constant to register Addvar, 1Fh; Add hex constant to variable Subbx, 25 * 80; Subtract constant expression

28 12/07/2005 ID218 Riistvaralähedane programmeerimine27 Immediate Operands III OFFSET Operator Movbx, OFFSET var; Load offset address SEG Operator Movax, SEG farvar; Load segment address Moves, ax

29 12/07/2005 ID218 Riistvaralähedane programmeerimine28 Direct Memory Operands I Fikseeritud asukoht mälus Aadress on käsukoodis Tuleb defineerida operandi suurus Lubatud avaldis Nõuab mälupöördumist

30 12/07/2005 ID218 Riistvaralähedane programmeerimine29 Direct Memory Operands II.DATA; Segment for uninitialized data varBYTE?; Reserve one byte, labeled "var“.CODE... Movvar, al; Copy AL to byte at var

31 12/07/2005 ID218 Riistvaralähedane programmeerimine30 Direct Memory Operands III [ ] = “+” Movax, array[2]; [ ] = “+” Movax, array+2 Movax, array[-2]; lubatud “-” Movax, array-2 Movax, var; [ ] või ilma Movax, [var]

32 12/07/2005 ID218 Riistvaralähedane programmeerimine31 Direct Memory Operands IV

33 12/07/2005 ID218 Riistvaralähedane programmeerimine32 Indirect Memory Operands I Arvutakse programmi täitmise käigus Arvutamiseks kasutatakse registreid Tuleb defineerida operandi suurus Võimaldab dünaamilist ligipääsu Lubatud avaldis

34 12/07/2005 ID218 Riistvaralähedane programmeerimine33 Indirect Memory Operands II Movax, WORD [bx] Movax, [bx+si] Movax, table[si]

35 12/07/2005 ID218 Riistvaralähedane programmeerimine34 Indirect Memory Operands III tableWORD100 DUP (0); õige. Movax, table[bx][di]+6 Movax, mem1[si] + mem2; vale

36 12/07/2005 ID218 Riistvaralähedane programmeerimine35 Indirect Memory Operands IV Movax, table[bx][di] Movax, table[di][bx] Movax, table[bx+di] Movax, [table+bx+di] Movax, [bx][di]+table

37 12/07/2005 ID218 Riistvaralähedane programmeerimine36 Indirect Memory Operands V Base addressing mode – bx, bp Indexed addressing mode – si, di Base – reg:address, const:offset Index – reg:offset, const:address BP - > SS

38 12/07/2005 ID218 Riistvaralähedane programmeerimine37 Indirect Memory Operands VI

39 12/07/2005 ID218 Riistvaralähedane programmeerimine38 Indirect Memory Operands VII

40 12/07/2005 ID218 Riistvaralähedane programmeerimine39 Indirect Memory Operands VIII

41 12/07/2005 ID218 Riistvaralähedane programmeerimine40 Indirect Memory Operands IX

42 12/07/2005 ID218 Riistvaralähedane programmeerimine41 Indirect Memory Operands X

43 12/07/2005 ID218 Riistvaralähedane programmeerimine42 Indirect Memory Operands XI

44 12/07/2005 ID218 Riistvaralähedane programmeerimine43 Indirect Memory Operands XII

45 12/07/2005 ID218 Riistvaralähedane programmeerimine44 Indirect Memory Operands XIII

46 12/07/2005 ID218 Riistvaralähedane programmeerimine45 Indirect Memory Operands XIV [Bx] [Si] disp [Bp] [Di]

47 12/07/2005 ID218 Riistvaralähedane programmeerimine46 Kokkuvõtte I Programmeerijale tähtis: Registrid Mälukorraldus Käsustik

48 12/07/2005 ID218 Riistvaralähedane programmeerimine47 Kokkuvõtte II Registrid: Üldregistrid Segmendiregistrid Eriregistrid

49 12/07/2005 ID218 Riistvaralähedane programmeerimine48 Kokkuvõtte III Mälukorraldus: Vahetu adresseerimine Otsene adresseerimine Kaudne adresseerimine


Download ppt "Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus."

Similar presentations


Ads by Google