načini adresiranja
DESCRIPTION
Načini adresiranja. Instrukcije za obavljanje A-L operacija su jednoadresne . To znači da se jedan od operanada nalazi u akumulatoru A i rezultat će biti u acc A. O vim instrukcijama adresira se isključivo unutrašnji RAM. Instrukcija ADD(zbroji) Postoje 4 načina adresiranja: - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/1.jpg)
Načini adresiranja
![Page 2: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/2.jpg)
• Instrukcije za obavljanje A-L operacija su jednoadresne . To znači da se jedan od operanada nalazi u akumulatoru A i rezultat će biti u acc A.
![Page 3: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/3.jpg)
• Ovim instrukcijama adresira se isključivo unutrašnji RAM.
• Instrukcija ADD(zbroji)Postoje 4 načina adresiranja:Neposredno (direktno) adresiranje konstanteDirektno adresiranje unutarnjeg RAM-aIndirektno adresiranje preko registara R0 i R1Adresiranje općih registara (R0-R7)-Rn
![Page 4: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/4.jpg)
• U prva dva načina instrukcija zauzima dva bajta a u 3. i 4. samo jedan bajt.
1. BAJT -OPERACIJSKI KOD za zbrajanje iznosi 00102 ili 2H
(gornja 4 bita prvog bajta)-način adresiranja (donja 4 bita)
![Page 5: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/5.jpg)
Neposredno adresiranje konstanteMnemonički oblik zapisa instrukcije za zbrajanje
u kojoj se direktno adresira konstanta koju zbrajamo sa sadržajem ACC i rezultat ostaje u u ACC:
ADD A,#konst.(DATA)Binarni zapis instrukcije:0 0 1 0 0 1 0 0
Op. Kod za ADD (2H)
Op kod koji znači da je direktno adr. Konstante (4H)
Konstanta u obliku binarnog broja
![Page 6: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/6.jpg)
• Neka je npr konstanta 20H a u ACC se nalazi podatak 10H (prije izvođenja instrukcije)
Napiši binarni HEX oblik instrukcije prije i nakon izvođenja instrukcija.
Prije izvođenja:A 10H
24H
20H
PROGRAM
1. BAJT2. BAJT
![Page 7: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/7.jpg)
• Nakon izvođenja
30HA
24H
20H
PROGRAM
1. BAJT2. BAJT
![Page 8: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/8.jpg)
• 2. DIREKTNO ADRESIRANJE UNUTARNJEG RAM-AU acc se zbraja sadržaj acc i sadržaj sa adrese u
instrukciji (NE ADRESA!)ADD A, direct
Binarni zapis ove instrukcije je
0 0 1 0 0 1 0 1
Op. Kod za ADD (2H)
Op kod koji znači da je direktno adr. Adrese nulte stranice
Adresa u obliku binarnog broja
![Page 9: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/9.jpg)
Hexadedadno:1. Bajt 2. bajt
25H adresa
![Page 10: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/10.jpg)
• Primjer:Neka je npr adr 20H a na toj adr je zapisan broj
30H. U acc neka je 10H.Unutarnji RAM
25H
20H
30HProgramska mem.
10HA
20H21H
![Page 11: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/11.jpg)
• Nakon izvođenja instrukcije
A unutarnji RAM prog. mem40 30H 25H
20H
![Page 12: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/12.jpg)
• Ovim načinom adr se može dohvatiti bilo koji bajt iz nulte stranice unutarnjeg RAM-a pa tako i sadržaj iz bilo kojeg SFR.
3. INDIREKTNO ADR PREKO REGISTAR R0 I R1U reg R0 i R1 je zapisana adresa na kojoj se
nalazi traženi podatak kojeg zbrajamo sa sadržajem ACC(adresiranje adrese)
![Page 13: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/13.jpg)
• Mnemonički oblik ADD A,@Ri i=0 ili 1Instrukcija ima samo 1 bajt u kojem je donja
četvorka bitova 0110-R0 0111-R1
Binarno:0010 0110 ili 26H ako se adresira R00010 0111 ili 27H -||- R1
![Page 14: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/14.jpg)
• Primjer:Neka je u (A)= 10H (R0)=40H (40H)=50H i
imamo instrukciju ADD A, @R0A unut. RAM progr. Memorija10H R0 40H 26H
40H 50HNakon:
A unut. RAM progr. Memorija 60H 26H
![Page 15: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/15.jpg)
• (A)(A)+((R0))
![Page 16: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/16.jpg)
4. ADRESIRANJE OPĆIH REGISTARA R0-R7Ovim načinom se direktno adresira jedan od 8
općih registara iz grupe odabrane u PSW-u sa dva bita.
Instrukcija ima jedan bajt . Gornja četvorka je ista za ADD 0010 ili 2H a donja poprima vrijednost od 1000-1111
Npr. 1000-R0, 1001-R1, … i 1111 za R7
![Page 17: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/17.jpg)
• Primjer:Instrukcija ADD A,R0(A)=10H, (R0)=40H
A RAM PROG. MEM.10H R0 -40H 28H
NakonA50H
![Page 18: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/18.jpg)
• Odredi koji je sadržaj acc A nakon izvođenja instrukcija. Prikaži bin i hex oblik podataka prije i nakon izvođenja instrukcija.
1. ADD A,#10H (A)=10H2. ADD A,#1FH (A)=01H3. ADD A,10H (A)=10H, (10H)=20H4. ADD A,10H (A)=01H (10H)=1FH5. ADD A,@R1 (A)=20H (R1)=10H (10H)=01H6. ADD A,R1 isto kao u prethodnom
![Page 19: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/19.jpg)
7.Koji je drugi bajt instr. u prvom zadatku (binarno i hex)
8.Koliko bajtova imaju instrukcije u 1., 2.,3., 4., i 5. zad
9.ADD A,#data ako je dugi bajt 00H, (A)=00H, koji je broj u A nakon izvođenja instr.
10. ADD A, direct ako je drugi bajt instr 10H, (10H)=00H, (A)=00H Što je u A nakon izvođenja instr.
![Page 20: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/20.jpg)
• Odgovori:1. 20H2. 20H3. 30H4. 20H5. 21H6. 30H7. 1. bajt 24H2.bajt 10H8. 2H
![Page 21: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/21.jpg)
11.Prije izvođenja (SP)=10H, (A)=00H što je u sp a što u A nakon instr
MOV A,SPADD A,#02HMOV C,APUSH C
![Page 22: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/22.jpg)
12. (A)=00H, (X)=20H, (SP)=09HADD A,XADD A,#10PUSH AADD A,SP
![Page 23: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/23.jpg)
Simbolički oblik adresa
Asembler dopušta pisanje adresa u simb. Obliku. Postoje tablice u kojima se automatski prevode te adr u binarni oblik. Tako npr umjesto adrese specijalnih reg pišemo simbole kao:
A ili ACC za akumulator A, B umjesto adrese B regSP kazalo stoga
![Page 24: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/24.jpg)
Ispred hex brojeva koji počinju znamenkama A-F potrebno je staviti 0 ispred (da se ne bi razumjeli kao neki slovčani simboli)
npr. AH treba napisati kao 0AHNaredba asemb EQU nekom broju pridružuje
slovčani simbolSTO EQU 64H (vrijednosti broja 64H=10010
pridružujemo simbol STO)
DESET EQU 10 (1010=0AH)
![Page 25: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/25.jpg)
SLOVO_A EQU 41H KONST_1 EQU STONaredba asemblera ORG zadaje na koju adresu u
memoriji će biti smješten prvi bajt instrukcije programa.
ORG 20002000 CLR A 2001, 2002 ADD A,#STO
2003, 2004 ADD A,DESET
![Page 26: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/26.jpg)
2000 1110 0100 E4H2001 0010 0100 24H2002 0110 0100 64H2003 0010 0101 25H2004 0000 1010 0AH
![Page 27: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/27.jpg)
• Oznake ili labeleOlakšavaju razumijevanje napisanog programa.
Pišu se ispred instrukcije i iza se stavlja dvotočka. Asembler ih pretvara u vrijednost koja je jednaka adresi na kojoj se nalaze.
![Page 28: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/28.jpg)
Npr.ORG 2000H
CLR AADD A,#STO
ZBROJ:ADD A,DESET
Vrijednost koju poprima oznaka zbroj je 2003HOznake se često koriste kod instrukcija skoka npr
JMP ZBROJ
![Page 29: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/29.jpg)
Instrukcije za aritmetičke operacije
Aritmetičke instrukcije procesora Intel 8051 mogu se podijeliti na sljedeće
podskupine:
![Page 30: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/30.jpg)
Instrukcije za zbrajanje i oduzimane (ADD, ADDC, SUBB)Instrukcije za množenje i dijeljenje (MUL, DIV)Instrukcije za uvećanje i umanjenje sadržaja za jedan (INC, DEC)Instrukcije za podešavanje sadržaja nakon zbrajanja pakiranih BCD brojeva (DA)
![Page 31: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/31.jpg)
• Postoje i instrukcije koje se odnose na zastavicu C (SETB C, CLR C)
SETB C ili D3 ili 1101 0011CLR C ili C3 ili 1100 0011
![Page 32: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/32.jpg)
![Page 33: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/33.jpg)
![Page 34: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/34.jpg)
![Page 35: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/35.jpg)
![Page 36: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/36.jpg)
![Page 37: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/37.jpg)
![Page 38: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/38.jpg)
![Page 39: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/39.jpg)
![Page 40: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/40.jpg)
• Dijeljenje
![Page 41: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/41.jpg)
Broj spremljen u A se dijeli brojem spremljenim u B.
Rezultat ide u A a ostatak u B.Zastavica OV postavit će se u 1 ako je prije
dijeljenja u B nula.Primjer:
![Page 42: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/42.jpg)
X EQU 30H ;(30H)=172Y EQU 31H ;(31H)=15REZ EQU 32HOST EQU 33HORG 1500HMOV A,XMOV B,YDIV ABMOV REZ,AMOV OST,B
![Page 43: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/43.jpg)
• Instrukcije INC i DECINC A (A)<-(A)+1INC direct (dir)<-(dir)+1INC @RiINC RnINC DPTR (DPTR)+1isto za DEC…
![Page 44: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/44.jpg)
• Instrukcije za logičke operacijeANL-logičko IORL- ILIXRL isključivo ILICPL negacija
![Page 45: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/45.jpg)
• Primjer pretvoriti ascii kod malog slova u kod za veliko slovoSLOVO EQU 30HVELIKO_SLOVO EQU 31HMASKA EQU 11011111B
ORG 2000HMOV A,SLOVOANL A,#MASKAMOV VELIKO_SLOVO,A
![Page 46: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/46.jpg)
Primjer :Uporabom ili operacije može se ascii kod velikog slova pretvoriti u kod malog slova
SLOVO EQU 30HMALO_SLOVO EQU 31HMASKA EQU 00100000B
ORG 2000HMOV A,SLOVOANL A,#MASKAMOV MALO_SLOVO,A
![Page 47: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/47.jpg)
• Instrukcije vezane samo za akumulator-CPL A (A)-RR A (rotate right)Svi bitovi se pomiču za jedno mjesto udesno a
zadnji prelazi na mjesto prvoga.MOV A,#2CHRR Aprije 0010 1100nakon 00010110
)(A
![Page 48: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/48.jpg)
RRC ARotacija se odvija kroz zastavicu C
RL A rotacija u lijevu stranuRLC A
A7 A6 A0
C
![Page 49: Načini adresiranja](https://reader036.vdocuments.site/reader036/viewer/2022081420/56815a43550346895dc77b56/html5/thumbnails/49.jpg)
SWAP Aprimjer prije 1100 0000nakon 0000 1100CLR A