You are on page 1of 7

Sabira sadraj Ax i zadate vrednosti i rezultat smeta u Ax,a prekoraenje

ADD
u CF.(npr. ADD AX,registar)
MOV Premeta vrednost izvora na odredite.(MOV odredite,izvor)
PUSH Upisuje zadatu vrednost na vrh steka.(npr. PUSH AX)
Vraa sadraj sa vrha steka u registar tj. mem. lok. po principu LIFO.(npr.
POP
POP Ax)
Razmenjuje sadraj dva registra ,registra ili mem. lok.Ne smeju se
XCHG razmenjivati sadraji dva segmentna registra.(npr. XCHG Ax,Bx)
XLAT Upisuje u AL sabranu vrednost registra Bx i AL.
IN Prenos podataka iz ulaznog porta u Ax registar.(npr. IN AL,80)
OUT Prenos podataka iz Ax registra na izlazni port.(npr. OUT 20,AL)
LEA Vri prenos adrese mem. lok. u naznaeni registar.(npr. LEA Ax,[2000])
ita 32 bitnu re iz memorije i 16 niih bita puni u navedeni registar, a 16
LDS viih bita puni u registar DS.(npr. LDS Ax, [0006])
ita 32 bitnu re iz memorije i 16 niih bita puni u navedeni registar, a 16
LES
viih bita puni u registar ES.(npr. LDS Ax, [0006])
LAHF Kopira fleg registar u AH.
SAHF Kopira AH u fleg registar.
PUSHF Prenos sadraja fleg registra na stek.
POPF Vraa sadraj fleg registra sa steka.
ADC Zbiru dva operanda dodaje CF.
INC Inkrementiranje(sabiranje) sa 1.
DEC Dekrementiranje(oduzimanje) sa 1.
Oduzimanje,koje se vri preko sabiranja tako to pravi komplement
SUB
umanjioca.Ako se oduzima vei broj od manjeg,aktivira se CF(Borrow).
NEG Dobija se drugi komplement broja.
Omoguava poreenje.Ima dva operanda koji se porede.Nakon ove
CMP instrukcije se uvek izvrava neka instr. uslovnog skoka.
Koristi se u BCD aritmetici kada pri sabiranju doe do prelaza sa cifara
DAA jedinica na cifru desetica.Ova instrukcija je bez argumenata i primenjuje
se na vrednost u AL.Zadaje se posle aritmetike operacije.(ADJUST)
DAS Kao i DAA, samo za oduzimanje.
AAA Koristi se u BCD aritmetici kada pri sabiranju doe do prelaza sa cifara
jedinica na cifru desetica.Ova instrukcija je bez argumenata i primenjuje
se na vrednost u Ax. Zadaje se posle aritmetike operacije. (ADJUST)
AAS Kao i AAA, samo za oduzimanje.
MUL Mnoi zadate vrednosti, a rezultat mnoenja se smeta u Ax.
DIV Deli zadate vrednosti, a rezultat deljenja se smeta u Ax.
Koristi se u BCD aritmetici pre izvrenja aritmetike operacije. Prevodi
AAD BCD broj u takav oblik da se po izvrenju operacije dobije opet ispravan
BCD broj.
Obavlja konverziju iz bajta u re. Ulazni podatak uzima iz AL, a izlaz smeta
CBW u Ax.
Obavljanje konjukcije nad argumentima.Poredi svaki bit prvog argumenta
AND sa odreenim bitom drugog argumenta.(Rezultat je 1 samo u sluaju da
oba bita imaju vrednost 1!).
Obavljanje disjunkcije nad argumentima.Poredi svaki bit prvog argumenta
OR sa odreenim bitom drugog argumenta.(Rezultat je 1 u sluaju da bar
jedan od bita ima vrednost 1!).
Obavljanje ekskluzivne disjunkcije nad argumentima.Poredi svaki bit
XOR prvog argumenta sa odreenim bitom drugog argumenta.(Rezultat je 1
samo u sluaju da jedan od bita ima vrednost 1!).
Unarna operacija, obavlja se nad samo jednim operandom.(Negira svaki
NOT
bit u argumentu tj. ako ima vrednost 1, dobie vrednost 0 i obrnuto!)
Proverava vrednost odreenog bita u zadatom argumentu, dok pri tome
ne menja sadraj registra ili mem. lok. u kojoj se on nalazi.Ukoliko je
TEST vrednost bita 0, ZF se postavlja na 1 i obrnuto.Obino se koristi pre
uslovnog skoka.(npr. TEST DL,6; proverava esti bit u DL.)
Ova instrukcija sadri dva argumenta.Prvi argument je vrednost koju treba
"iftovati u levo", a drugi argument je br. 1 ili reg. CL koji sadri podatak o
SHL zahtevanom broju pomeranja.Pomeranje u levo je ekvivalent mnoenju sa
2.Prilikom pomeranja najnii bit dobija vrednost 0, a najvii bit odlazi u CF.
Isto kao i SHL, samo to SAL odgovara predznaenom mnoenju sa
SAL 2.Prilikom aritmetikog pomeranja u levo u najnii bit se kopira ista
vrednost koja je bila pre "iftovanja", a najvii bit ide u CF.
Ista je sintaksa kao kod pomeranja u levo.Pomeranje u desno je ekvivalent
SHR deljenju sa 2.Prilikom pomeranja najnii bit odlazi u CF, a najvii bit dobija
vrednost 0.
Rotiranje u levo koje se obavlja tako to se vrednost najvieg bita smeta
ROL
u CF, i istovremeno se upisuje u vrednost najnieg bita.
Rotiranje u levo koje se obavlja tako to se u najnii bit upisuje vrednost
RCL zateena u CF, a vrednost najvieg bita se premeta u CF
Rotiranje u desno koje se obavlja tako to se vrednost najnieg bita
ROR smeta u CF, i istovremeno se upisuje u vrednost najvieg bita.
Rotiranje u desno koje se obavlja tako to se u najvii bit upisuje vrednost
RCR
zateena u CF, a vrednost najnieg bita se premeta u CF
Predstavlja instrukciju bezuslovnog skoka.Ima jedan argument koji
predstavlja adresu na koju e se izvriti skok.Ova instrukcija ima 6 oblika:
JMP JMP SHORT(kratki skok u rasponu -128:127 bajta),JMP NEAR(skok na
lokacije istog segmenta),JMP FAR(skok van tekueg segmenta),JMP
16bitni reg.,JMP 16bitna mem.lok.,JMP 32bitna mem.lok.
Instr. za pozivanje podprograma iji argument sadri adresu
CALL
podprograma.
RET Instr. za bliski povratak iz podprograma.
RETF Instr. za povratak iz dalekog podprograma
ESC alje signal na magistralu podataka da bi je iskoristio drugi procesor.
WAIT eka do pojave TEST signala
Prefiks naredba koja zabranjuje pristup magistrali podataka drugim
LOCK procesorima dok se ne izvri naredna instrukcija.
HLT eka dok ne doe interapt i onda nastavlja sa radom.
NOP Ne radi nita, tj. preskae liniju naredbe.
Naredba INT n poziva odgovarajuu rutinu ija se izvrna adresa nalazi na
INT adresi n*4.(adresi svake interapt rutine odgovara grupa od 4 bajta).Moe
se pozvati i hardverski.
Automatski se izvri pri deljenju sa nulom,ispie 'Divide overflow' i prekine
INT0
rad programa.
INT1 Izvrava se posle svake instrukcije ako je ukljuen TF(trap fleg).
INT2 Nemaskirani interapt koji se ne moe iskljuiti.
Koristi se kao prekidna taka u DEBUG-u,jer je dugaak samo 1 bajt(ostali
INT3 po 2 bajta).
INT4 Automatski se izvri ako doe do prekoraenja opsega raunanja.
IRET Povratak iz interapt rutine.
Prefiks koji se pie ispred bloka instrukcija,ukoliko elimo da se blok
REP instrukcija ponovi.Instrukcija iza ovog prefiksa e se ponavljati dok Cx ne
bude 0(Cx=0).
Prefiks koji se pie ispred bloka instrukcija,ukoliko elimo da se blok
REPE instrukcija ponovi.Instrukcija iza ovog prefiksa e se ponavljati dok Cx ne
bude 0 ili ZF ne bude nula(Cx=0 ili ZF=0).
Prefiks koji se pie ispred bloka instrukcija,ukoliko elimo da se blok
REPNE instrukcija ponovi.Instrukcija iza ovog prefiksa e se ponavljati dok Cx ne
bude 0 ili ZF ne bude 1(Cx=0 ili ZF=1).
Koristi se za prebacivanje bajtova.Prebacivanje se vri iz elementa na koji
pokazuje SI (source index), u element na koji pokazuje DI(destination
MOVSB index).Ako je DF=1 umanjuje SI i DI za 1,i obrnuto.U oba sluaja Cx se
umanjuje za 1.
Koristi se za prebacivanje rei.Prebacivanje se vri iz elementa na koji
pokazuje SI (source index), u element na koji pokazuje DI(destination
MOVSW
index).Ako je DF=1 umanjuje SI i DI za 1,i obrnuto.U oba sluaja Cx se
umanjuje za 1.
Meusobno poreenje bajtova.Na prvi argument pokazuje SI registar, a
CMPSB na drugi argument pokazuje DI registar.
Meusobno poreenje rei.Na prvi argument pokazuje SI registar, a na
CMPSW
drugi argument pokazuje DI registar.
Omoguuje poreenje akumulatora sa elementima bajta.Na elemente
SCASB bajta pokazuje DI registar.
Omoguuje poreenje akumulatora sa elementima rei.Na elemente rei
SCASW pokazuje DI registar.
Slui za uitavanje elemenata bajta u akumulator.Ovde se menja samo SI
LODSB registar koji pokazuje na elemente bajta koji se itaju.
Slui za uitavanje elemenata rei u akumulator.Ovde se menja samo SI
LODSW
registar koji pokazuje na elemente rei koji se itaju.
Uzima vrednost(bajt) iz akumulatora i smeta u element na koji pokazuje
STOSB
DI.
Uzima vrednost(re) iz akumulatora i smeta u element na koji pokazuje
STOSW DI.
Instrukcije uslovnog skoka se koriste nakon instrukcija koje utiu na sadraj
status registra.Uslovnim skokovima obino predhodi instrukcija CMP.Sledeih
deset naredbi se izvravaju ako je sa CMP izvreno poreenje nepredznaenih
brojeva.

