riistvarapõhine programmeerimine loeng 3 arvuti programmeerija pilguga mälu korradus
TRANSCRIPT
![Page 1: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/1.jpg)
Riistvarapõhine programmeerimine
Loeng 3
Arvuti programmeerija
pilguga
Mälu korradus
![Page 2: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/2.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
2
Arvuti programmeerija pilguga
Registrid
Mälu korraldus
Käsustik
![Page 3: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/3.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
3
Registrid
Üldregistrid
Segmendiregistrid
Eriregistrid
![Page 4: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/4.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
4
Üldregistrid I
![Page 5: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/5.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
5
Üldregistrid II
Ax accumulator
Bx base register
Cx count register
Dx data register
![Page 6: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/6.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
6
Üldregistrid III
Si source index
Di destination index
Bp base pointer
Sp stack pointer
![Page 7: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/7.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
7
Segmendiregistrid
Cs code segment
Ds data segment
Ss stack segment
Es extra segment
![Page 8: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/8.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
8
Eriregistrid
IP instruction pointer
Flags register
![Page 9: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/9.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
9
Mälu korraldus
Segmendid
Adresseerimisviisid
Intel 8086 adresseerimine
![Page 10: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/10.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
10
Füüsiline segment
![Page 11: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/11.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
11
Loogiline segment
Andmete segment (Data segment)
Koodi segment (Code segment)
Pinu segment (Stack segment)
Lisasegment (Extra segment)
![Page 12: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/12.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
12
Mälu adresseerimisviisid
Otseadresseerimine
Vahetu adresseerimine
Kaudne adresseerimine
![Page 13: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/13.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
13
Otseadresseerimine I
Op. Code Effective address
Direct Mode
![Page 14: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/14.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
14
Otseadresseerimine II
Effektiivaadress on registris Kasutatakse kui aadress on muutuja
Op. Code Register
Register direct Mode
Effective aaddressRegister
![Page 15: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/15.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
15
Otseadresseerimine III
Op. Code
Base displacement Mode
aaddressRegister
Register Constant
Effective aaddress
+
![Page 16: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/16.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
16
Otseadresseerimine IV
Op. Code
Base displacement Mode
aaddressRegister
Register Register
Effective aaddress
+
aaddressRegister
![Page 17: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/17.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
17
Vahetu adresseerimine I
Op. Code Constant
Immidiate Mode
![Page 18: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/18.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
18
Vahetu adresseerimine II
Op. Code Register
Register addressing Mode
OperandRegister
![Page 19: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/19.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
19
Kaudne adresseerimine I
Op. Code AddressMain memory
Effective addressIndirect addressing
mode
![Page 20: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/20.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
20
Kaud adresseerimine II
Op. Code AddressMain memory
Effective addressRegister indirect
addressing mode
aaddressRegister
![Page 21: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/21.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
21
Käsuloenduriga adresseerimine
aaddressPCOp. Code Offset
PC relative addressing Mode
Effective aaddress
+
![Page 22: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/22.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
22
Intel 8086 mälu adresseerimisviisid
Register
Immediate
Direct memory
Indirect memory
![Page 23: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/23.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
23
Register Operands I
8- või 16-bit protsessori register
Andmed asuvad registris
Ei nõua mälupöördumist
![Page 24: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/24.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
24
Register Operands IIMov bx, 10 ; Load constant to BXAdd ax, bx ; Add BX to AXJmp di ; Jump to the address in DI
Mov [bx], dl ; Store DL in indirect memory operand
inc bx ; Increment register operandMov [bx], dl ; Store DL in new indirect memory
operand
![Page 25: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/25.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
25
Immediate Operands I
Operandi väärtus on käsukoodis
Operand on const
Määratakse kompileerimise ajal
Lubatud avaldis
Ei nõua mälupöördumist
![Page 26: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/26.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
26
Immediate Operands II
Mov cx, 20 ; Load constant to register
Add var, 1Fh ; Add hex constant to variable
Sub bx, 25 * 80 ; Subtract constant expression
![Page 27: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/27.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
27
Immediate Operands III
OFFSET Operator
Mov bx, OFFSET var ; Load offset address
SEG Operator
Mov ax, SEG farvar ; Load segment address
Mov es, ax
![Page 28: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/28.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
28
Direct Memory Operands I
Fikseeritud asukoht mälus Aadress on käsukoodis Tuleb defineerida operandi suurus Lubatud avaldis Nõuab mälupöördumist
![Page 29: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/29.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
29
Direct Memory Operands II
.DATA ; Segment for uninitialized datavar BYTE ? ; Reserve one byte, labeled
"var“
.CODE . . .
Mov var, al ; Copy AL to byte at var
![Page 30: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/30.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
30
Direct Memory Operands III
[ ] = “+”
Mov ax, array[2] ; [ ] = “+”Mov ax, array+2 Mov ax, array[-2] ; lubatud “-”Mov ax, array-2 Mov ax, var ; [ ] või ilmaMov ax, [var]
![Page 31: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/31.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
31
Direct Memory Operands IV
![Page 32: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/32.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
32
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
![Page 33: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/33.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
33
Indirect Memory Operands II
Mov ax, WORD [bx]
Mov ax, [bx+si]
Mov ax, table[si]
![Page 34: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/34.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
34
Indirect Memory Operands III
table WORD 100 DUP (0) ; õige
.
.
.
Mov ax, table[bx][di]+6
Mov ax, mem1[si] + mem2 ; vale
![Page 35: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/35.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
35
Indirect Memory Operands IV
Mov ax, table[bx][di]
Mov ax, table[di][bx]
Mov ax, table[bx+di]
Mov ax, [table+bx+di]
Mov ax, [bx][di]+table
![Page 36: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/36.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
36
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
![Page 37: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/37.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
37
Indirect Memory Operands VI
![Page 38: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/38.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
38
Indirect Memory Operands VII
![Page 39: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/39.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
39
Indirect Memory Operands VIII
![Page 40: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/40.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
40
Indirect Memory Operands IX
![Page 41: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/41.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
41
Indirect Memory Operands X
![Page 42: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/42.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
42
Indirect Memory Operands XI
![Page 43: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/43.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
43
Indirect Memory Operands XII
![Page 44: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/44.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
44
Indirect Memory Operands XIII
![Page 45: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/45.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
45
Indirect Memory Operands XIV
[Bx] [Si]
disp [Bp] [Di]
![Page 46: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/46.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
46
Kokkuvõtte I
Programmeerijale tähtis:
Registrid
Mälukorraldus
Käsustik
![Page 47: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/47.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
47
Kokkuvõtte II
Registrid:
Üldregistrid
Segmendiregistrid
Eriregistrid
![Page 48: Riistvarapõhine programmeerimine Loeng 3 Arvuti programmeerija pilguga Mälu korradus](https://reader031.vdocuments.net/reader031/viewer/2022033012/56649cf95503460f949ca5f4/html5/thumbnails/48.jpg)
12/07/2005 ID218 Riistvaralähedane programmeerimine
48
Kokkuvõtte III
Mälukorraldus:
Vahetu adresseerimine
Otsene adresseerimine
Kaudne adresseerimine