190 likes | 328 Views
Načela programiranja u asemblerskom jeziku. Svaki procesor ima svoj vlastiti skup instrukcija koji razumije. Instrukcija se sastoji od : -operacijskog koda (koji kaže koju operaciju treba izvršiti)
E N D
Svaki procesor ima svoj vlastiti skup instrukcija koji razumije. Instrukcija se sastoji od : -operacijskog koda (koji kaže koju operaciju treba izvršiti) -polje načina adresiranja i adresnog dijela (koji kaže gdje se nalaze operandi i gdje smjestiti rezulat)
Operacijski kod dobiva svoju slovčanu kraticu koja podsjeća na djelovanje instrukcije a adrese operanada i rezultata dobivaju svoja simbolička imena. • Tako su najčešći mnemonici za ar. log. instrukcije:
ADD zbrojiti (od englekog add — zbrojiti); • SUB oduzeti (od engleskog subtract — oduzeti); • MUL pomnožiti (od engleskog multiply — pomnožiti) • DIV podijeliti (od engleskog divide — podijeliti) • DEC smanjiti za jedan (od engleskog decrement — smanjiti) • INC povećati za jedna (od engleskog inerement — povećati)
S obzirom da je vrlo često potrebno premještati podatke iz pojedinih registara procesora u spremnik i obrnuto ili jednog registra u drugi, često se koristi instrukcija za premještanje s mnemonikom MOV premjestiti (od engleskog move — pomaknuti).
Uz taj mnemonik uvijek se moraju napisati dvije adrese: 1. adresa ishodišta, tj. adresa odakle dolazi podatak, koju pišemo kao <src>, 2.adresa odredišta, tj. adresa kamo se podatak premješta, koju pišemo kao <dest> • Tako se općenito piše: MOV <dest> <src> (premjesti sadržaj sa druge adrese na prvu)
Program napisan u asembleru prevodi se u strojni jezik i to radi program već ugrađen u asembler. • Programiranje u asembleru je i dalje teško pa su nastali viši programski jezici gdje više naredbi asemblera je zamijenjeno jednom naredbom višeg programskog jezika pa su ti programi kraći i razumljiviji. • Međutim i njih treba prevesti u strojni oblik prije izvođenja. To rade posebni programi za prevođenje- kompajleri.
Primjer 1. ADD X,Y znači zbroji X+Y i rezultat spremi u x • Primjer 2. • Treba izračunati izraz X+Y/Z i rezultat staviti u A. X, Y I Z su neke varijable spremljene na adresama čiji su mnemonički simboli X, Y I Z.
MOV A,Y -stavljamo u ak. A varijablu Y DIV A,Z -dijelimo sadržaj A sa Z, rez.u A tj.(A)(A/Z) ADD A,X -zbrajamo sadržaj ak. sa X
Primjer 3. Izračunati X+(Y*Z-V/W). Rezultat spremiti na neku adresu C.
MOV A,V DIV A / W MOV C,A MOV A,Y MUL A,Z SUB A,C ADD A,X MOV C,A
Instrukcije ponekad mogu biti jednoadresne. Tada se jedan operand stavlja u akumulator. Pri tome se operacija obavlja između sadržaja akumulatora i drugog operanda a rezultat ponovo ide u akumulator. Pri tome koristimo naredbu za stavljanje podatka u akumulator LOAD a za spremanje sadr. ak. na neku drugu adresu STORE.
Primjer: 1.X+Y/Z 2. C=X+(Y*Z-V/W)
1. LOAD Y DIV Z ADD X STORE C
2. LOAD V DIV W STORE C LOAD Y MUL Z SUB C ADD X STORE C