Za razliku od strojnog jezika gdje je sve u binarnome obliku, u asemblerskome jeziku binarni kod zamjenjen je naredbom u obliku od 2 do 5 slova. Naredba u asemblerskome jeziku još se naziva opcode (skraćeno od operation code). Uz opcode postoji i adresa na kojoj se taj opcode izvršava te asemblerske direktive - varijable i komentari
evo i primjera:
adresa opcode naredba,varijable direktiva
000045a8 mov eax,[ecx] [232]
Sada ću objašnjavati najvažnije naredbe.
Započet ćemo od MOV koja se najčešće koristi. MOV a,b bi značilo kopiraj odnosno copy b u a
Primjena: MOV eax,[ebx] -->bi značilo kopiraj vrijednost od ebx u eax
MOV eax,A -->bi značilo kopiraj 10 u eax, primjetimo kako su valute u hex. obliku
MOV eax,ebx -->bi značilo kopiraj adresu od ebx u eax
MOV [eax],[ebx] -->se ne može napraviti jer računalo nezna u koju bi adresu stavilo vrijednost ebx, inače se 1 ili 2 primjer koristi kako bi izmjenili neku vrijednost
CMP je funkcija koja komparira 2 varijable, 2 iznosa
CMP eax,ebx
CMP eax,ebx
JMP je važna komanda jer ona označuje prijelaz u neki drugi dio koda, JMP komanda postoji u mnogo varijanti, najvažnije su:
JMP uvijek skače
JE skoči ako je jednako i JNE skoči ako prethodna funkcija nije jednaka
JMP uvijek skače
JE skoči ako je jednako i JNE skoči ako prethodna funkcija nije jednaka
JA skoči ako je veće i JNA skoči ako nije veće
JB skoči ako je manje i JBE skoči ako nije manje
JB skoči ako je manje i JBE skoči ako nije manje
Kalkulacije:
inc eax -->dodaje vrijednost eax 1
inc eax -->dodaje vrijednost eax 1
add eax,2 -->dodaje vrijednosti sadržanoj u eax 2
dec eax -->oduzima vrijednost eax 1
sub eax,2 -->oduzima vrijednost sadržanoj u eax 2
sub eax,2 -->oduzima vrijednost sadržanoj u eax 2
NOP -->znači no operation odnosno kada želimo neku naredbu ukloniti ne možemo je jednostavno maknuti nego moramo na njezino mjesto upisati NOP, ako je naredba u više redova toliko redova koliko mičemo moramo napisati NOP
and eax,ecx -->eax I ecx, sjetite se logičkih operacija
or eax,ecx -->eax ILI ecx
xor eax,ecx -->negacija (eax I ecx)
and eax,ecx -->eax I ecx, sjetite se logičkih operacija
or eax,ecx -->eax ILI ecx
xor eax,ecx -->negacija (eax I ecx)
To bi bile najvažnije naredbe, naprednije narebe možete vidjeti ovdje: (na engleskom)
http://www.laynetworks.com/assembly%20tutorials3.htm
http://www.laynetworks.com/assembly%20tutorials3.htm
Nema komentara:
Objavi komentar