JA (Jump if Above) CF=0 i ZF=0


JAE (Jump if Above or Equal) CF=0
JB (Jump if Below) CF=1
JBE (Jump if Below or Equal) CF=1 ili ZF=1
JE (Jump if Equal) ZF=1
JNA (Jump if Not Above) CF=1 ili ZF=1
JNAE (Jump if Not Above or Equal) CF=1
JNB (Jump if Not Below) CF=0
JNBE (jump if Not Below or Equal) CF=ZF=0
JNE (Jump if Not Equal) ZF=0

Sledeih osam naredbi za uslovni skok se izvravaju ako je sa CMP izvreno


poreenje predznaenih brojeva.

JG (Jump if Greater) ZF=0 i SF=OF


JGE (Jump if Greater or Equal) SF=OF
JL (Jump if Less) SFOF
JLE (Jump if Less or Equal) ZF=1 ili SFOF
JNG (Jump if Not Greater) ZF=1 ili SFOF
JNGE (Jump if Not Greater or Equal) SFOF
JNL (Jump if Not Less) SF=OF
JNLE (Jump if Not Less or Equal) ZF=0 i SF=OF
Sledeih dvanaest naredbi za uslovni skok izvravaju se iskljuivo u zavisnosti od
stanja flegova.

JC (Jump if Carry) CF=1


