19.11.2015.
PROGRAMIRANJE U ASEMBLERU (zbirni jezik, mnemonički zapis)
Ponovimo! 1. Što je program? 2. Koje vrste programskih jezika razlikujemo? 3. Što je prevođenje programa i navedi vrste prevoditelja?
1
19.11.2015.
Oblik instrukcijske riječi Operacijski kod
Polje načina adresiranja
Adresni dio
- svaka instrukcija se sastoji sljedećih elemenata: operacijski kod – određuje vrstu operacije polje načina adresiranja – često uključeno u operacijski kod adresni dio – adrese operanada i rezultata (adresa neke memorijske lokacije ili simbol za neki od registara P)
MNEMONIČKI ZAPIS / ZBIRNI JEZIK – je simbolički zapis strojnih instrukcija u kojem se za operacijski kod koristi slovčana kratica koja podsjeća na djelovanje instrukcije mnemonik ADD SUB MUL DIV MOV INC DEC
funkcija zbroji oduzmi pomnoži podijeli premjesti inkrementiraj +1 dekrementiraj -1
menmonik MOV CLR CPL RL RLC RR RRC
funkcija prenesi obriši komplementiraj rotiraj ulijevo rotiraj ulijevo kroz carry (C) bit rotiraj udesno rotiraj udesno kroz carry (C) bit
ASEMBLER – program koji obavlja prevođenje iz mnemoničkog zapisa u strojni program (binarni zapis), pomoću odgovarajućih tablica mnemonika
2
19.11.2015.
MNEMONIČKI ZAPIS / ZBIRNI JEZIK – mnemonici – primjeri –nastavak mnemonik ANL ORL XRL AJMP LJMP SJMP JZ JNZ JC JNC CJNE DJNZ
funkcija I operacija ILI operacija Isključivo ILI Absolute jump Long jump Small jump Jump if Zero Jump if Not Zero Jump if Carry Jump if No Carry Compare and Jump if Not Equal Decrement and Jump if Not Zero
1. VRSTE INSTRUKCIJA PREMA ADRESNOM DIJELU - PREMA BROJU ADRESA 1. troadresne instrukcije – u adresnom dijelu su: adresa rezultata, adresa 1. operanda, adresa 2. operanda npr. MUL R,W,X;
R:=W*X
2. dvoadresne instrukcije – u adresnom dijelu su: adresa 1. operanda i adresa 2. operanda, a adresa 1. operanda je ujedno i adresa rezultata npr. ADD X,Y;
X:=X +Y
3
19.11.2015.
3. jednoadresne instrukcije – u adresnom dijelu je adresa jednog operanda, a drugi operand je u akumulatoru i rezultat se smješta u akumulator npr. ADD X; A:=A+X 4. bezadresne instrukcije – podrazumijevaju upotrebu stoga npr. MUL • • • •
uzeti 1. operand s vrha stoga uzeti 2. operand s vrha stoga obaviti operaciju rezultat pohraniti u stog
Ponovimo! 1. Objasni strukturu instrukcijske riječi! 2. Što je mnemonički zapis? 3. Navedi primjere mnemonika! 4. Što je asembler? 5. Navedi vrste instrukcija prema broju adresa!
Domaća zadaća! 1. Koristeći se popisom naredbi (AT89S8253 ili 8051 u knjizi) napiši 6 primjera instrukcija obzirom na broj adresa i objasni ih!
4
19.11.2015.
2. VRSTE INSTRUKCIJA PREMA NAČINU ADRESIRANJA (4-načina)
1. neposredno adresiranje konstante ADD A, #data
ADD A, #15h
2. direktno adresiranje bajta unutarnjeg RAM-a ADD A, direct
ADD A, 2Bh
3. indirektno adresiranje preko registara R0 i R1 ADD A, @R0 4. adresiranje općih registara ADD A, Rn
ADD A, R4
2. VRSTE INSTRUKCIJA PREMA NAČINU ADRESIRANJA
– NAČIN ADRESIRANJA = način na koji se dobavljaju podaci (operandi) prilikom izvođenja instrukcija
neposredno adresiranje konstante
– u samoj instrukciji se nalazi podatak tj. operand (konstanta) ADD A, #15h npr. ADD A, #data
sadržaju akumulatora se pribraja konstanta i rezultat se pohranjuje u akumulator
direktno adresiranje bajta unutarnjeg RAM-a
– operand je na određenoj adresi u RAM-u odakle se čita i uzima na obradu npr. ADD A, direct ADD A, 2Bh podatak (operand) iz RAM-a, sa adrese 2B, pribraja se sadržaju akumulatora...
5
19.11.2015.
indirektno adresiranje preko registara R0 i R1
- u registru r0 ili r1 je adresa unutarnjeg RAM-a sa koje se čita podatak i uzima na obradu... npr. ADD A, @R0 iz registra r0 uzimamo adresu RAM-a sa koje čitamo podatak, pribrajamo ga sadržaju akumulatora...
adresiranje općih registara
– u općem registru (r0 – r7) pohranjen je podatak koji se uzima na obradu npr.
ADD A, Rn
ADD A, R4
iz općeg registra R4 uzimamo podatak, pribrajamo ga sadržaju
akumulatora...
Neposredno adresiranje konstante primjer:
ADD A, #20h
6
19.11.2015.
Primjer neposrednog adresiranja ORG 0000h MOV A, #10H ADD A, #20H END
Direktno adresiranje primjer:
ADD A, 20h
7
19.11.2015.
Primjer direktnog adresiranja ORG 0000h MOV A, #10H MOV 20H, #30H ADD A, 20H END
Indirektno adresiranje preko registara R0 i R1 primjer:
ADD A, @R0
ADD A, @R1
8
19.11.2015.
Primjer indirektnog adresiranja ORG 0000h MOV A, #10H MOV R0, #40H MOV 40H, #50H ADD A, @R0 END
Adresiranje općih registara
9
19.11.2015.
Primjer adresiranja općih registara ORG 0000h MOV A, #10H MOV R0, #40H ADD A, R0 END
Ponovimo! 1. Što je način adresiranja i zašto je važan? 2. Navedi osnovne načine adresiranja! 3. Objasni 1. i 2. način adresiranja! 4. Objasni 3. i 4. način adresiranja!
Domaća zadaća! 1. Objasni naredbu: org 0000h 2. Za svaki način adresiranja napiši po 2 primjera i objasni ih!
10