Add Papers Marked0
Paper checked off!

Marked works

Viewed0

Viewed works

Shopping Cart0
Paper added to shopping cart!

Shopping Cart

Register Now

internet library
Atlants.lv library
FAQ
3,99 € Add to cart
Add to Wish List
Want cheaper?
ID number:873322
 
Author:
Evaluation:
Published: 09.04.2009.
Language: Latvian
Level: College/University
Literature: 3 units
References: Not used
Time period viewed: 2000 - 2010 years
Table of contents
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
Extract

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

Author's comment
Load more similar papers

Atlants

Choose Authorization Method

Email & Password

Email & Password

Wrong e-mail adress or password!
Log In

Forgot your password?

Draugiem.pase
Facebook

Not registered yet?

Register and redeem free papers!

To receive free papers from Atlants.com it is necessary to register. It's quick and will only take a few seconds.

If you have already registered, simply to access the free content.

Cancel Register