JNC (Jump if Not Carry) CF=0
JNP (Jump if Not Parity) PF=0
JP (Jump if Parity) PF=1
JPE (Jump if Parity Even) PF=1
JPO (Jump if Parity Odd) PF=0
JNS (Jump if Not Sign) SF=0
JS (Jump if Sign) SF=1
JNZ (Jump if Not Zero) ZF=0
JZ (Jump if Zero) ZF=1
JO (Jump if Overflow) OF=1
JNO (Jump if Not Overflow) OF=0
Naredba uslovnog skoka na osnovu vrednosti registra Cx - JCXZ (Jump if CX is
Zero).Korisna je kod petlji jer se Cx koristi kao broja.
Naredbe za rad sa flegovima

STC Set carry (CF)


CLC Clear carry
CMC Complement carry
STD Set direction flag (DF)
CLD Clear direction flag
CLI Clear interrupt (IF)
STI Set interrupt
PUSHF Sadraj fleg reg. na stek
POPF Inverzno od PUSHF
LAHF Flegove stavlja u AH
SAHF Inverzno od LAHF

Instrukcije za obrazovanje programskih petlji


Instrukcije za obrazovanje programskih petlji podrazumevaju da se brojaka
konstanta nalazi u CX registru i da se njena vrednost u svakoj iteraciji smanjuje za
jedan. Izlazak iz petlje se deava onda kada registar CX postane jednak nuli i ZF
postane 1, i on podrazumijeva obavljanje kratkog skoka. Instrukcija LOOP je
osnovna iz ove grupe, a tu su i LOOPE i LOOPZ, kao i LOOPNE i LOOPNZ.

You might also like