-
Datoru organizācija un asambleri
Nr. | Chapter | Page. |
1. | FUNKCIJAS IZSKAITĻOŠANA | 3 |
1.1. | Uzdevuma nostādne un teorētiskais pamatojums | 3 |
1.2. | Programmas pirmteksta fragmenti | 4 |
1.3. | Programmas rezultāti | 4 |
2. | 386. MIKROPROCESORA ARITMĒTIKA | 5 |
2.1. | Uzdevuma nostādne un teorētiskais pamatojums | 5 |
2.2. | Programmas pirmteksta fragmenti | 5 |
2.3. | Programmas rezultāti | 5 |
3. | ATMIŅAS ADRESĒŠANA | 6 |
3.1. | Programmas pirmteksta fragmenti | 7 |
3.2. | Programmas rezultāti | 8 |
3.3. | MATRICAS UN STEKA IZMANTOŠANA | 9 |
4. | Uzdevuma nostādne un teorētiskais pamatojums | 9 |
4.1. | Programmas pirmteksta fragmenti | 9 |
4.2. | Programmas rezultāti | 10 |
5. | APAKŠPROGRAMMAS UN PARAMETRU NODOŠANA | 10 |
5.1. | Uzdevuma nostādne un teorētiskais pamatojums | 10 |
5.2. | Programmas pirmteksta fragmenti | 11 |
5.3. | Programmas rezultāti | 12 |
6. | MAKRODEFINĪCIJAS | 13 |
6.1. | Uzdevuma nostādne un teorētiskais pamatojums | 13 |
6.2. | Programmas pirmteksta fragmenti | 13 |
6.3. | Programmas rezultāti | 14 |
SECINĀJUMI | 15 | |
LITERATŪRA | 16 |
Uzdevuma nostādne un teorētiskais pamatojums
Izskaitļot funkcijas ar trim parametriem (X, Y, Z) rezultātu.
A = -2XZ - 4Y;
B = XY2 - Z3;
C = XY - Z + 1.
Ja A > 0, tad F(X,Y,Z) = A / B
Ja A < 0, tad F(X,Y,Z) = A / C
Ja A = 0, tad F(X,Y,Z) = 0
Lai veiktu aritmētiskās operācijas, tiks izmantotas sekojošas asamblera instrukcijas:
Mov – reģistrā vai atmiņas apgabalā iesūta citu reģistru vai konstanti
Add – reģistram Ax pieskaita citu reģistru vai konstanti, rezultāts tiek glabāts reģistrā Ax
Sub – no reģistra Ax atņem citu reģistru vai konstanti, rezultāts tiek glabāts reģistrā Ax
Imul – reģistra Ax vērtības reizinājums ar citu reģistru, atmiņas apgabalu vai konstanti, rezultāts
tiek glabāts reģistrā Ax
Idiv – reģistra Ax vērtības dalījums ar citu reģistru, atmiņas apgabalu vai konstanti, rezultāts tiek
glabāts reģistrā Ax
Dec – reģistra vai atmiņas apgabala vērtība tiek samazināta par 1
Inc – reģistra vai atmiņas apgabala vērtība tiek palielināta par 1
Neg – reģistra vērtības pareizināšana ar -1
Cbw – reģistra Al izmēru pārveido no vārda uz baitu, rezultāts tiek saglabāts reģistrā Ax
Cwd – reģistra Ax izmēru pārveido no vārda uz dubultvārdu, rezultāts tiek saglabāts reģistrā Ax
Jmp – norāda atmiņas apgabalu, kur atrodas nākamā komanda, kuru jāizpilda
Jg – ja reģistra vērtība ir lielāka par 0, tad pāriet uz atmiņas apgabalu, kur atrodas nākamā
komanda, kuru jāizpilda
Je – ja reģistra vērtība ir vienāda ar 0, tad pāriet uz atmiņas apgabalu, kur atrodas nākamā
komanda, kuru jāizpilda
Jl – ja reģistra vērtība ir mazāka par 0, tad pāriet uz atmiņas apgabalu, kur atrodas nākamā
komanda, kuru jāizpilda
Jn – ja reģistra vērtība nav vienāda ar 0, tad pāriet uz atmiņas apgabalu, kur atrodas nākamā
komanda, kuru jāizpilda
Jz – ja reģistra vērtība ir 0, tad pāriet uz atmiņas apgabalu, kur atrodas nākamā komanda, kuru
jāizpilda
Jge – ja reģistra vērtība ir lielāka par 0 vai vienāda ar 0, tad pāriet uz atmiņas apgabalu, kur atrodas
nākamā komanda, kuru jāizpilda
Jle – ja reģistra vērtība ir mazāka par 0 vai vienāda ar 0, tad pāriet uz atmiņas apgablu, kur atrodas
nākamā komanda, kuru jāizpilda
Jnz – ja reģistra vērtība nav vienāda ar 0, tad pāriet uz atmiņas apgabalu, kur atrodas nākamā
komanda, kuru jāizpilda
Xchg – veic vērtību apmaiņu starp diviem reģistriem.
12. variants.
Atrast minimālu pozitīvu elementu. Ja pozitīvu elementu nav, rezultāts -1.
Adresēšanas veidu neliels apskats:
* indeksa adresēšana – šis adresēšanas veids ir ļoti līdzīgs masīvu elementu adresēšanai augstāka
līmeņa programmēšanas valodās, piemēram, C/C++. Galvenā atšķirība ir tāda, ka valodās C un C++
indekss norāda uz masīva elementa numuru, bet valodā Assembler – uz elementa nobīdi no
masīva sākuma. Tas nozīmē, ka, pārejot uz nākamo masīva elementu, indekss palielinās par masīva
elementa izmēru, nevis par konstanti „1”, kā tas ir C/C++. Līdzīgi tas, ka abās minētajās valodās
pirmais elements ir ar indeksu 0.
6
* bāzes adresēšana – izmantojot šo adresēšanas veidu, no sākuma kādā no reģistriem
(piemēram, Bx) ielādē atmiņas adresi, kas atbilst masīva sākumam jeb pirmajam elementam. To
dara, izmantojot komandu „lea” (load effective adress). Savukārt, lai iegūtu masīva elementu,
izmanto komandu „mov”, kurai kā parametrus norāda reģistru, kurā ierakstīt masīva elementu, un
attiecīgā elementa adresi, kas iepriekš saglabāta, piemēram, reģistrā Bx.
* indeksa adresēšana ar mērogošanu – adresēšana notiek ļoti līdzīgi kā ar vienkāršu indeksa
adresēšanu. Atšķirība tāda, ka, izmantojot indeksa adresēšanu, pārejot pie nākamā masīva
elementa, indeksa vērtība jāpalielina par elementa izmēru, bet, izmantojot indeksa adresēšanu ar
mērogošanu, indekss jāpalielina par 1, taču pie elementa iegūšanas indekss tiek pareizināts ar
masīva elementa izmēru, tādējādi iegūstot elementa nobīdi no masīva sākuma.…
Studiju darbs datoru organizācijā un asambleros pie prof. Rusakova, 2008. gadā.
-
Datoru noziedznieka personības raksturojums
Research Papers10 Computers, Consumer Electronics, Psychology, Law
- Datoru organizācija un asambleri
- Dokumentu organizācija un apstrāde ar valodas XML palīdzību
-
You can quickly add any paper to your favourite. Cool!Dokumentu organizācija un apstrāde ar valodas XML palīdzību
Research Papers for university60
Evaluated! -
Datoru noziedznieka personības raksturojums
Research Papers for university10
-
Datoru vēsture un biežāk izmantotās programmas
Research Papers for university64
-
Datoru izplatītājfirmas Latvijā
Research Papers for university17
-
Lursoft IT mārketinga vides un stratēģijas analīze un darbības plānošana
Research Papers for university36
Evaluated!