49
Načini adresiranja

Načini adresiranja

  • Upload
    roy

  • View
    44

  • Download
    2

Embed Size (px)

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 Presentation

Citation preview

Page 1: Načini adresiranja

Načini adresiranja

Page 2: 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.

Page 3: Načini adresiranja

• 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

• 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

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

• 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

• Nakon izvođenja

30HA

24H

20H

PROGRAM

1. BAJT2. BAJT

Page 8: Načini adresiranja

• 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

Hexadedadno:1. Bajt 2. bajt

25H adresa

Page 10: Načini adresiranja

• 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

• Nakon izvođenja instrukcije

A unutarnji RAM prog. mem40 30H 25H

20H

Page 12: Načini adresiranja

• 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

• 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

• 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

• (A)(A)+((R0))

Page 16: Načini adresiranja

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

• Primjer:Instrukcija ADD A,R0(A)=10H, (R0)=40H

A RAM PROG. MEM.10H R0 -40H 28H

NakonA50H

Page 18: Načini adresiranja

• 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

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

• Odgovori:1. 20H2. 20H3. 30H4. 20H5. 21H6. 30H7. 1. bajt 24H2.bajt 10H8. 2H

Page 21: Načini adresiranja

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

12. (A)=00H, (X)=20H, (SP)=09HADD A,XADD A,#10PUSH AADD A,SP

Page 23: Načini adresiranja

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

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

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

2000 1110 0100 E4H2001 0010 0100 24H2002 0110 0100 64H2003 0010 0101 25H2004 0000 1010 0AH

Page 27: Načini adresiranja

• 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

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

Instrukcije za aritmetičke operacije

Aritmetičke instrukcije procesora Intel 8051 mogu se podijeliti na sljedeće

podskupine:

Page 30: Načini adresiranja

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

• 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
Page 33: Načini adresiranja
Page 34: Načini adresiranja
Page 35: Načini adresiranja
Page 36: Načini adresiranja
Page 37: Načini adresiranja
Page 38: Načini adresiranja
Page 39: Načini adresiranja
Page 40: Načini adresiranja

• Dijeljenje

Page 41: Načini adresiranja

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

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

• Instrukcije INC i DECINC A (A)<-(A)+1INC direct (dir)<-(dir)+1INC @RiINC RnINC DPTR (DPTR)+1isto za DEC…

Page 44: Načini adresiranja

• Instrukcije za logičke operacijeANL-logičko IORL- ILIXRL isključivo ILICPL negacija

Page 45: Načini adresiranja

• 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

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

• 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

RRC ARotacija se odvija kroz zastavicu C

RL A rotacija u lijevu stranuRLC A

A7 A6 A0

C

Page 49: Načini adresiranja

SWAP Aprimjer prije 1100 0000nakon 0000 1100CLR A