Pievienot darbus Atzīmētie0
Darbs ir veiksmīgi atzīmēts!

Atzīmētie darbi

Skatītie0

Skatītie darbi

Grozs0
Darbs ir sekmīgi pievienots grozam!

Grozs

Reģistrēties

interneta bibliotēka
Atlants.lv bibliotēka
3,99 € Ielikt grozā
Gribi lētāk?
Identifikators:873322
 
Autors:
Vērtējums:
Publicēts: 09.04.2009.
Valoda: Latviešu
Līmenis: Augstskolas
Literatūras saraksts: 3 vienības
Atsauces: Nav
Laikposms: 2000. - 2010. g.
SatursAizvērt
Nr. Sadaļas nosaukums  Lpp.
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
Darba fragmentsAizvērt

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

Autora komentārsAtvērt
Parādīt vairāk līdzīgos ...

Atlants

Izvēlies autorizēšanās veidu

E-pasts + parole

E-pasts + parole

Norādīta nepareiza e-pasta adrese vai parole!
Ienākt

Aizmirsi paroli?

Draugiem.pase
Facebook

Neesi reģistrējies?

Reģistrējies un saņem bez maksas!

Lai saņemtu bezmaksas darbus no Atlants.lv, ir nepieciešams reģistrēties. Tas ir vienkārši un aizņems vien dažas sekundes.

Ja Tu jau esi reģistrējies, vari vienkārši un varēsi saņemt bezmaksas darbus.

Atcelt Reģistrēties