MENTOR:STUDENT: PowerPoint PPT Presentation

presentation player overlay
1 / 77
About This Presentation
Transcript and Presenter's Notes

Title: MENTOR:STUDENT:


1
MSP430 SET INSTRUKCIJA
  • MENTOR STUDENT
  • PROF. DR. MILE STOJCEV SRÐAN JOVANOVIC

2
UVOD
  • Asembler
  • Definicija
  • Osobine
  • Proces nastanka izvršne datoteke

3
SET INSTRUKCIJA
  • Instrukcije MSP430
  • Velicina instrukcija (jedna, dve ili tri reci)
  • Osnovne instrukcije
  • Pseudo-instrukcije

4
SPISAK INSTRUKCIJA
  • Status Bitovi
  • V N Z C
  • ADC.WADC.B dst dstC-gtdst
  • ADD.WADD.B src,dst srcdst-gtdst
  • ADDC.WADDC.B src,dst srcdstC-gtdst
  • AND.WAND.B src,dst src.and.dst-gtdst 0
  • BIC.WBIC.B src,dst .not.src.and.dst-gtdst - - -
    -
  • BIS.WBIS.B src,dst src.or.dst-gtdst - - - -
  • BIT.WBIT.B src,dst src.and.dst 0
  • BR dst Branch to ....... - - - -
  • CALL dst PC2-gtstack, dst-gtPC - - - -
  • CLR.WCLR.B dst Clear destination - - - -
  • CLRC Clear carry bit - - - 0
  • CLRN Clear negative bit - 0 - -
  • CLRZ Clear zero bit - - 0 -
  • CMP.WCMP.B src,dst dst-src
  • DADC.WDADC.B dst dstC-gtdst (decimal)
  • DADD.WDADD.B src,dst srcdstC-gtdst
    (decimal)
  • DEC.WDEC.B dst dst-1-gtdst

5
SPISAK INSTRUKCIJA
  • JC/JHS Label Jump to Label
  • if Carry-bit is set - - - -
  • JEQ/JZ Label Jump to Label
  • if Zero-bit is set - - - -
  • JGE Label Jump to Label
  • if (N .XOR. V) 0 - - - -
  • JL Label Jump to Label
  • if (N .XOR. V) 1 - - - -
  • JMP Label Jump to Label
  • unconditionally - - - -
  • JN Label Jump to Label
  • if Negative-bit is set - - - -
  • JNC/JLO Label Jump to Label
  • if Carry-bit is reset - - - -
  • JNE/JNZ Label Jump to Label
  • if Zero-bit is reset - - - -
  • MOV.WMOV.B src,dst src-gtdst - - - -
  • NOP No operation - - - -
  • POP.WPOP.B dst Item from stack,
    SP2-gtSP - - - -

6
SPISAK INSTRUKCIJA
  • SBC.WSBC.B dst Subtract carry
  • from destination
  • SETC Set carry bit - - - 1
  • SETN Set negative bit - 1 - -
  • SETZ Set zero bit - - 1 -
  • SUB.WSUB.B src,dst dst.not.src1-gtdst
  • SUBC.WSUBC.B src,dst dst.not.srcC-gtdst
  • SWPB dst swap bytes - - - -
  • SXT dst Bit7-gtBit8 ........ Bit15 0
  • TST.WTST.B dst Test destination 0 1
  • XOR.WXOR.B src,dst src.xor.dst-gtdst

7
INSTRUKCIJE ZA KOPIRANJE PODATAKA
  • MOV Premeštanje vrednosti izvorišnog operanda u
    odredišni
  • Sintaksa MOV src, dst ili MOV.W src, dst
  • Operacija src -gt dst
  • Opis Vrednost izvorišnog operanda se premešta u
    odredišni. Operacija ne menja vrednost izvorišnog
    operanda, dok je prethodno stanje odredišnog
    operanda izbrisano.

8
INSTRUKCIJE ZA KOPIRANJE PODATAKA
  • PUSH Premeštanje reci iz izvorišnog operanda u
    stek
  • Sintaksa PUSH src ili PUSH.W src
  • Operacija SP -2 -gt SP
  • src -gt _at_SP
  • Opis Pokazivac steka se dekrementira za dva,
    nakon cega se vrednost izvorišnog operanda
    premešta u RAM adresiran od strane pokazivaca
    steka (TOS)

9
INSTRUKCIJE ZA KOPIRANJE PODATAKA
  • POP Premeštanje reci iz steka u odredišni
    operand (izbavljivanje podataka iz magacina)
  • Sintaksa POP dst
  • Operacija _at_SP -gt dst
  • SP 2 -gt SP
  • Emulacija MOV _at_SP, dst
  • MOV.W _at_SP, dst
  • Opis Vrednost lokacije u steku na koju ukazuje
    pokazivac steka (TOS) se premešta u odredišni
    operand. Nakon toga, pokazivac steka se
    inkrementira dva puta

10
INSTRUKCIJE ZA SABIRANJE
  • ADD.W Sabira izvorišni operand sa
    odredišnim
  • Sintaksa ADD src,dst
  • ADD.W src,dst
  • Operacija src dst -gt dst
  • Opis Izvorišni operand se dodaje na odredišni.
    Operacija ne utice na stanje izvorišnog operanda,
    dok je prethodno stanje odredišnog operanda
    izgubljeno

11
INSTRUKCIJE ZA SABIRANJE
  • ADC.W Sabiranje sa prenosom
  • Sintaksa ADC dst ili ADC.W dst
  • Operacija dst C -gt dst
  • Emulacija ADDC 0,dst
  • ADDC.B 0,dst
  • Opis Vrednost bita prenosa se dodaje na
    odredišni operand. Prethodna vrednost odredišnog
    operanda se briše.

12
INSTRUKCIJE ZA SABIRANJE
  • ADDC.W Sabira izvorišni operand sa
    odredišnim, sa prenosom
  • Sintaksa ADDC src,dst
  • ADDC.W src,dst
  • Operacija src dst C -gt dst
  • Opis Izvorišni operand i bit prenosa se dodaju
    na odredišni. Operacija ne utice na stanje
    izvorišnog operanda, dok je prethodno stanje
    odredišnog operanda izgubljeno.

13
INSTRUKCIJE ZA SABIRANJE
  • INC Inkrementiranje odredišnog operanda
  • Sintaksa INC dst ili INC.W dst
  • Operacija dst 1 -gt dst
  • Emulacija ADD 1, dst
  • Opis Odredišni operand je uvecan za
    jedan.Prethodna vrednost operanda je izbrisana.

14
INSTRUKCIJE ZA SABIRANJE
  • INCD Dvostruko inkrementiranje
    odredišnog operanda
  • Sintaksa INCD dst ili INCD.W dst
  • Operacija dst 2 -gt dst
  • Emulacija ADD 2,dst
  • Opis Vrši se dvostruko inkrementiranje
    odredišnog operanda. Prethodni sadržaj je
    izbrisan.

15
INSTRUKCIJE ZA SABIRANJE
  • DADD Sabira decimalno izvorišni operand sa
    odredišnim, sa prenosom
  • Sintaksa DADD src, dst ili DADD.W
    src,dst
  • Operacija src dst C -gt dst (decimalno)
  • Opis Izvorišni i odredišni operand se tretiraju
    kao cetvorocifreni binarno kodirani pozitivni
    decimalni brojevi (BCD). Izvorišni operand se
    zajedno sa bitom prenosa sabira sa odredišnim
    operandom. Vrednost izvorišnog operanda se ne
    menja, dok je prethodno stanje odredišnog
    operanda izbrisano. Rezultat nije definisan za
    ne-BCD brojeve.

16
INSTRUKCIJE ZA SABIRANJE
  • DADC Decimalno sabiranje sa bitom prenosa
  • Sintaksa DADC dst ili DADC.W src,dst
  • Operacija dst C -gt dst (decimalno)
  • Emulacija DADD 0,dst
  • DADD.B 0,dst
  • Opis Bit prenosa se decimalno dodaje na
    odredišni operand

17
INSTRUKCIJE ZA ODUZIMANJE
  • SUB Oduzimanje izvorišnog operanda od
    odredišnog
  • Sintaksa SUB src,dst ili SUB.W src,dst
  • Operacija dst .NOT.src 1 -gt dst
  • (dst - src -gt dst)
  • Opis Vrši se oduzimanje izvorišnog operanda od
    odredišnog. Vrednost izvorišnog operanda ostaje
    nepromenjena, dok je prethodni sadržaj odredišnog
    operanda izgubljen.

18
INSTRUKCIJE ZA ODUZIMANJE
  • SBC Oduzimanje sa bitom prenosa
  • Sintaksa SBC dst ili SBC.W dst
  • Operacija dst 0FFFFh C -gt dst
  • dst 0FFh C -gt dst
  • Emulacija SUBC 0,dst
  • Opis Vrši se oduzimanje sa bitom prenosa.

19
INSTRUKCIJE ZA ODUZIMANJE
  • SUBC, Oduzimanje sa bitom pozajmice
  • SBB
  • Sintaksa SUBC src,dst ili SUBC.W src,dst
  • SBB src,dst ili SBB.W src,dst
  • Operacija dst .NOT.src C -gt dst
  • ili
  • (dst - src - 1 C -gt dst)
  • Opis Vrši se oduzimanje izvorišnog operanda od
    odredišnog. Vrednost izvorišnog operanda ostaje
    nepromenjena, dok je prethodni sadržaj odredišnog
    operanda izgubljen.

20
INSTRUKCIJE ZA ODUZIMANJE
  • DEC.W Dekrementiranje odredišnog operanda
  • Sintaksa DEC dst ili DEC.W dst
  • DEC.B dst
  • Operacija dst 1 -gt dst
  • Emulacija SUB 1, dst
  • Emulacija SUB.B 1, dst
  • Opis Umanjuje vrednost odredišnog bita za jedan.
    Prethodno stanje odredišnog operanda je
    izgubljeno.

21
INSTRUKCIJE ZA ODUZIMANJE
  • DECD Dvostruko dekrementiranje
    odredišnog operanda
  • Sintaksa DECD dst ili DECD.W dst
  • Operacija dst - 2 -gt dst
  • Emulacija SUB 2,dst
  • Opis Umanjuje vrednost odredišnog bita za dva.
    Prethodno stanje odredišnog operanda je
    izgubljeno.

22
INSTRUKCIJE ZA POREÐENJE
  • CMP Poredi izvorišni i odredišni operand
  • Sintaksa CMP src, dst ili CMP.W src, dst
  • Operacija dst .NOT.src 1
  • Opis Poredi izvorišni i odredišni operand.

23
LOGICKE INSTRUKCIJE
  • AND Vrši operaciju AND nad izvorišnim i
    odredišnim operandima
  • Sintaksa AND src, dst ili AND.W src,
    dst
  • Operacija src .AND. dst -gt dst
  • Opis Vrši se operacija konjukcije nad izvorišnim
    i odredišnim operandima. Rezultat se smešta u
    odredišni operand.

24
LOGICKE INSTRUKCIJE
  • XOR Eksluzivna ILI operacija nad izvorišnim
    i odredišnim operandom
  • Sintaksa XOR src,dst ili XOR.W src,dst
  • Operacija src .XOR. dst -gt dst
  • Opis Vrši se eksluzivna ILI operacija nad
    izvorišnim i odredišnim operandom. Rezultat se
    smešta u destinacioni operand, ciji je prethodni
    sadržaj izgubljen. Operacija nema uticaja na
    izvorišni operand

25
LOGICKE INSTRUKCIJE
  • TST Testiranje odredišnog operanda
  • Sintaksa TST dst ili TST.W dst
  • Operacija dst 0FFFFh 1
  • dst 0FFh 1
  • Emulacija CMP 0,dst
  • Opis Odredišni operand se poredi sa nulom.
    Statusni bitovi se postavljaju na osnovu
    rezultata operacije. Vrednost odredišnog bita se
    ne menja nakon izvršene operacije.

26
LOGICKE INSTRUKCIJE
  • BIT Testira bitove u odredišnom operandu
  • Sintaksa BIT src, dst ili BIT.W
    src, dst
  • Operacija src .AND. dst
  • Opis Vrši se operacija konjukcije nad izvorišnim
    i odredišnim operandima. Rezultat utice jedino na
    status bitove, dok je bez uticaja na izvorišni i
    odredišni operand.

27
INSTRUKCIJE ZA POMERANJE I ROTIRANJE
  • RLA Aritmeticko rotiranje ulevo
  • Sintaksa RLA dst ili RLA.W dst
  • Operacija C lt- MSB lt- MSB-1 ....LSB1 lt- LSB lt-
    0
  • Emulacija ADD dst, dst
  • Opis Odredišni operand se pomera (šiftuje)za
    jednu poziciju ulevo. MSB se pomera u bit prenosa
    (C), a LSB postaje nula. Instrukcija RLA se
    ponaša kao množenje sa predznakom brojem dva.
  • Do prekoracenja dolazi ukoliko je dstgt04000h i
    dstlt0C000h pre izvodenje operacije, odnosno
    dolazi do promene predznaka rezultata.

28
INSTRUKCIJE ZA POMERANJE I ROTIRANJE
  • RLC.W Rotiranje ulevo sa prenosom
  • Sintaksa RLC dst ili RLC.W dst
  • Operacija C lt- MSB lt- MSB-1 .... LSB1 lt-
    LSB lt- C
  • Emulacija ADDC dst, dst
  • Opis Odredišni operand je pomeren (shifted)
    jednu poziciju ulevo. Bit prenosa (C) se upisuje
    u LSB, dok se MSB upisuje u bit prenosa (C).

29
INSTRUKCIJE ZA POMERANJE I ROTIRANJE
  • RRA.W Aritmeticko rotiranje udesno
  • Sintaksa RRA dst ili RRA.W dst
  • Operacija MSB -gt MSB, MSB -gt MSB-1, ...LSB1
    -gt LSB, LSB -gt C
  • Opis Odredišni operand se rotira jednu poziciju
    udesno. MSB se rotira u MSB, onda se MSB rotira u
    MSB-1, a LSB1 se rotira u LSB.

30
INSTRUKCIJE ZA POMERANJE I ROTIRANJE
  • RRC Rotiranje udesno sa prenosom
  • Sintaksa RRC dst ili RRC.W dst
  • Operacija C -gt MSB -gt MSB-1 .... LSB1 -gt LSB
    -gt C
  • Opis Odredišni operand je pomeren (shifted)
    jednu poziciju udesno. Bit prenosa (C) se upisuje
    u MSB, dok se LSB upisuje u bit prenosa (C).

31
INSTRUKCIJE ZA BEZUSLOVNO GRANANJE
  • JMP Bezuslovni skok
  • Sintaksa JMP labela
  • Operacija PC 2pomeraj -gt PC
  • Opis 10-bitni pomeraj sa predznakom koji je
    sadržan u LSB-ovima instrukcije se dodaje na
    programski brojac

32
INSTRUKCIJE ZA BEZUSLOVNO GRANANJE
  • BR, BRANCH Grananje ka destinaciji
  • Sintaksa BR dst
  • Operacija dst -gt PC
  • Emulacija MOV dst, PC
  • Opis Izvodi se bezuslovno grananje bilo gde u
    64 K adresnog prostora. Mogu se koristiti svi
    tipovi adresiranja. Instrukcija grananja je
    velicine reci (word).

33
INSTRUKCIJE ZA USLOVNO GRANANJE
  • JC Skok ako je bit prenosa setovan
  • JHS Skok ako je veci ili jednak
  • Sintaksa JC labela
  • JHS labela
  • Operacija Ako je C 1 PC 2pomeraj -gt PC
  • Ako je C 0 izvrši sledecu instrukciju
  • Opis Testira se stanje bita prenosa u statusnom
    registru. Ako je bit prenosa setovan, 10-bitni
    pomeraj sa predznakom koji je sadržan u LSB-ovima
    instrukcije se dodaje na programski brojac.
    Ukoliko bit prenosa nije setovan, izvršava se
    sledeca instrukcija koja sledi. JC se koristi i
    za poredenje neoznacenih brojeva (0 do 65536).

34
INSTRUKCIJE ZA USLOVNO GRANANJE
  • JEQ , JZ Skok ako je jednako, Skok ako je nula
  • Sintaksa JEQ labela, JZ labela
  • Operacija Ako je Z1 PC 2pomeraj -gt PC
  • Ako je Z0 izvrši sledecu instrukciju
  • Opis Testira se stanje bita nule (Z) u statusnom
    registru. Ako je bit nule setovan, 10-bitni
    pomeraj sa predznakom koji je sadržan u LSB-ovima
    instrukcije se dodaje na programski brojac.
    Ukoliko bit nule nije setovan, izvršava se
    sledeca instrukcija koja sledi.

35
INSTRUKCIJE ZA USLOVNO GRANANJE
  • JGE Skok ako je vece ili jednako
  • Sintaksa JGE labela
  • Operacija Ako je (N .XOR. V) 0 skok na
    labelu PC 2pomeraj -gt PC
  • Ako je (N .XOR. V) 1 izvrši sledecu
    instrukciju
  • Opis Testira se stanje bita negativne vrednosti
    (N) i bita prekoracenja (V) u statusnom registru.
    Ako su oba bita setovana ili resetovana, 10-bitni
    pomeraj sa predznakom koji je sadržan u LSB-ovima
    instrukcije se dodaje na programski brojac.
    Ukoliko je samo jedan bit setovan, izvršava se
    sledeca instrukcija koja sledi. Ova instrukcija
    omogucava poredenje oznacenih celih brojeva.

36
INSTRUKCIJE ZA USLOVNO GRANANJE
  • JL Skok ako je manje
  • Sintaksa JL labela
  • Operacija Ako je (N .XOR. V) 1 skok na
    labelu PC 2pomeraj -gt PC
  • Ako je (N .XOR. V) 0 izvrši sledecu
    instrukciju
  • Opis Testira se stanje bita negativne vrednosti
    (N) i bita prekoracenja (V) u statusnom registru.
    Ukoliko je samo jedan bit setovan, 10-bitni
    pomeraj sa predznakom koji je sadržan u LSB-ovima
    instrukcije se dodaje na programski brojac. Ako
    su oba bita setovana ili resetovana, izvršava se
    sledeca instrukcija koja sledi. Ova instrukcija
    omogucava poredenje oznacenih celih brojeva.

37
INSTRUKCIJE ZA USLOVNO GRANANJE
  • JN Skok ukoliko je negativan
  • Sintaksa JN labela
  • Operacija Ako je N1 PC 2pomeraj -gt PC
  • Ako je N0 izvrši sledecu instrukciju
  • Opis Testira se stanje bita negativne vrednosti
    (N) u statusnom registru. Ako je bit negativne
    vrednosti setovan, 10-bitni pomeraj sa predznakom
    koji je sadržan u LSB-ovima instrukcije se dodaje
    na programski brojac. Ukoliko bit nije setovan,
    izvršava se sledeca instrukcija koja sledi.

38
INSTRUKCIJE ZA USLOVNO GRANANJE
  • JNC Skok ako je bit prenosa resetovan
  • JLO Skok ako je manje
  • Sintaksa JNC labela
  • JLO labela
  • Operacija Ako je C 0 PC 2pomeraj -gt PC
  • Ako je C 1 izvrši sledecu instrukciju
  • Opis Testira se stanje bita prenosa u statusnom
    registru. Ako je bit prenosa resetovan, 10-bitni
    pomeraj sa predznakom koji je sadržan u LSB-ovima
    instrukcije se dodaje na programski brojac.
    Ukoliko je bit prenosa setovan, izvršava se
    sledeca instrukcija koja sledi. JNC se koristi i
    za poredenje neoznacenih brojeva (0 do 65536).

39
INSTRUKCIJE ZA USLOVNO GRANANJE
  • JNE, JNZ Skok ako nije jednako, Skok ako nije
    nula
  • Sintaksa JNE labela, JNZ labela
  • Operacija Ako je Z0 PC 2pomeraj -gt PC
  • Ako je Z1 izvrši sledecu instrukciju
  • Opis Testira se stanje bita nule (Z) u statusnom
    registru. Ako je bit nule resetovan, 10-bitni
    pomeraj sa predznakom koji je sadržan u LSB-ovima
    instrukcije se dodaje na programski brojac.
    Ukoliko je bit nule setovan, izvršava se sledeca
    instrukcija koja sledi.

40
INSTRUKCIJE POZIVA
  • CALL Potprogram
  • Sintaksa CALL dst
  • Operacija dst -gt tmp dst se smešta u tmp
  • SP - 2-gt SP
  • PC -gt _at_SP
  • tmp -gt PC dst se smešta u PC
  • Opis Poziva se potprogram koji smešten na bilo
    kojoj adresi unutar 64 K adresnog prostora. Mogu
    se koristiti svi tipovi adresiranja. Povratna
    adresa (adresa instrukcije koja sledi nakon
    poziva potprograma) je smeštena u steku.
    Instrukcija CALL je velicine reci.

41
INSTRUKCIJE POVRATKA
  • RET Povratak iz potprograma
  • Sintaksa RET
  • Operacija _at_SP -gt PC
  • SP 2 -gt SP
  • Emulacija MOV _at_SP, PC
  • Opis Povratna adresa prebacena u stek pomocu
    CALL instrukcije se upisuje u programski brojac.
    Program nastavlja sa izvršavanjem na adresi
    instrukcije koja sledi nakon instrukcije poziva
    potprograma.

42
INSTRUKCIJE POVRATKA
  • RETI Povratak sa obrade prekida
  • Sintaksa RETI
  • Operacija TOS -gt SR
  • SP 2 -gt SP
  • TOS -gt PC
  • SP 2 -gt SP
  • Opis 1. U statusni registar se upisuje vrednost
    koja se nalazi na pocetku potprograma za obradu
    prekida. Ovo se postiže time što se trenutna
    vrednost SR-a zameni vrednošcu TOS-a. Pokazivac
    steka se inkrementira za dva.
  • 2. U programski brojac se upisuje vrednost
    koja se nalazi na pocetku potprograma za obradu
    prekida. Ovo je korak koji sledi nakon prekida u
    toku izvršavanja programa. Ovo se postiže time
    što se trenutna vrednost PC-a zameni vrednošcu
    TOS-a. Pokazivac steka se inkrementira za dva.

43
INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
  • SETC Postavljanje bita prenosa
  • Sintaksa SETC
  • Operacija 1 -gt C
  • Emulacija BIS 1,SR
  • Opis Bit prenosa C je postavljen. Operacija koja
    je cesto neizbežna.

44
INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
  • SETN Postavi negativan bit
  • Sintaksa SETN
  • Operacija 1 -gt N
  • Emulacija BIS 4,SR
  • Opis Negativan bit je postavljen

45
INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
  • SETZ Postavi bit nule
  • Sintaksa SETZ
  • Operacija 1 -gt Z
  • Emulacija BIS 2,SR
  • Opis Bit nule Z je postavljen.

46
INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
  • CLRC Briše bit prenosa (C)
  • Sintaksa CLRC
  • Operacija 0 -gt C
  • Emulacija BIC 1, SR
  • Opis Briše se bit prenosa (C). Instrukcija CLRC
    je instrukcija velicine reci.

47
INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
  • CLRN Briše bit negativnog predznaka (N)
  • Sintaksa CLRN
  • Operacija 0 -gt N
  • ili
  • (.NOT.src .AND. dst -gt dst)
  • Emulacija BIC 4,SR
  • Opis Vrši se konjukcija invertovane konstante
    04h (0FFFBh) i odredišnog operanda. Rezultat se
    smešta u odredišni operand. Ova instrukcija je
    velicine reci.

48
INSTRUKCIJE ZA UPRAVLJANJE STANJIMA MARKERA
  • CLRZ Briše bit nule (Z) u statusnom registru
  • Sintaksa CLRZ
  • Operacija 0 -gt Z
  • ili
  • (.NOT.src .AND. dst -gt dst)
  • Emulacija BIC 2, SR
  • Opis Vrši se konjukcija invertovane konstante
    02h (0FFFDh) i odredišnog operanda. Rezultat se
    smešta u odredišni operand. Ova instrukcija je
    velicine reci.

49
OPERACIJE NAD BITOVIMA
  • BIC Resetuje bitove u odredišnom operandu
  • Sintaksa BIC src,dst ili BIC.W
    src,dst
  • Operacija .NOT.src .AND. dst -gt dst
  • Opis Vrši konjukciju invertovanog izvorišnog
    operanda i odredišnog operanda. Rezultat se
    smešta u odredišni operand, dok vrednost
    izvorišnog operanda ostaje nepromenjena.

50
OPERACIJE NAD BITOVIMA
  • BIS Setuje bitove u odredišnom operandu
  • Sintaksa BIS src,dst ili BIS.W
    src,dst
  • Operacija src .OR. dst -gt dst
  • Opis Vrši se disjunkcija izmedu izvorišnog i
    odredišnog operanda. Rezultat se smešta u
    odredišni operand, dok vrednost izvorišnog
    operanda ostaje nepromenjena.

51
OPERACIJE NAD BITOVIMA
  • SWPB Zamena bajtova
  • Sintaksa SWPB dst
  • Operacija bitovi 15 do 8 lt-gt bitovi 7 do 0
  • Opis Vrši se zamena mesta višeg i nižeg bajta
    odredišnog operanda.

52
OPERACIJE ZA RAD SA PREKIDIMA
  • DINT Onemogucava (opšte) prekide
  • Sintaksa DINT
  • Operacija 0 -gt GIE
  • ili
  • (0FFF7h .AND. SR -gt / .NOT.src.AND.dst
    -gt dst)
  • Emulacija BIC 8, SR
  • Opis Blokirani su svi prekidi. Vrši se operacija
    konjukcije nad invertovanom konstantom 08h i
    status registrom. Rezultat se smešta u statusni
    registar.

53
OPERACIJE ZA RAD SA PREKIDIMA
  • EINT Dozvola (opšta) prekida
  • Sintaksa EINT
  • Operacija 1 -gt GIE
  • ili
  • (0008h .OR. SR -gt SR / .NOT. src .OR.
    dst -gt dst)
  • Emulacija BIS 8,SR
  • Opis Dozvola za sve prekide. Vrši se disjunkcija
    nad konstantom 08h i statusnim registrom SR.
    Rezultat se smešta u registar SR.

54
OSTALE INSTRUKCIJE
  • NOP Nema operacije
  • Sintaksa NOP
  • Operacija Nema
  • Emulacija MOV 0, 0
  • Opis Ne izvode se nikakve operacije. Ova
    instrukcija se može koristiti za vreme testiranja
    softvera ili za definisanje potrebnih pauza.

55
OSTALE INSTRUKCIJE
  • CLR Briše odredišni operand
  • Sintaksa CLR dst ili CLR.W dst
  • Emulacija MOV 0, dst
  • Operacija 0 -gt dst
  • Opis Instrukcija briše odredišni operand.

56
OSTALE INSTRUKCIJE
  • INV Invertuje odredišni operand
  • Sintaksa INV dst
  • Operacija .NOT.dst -gt dst
  • Emulacija XOR 0FFFFh, dst
  • Opis Odredišni operand je invertovan. Prethodna
    vrednost je izbrisana.

57
OSTALE INSTRUKCIJE
  • SXT Promena znaka
  • Sintaksa SXT dst
  • Operacija Bit 7 -gt Bit 8 ......... Bit 15
  • Opis Znak iz nižeg bajta je produžen u viši
    bajt.

58
LABORATORIJSKA VEŽBA
  • SNIMANJE I REPRODUKCIJA AUDIO SIGNALA

59
LABORATORIJSKA VEŽBA
  • Dizajn ploce MSP430 je takav da omogucava pun
    tok obrade analognog signala korišcenjem
    MSP430FG4618. Ploca može da se koristi za brojne
    audio aplikacije. Moguce je snimati i
    reprodukovati audio signale bez korišcenja
    dodatnih spoljnih komponenata.
  • Mikrofon je povezan sa MSP430FG4618 i dozvola za
    rad mikrofona se dobija prekoodgovarajuceg porta
    MSP430FG4618.

60
LABORATORIJSKA VEŽBA
Tok obrade analognog signala
61
LABORATORIJSKA VEŽBA
  • Analogni filtri Prvi po redu aktivni filtar
    propusnik visokih ucestanosti (HPF) sa granicnom
    frekvencijom postavljenom približno na 340Hz
    nalazi se iza mikrofona da bi eliminisao ulazne
    signale niskih frekvencija. Opcionalan, drugi po
    redu, Sallen-Key aktivni filtar propusnik niskih
    ucestanosti (LPF) sa granicnom frekvencijom
    postavljenom približno na 4 kHz, eliminiše šum
    visokih frekvencija na analognom izlazu 12-bitnog
    digitalno-analognog konvertora (DAC). Šema filtra
    prikazana je na slici 5. Ovi filtri koriste
    integrisane operacione pojacavace mikrokontrolera
    MSP430. Operacioni pojacavaci OA0 i OA1 obavljaju
    proces filtriranja.

62
LABORATORIJSKA VEŽBA
Šema aktivnog analognog filtra
63
LABORATORIJSKA VEŽBA
  • Analogni izlaz je izveden sa ploce preko mono
    uticnice od 3.5mm koja je povezana na integrisani
    operacioni pojacavac OA2. Ulaz u ovaj pojacavac
    može interno da se poveže na DAC12 izlaz
    MSP430FG4618. Nekoliko opcija slabljenjna je
    omoguceno interno i hardverski pomocu
    odgovarajuceg kratkospajaca.

64
LABORATORIJSKA VEŽBA
  • Direktni pristup memoriji DMA
  • Predstavlja takav pristup gde U/I interfejs i
    glavna memorija direktno razmenjuju podatke, bez
    posredstva CPU-a. Ovim se premošcava usko grlo
    CPU-periferija i obezbeduje prenos podataka
    izmedu periferija i RAM-a mikroracunara bez
    aktivne intervencije CPU-a. Osnovne
    karakteristike ove tehnike su
  • l. prenos se ostvaruje bez programskog
    upravljanja,
  • 2. brzina prenosa je velika i odre ena je
    memorijskim ciklusom (lt 0,5µs) a reda je 2 M
  • bajta/s i više,
  • 3. prenos se realizuje kao blokovski.

65
LABORATORIJSKA VEŽBA
Tokovi podataka kod DMA U/I prenosa
66
LABORATORIJSKA VEŽBA
  • Zadatak
  • Snimanje i reprodukcija audio signala.
    Upoznavanje sa DMA (Direct Memory Acess) i
    kompletnim tokom obrade analognog signala na
    mikrokontroleru MSP430 FG4618.
  • Potrebna oprema
  • Za izvodenje ove laboratorijske vežbe potrebno
    nam je
  • razvojna ploca MSP430FG4618/F2013
  • racunar
  • Flash Emulation Tool(MSP-FET430UIF) kojim cemo
    razvojnu plocu povezati na racunar i izvršiti
    programiranje kontrolera MSP430FG4618
  • slušalice koje cemo prikljuciti na mono uticnicu
    od 3.5mm

67
LABORATORIJSKA VEŽBA
  • Postupak rada
  • Da bismo kreirali novi projekat, napisali
    program, ucitali ga i izvršili na MSP430
    uredajima, potrebno je da ispratimo sledecu
    proceduru
  • Pokrenimo IAR Embedded Workbench. Kliknimo na
    Start dugme na taskbar-u i izaberimo All Programs
    gt IAR Systems gt IAR Embedded Workbench for MSP430
    V4 gt IAR Embedded Workbench.

68
LABORATORIJSKA VEŽBA
Osnovni prozor IAR Embedded Workbench IDE-a
69
LABORATORIJSKA VEŽBA
  • Kreirajmo novi tekstualni fajl (File gt New gt
    File).

70
LABORATORIJSKA VEŽBA
  • Unesimo tekst programa iz Listinga 1, koji se
    nalazi u štampanoj pripremi za izvodenje
    laboratorijske vežbe, u novo kreirani fajl.
  • Sacuvajmo tekstualni fajl programa (File gt Save)
    kao main.c

71
LABORATORIJSKA VEŽBA
Izgled prozora nakon unešenog i sacuvanog koda
72
LABORATORIJSKA VEŽBA
  • Kreirajmo novi radni prostor (File gt New gt
    Workspace)
  • Kreirajmo novi projekat (Project gt Create New
    Project). Pojavice se Create New Project dijalog
    prozor.

73
LABORATORIJSKA VEŽBA
  • Proverimo da li je Tool chain postavljen na
    MSP430, izaberimo Empty project iz ponudenih
    projektnih šablona (Project Templates) i kliknimo
    OK. U standardnom Save As dijalog prozoru,
    naznacimo direktorijum gde želimo da smestimo
    projektni fajl, ili kreirajmo novi projektni
    direktorijum. Ukucajmo naziv projekta, Voice
    Recorder u polje za upis imena fajla i kliknimo
    Save da bismo kreirali novi projekat. Projekat ce
    se pojaviti u radnom prozoru.
  • Dodajmo prethodno kreirani tekstualni fajl
    programa projektu (Project gt Add Files).
  • Selektujmo željeni tekstualni fajl i kliknimo
    Open. Alternativno, kliknimo duplim klikom na
    fajl da ga dodamo projektu.
  • Sacuvajmo radni prostor (File gt Save Workspace).
    Naznacimo ime radnog prostora i kliknimo Save.

74
LABORATORIJSKA VEŽBA
  • Podesimo opcije projekta (Project gt Options). Za
    svaku potkategoriju (General Options, C/C
    Compiler, Assembler, Linker, Debugger) prihvatimo
    polazne opcije Factory Settings sa sledecim
    izuzecima
  • naznacimo ciljni uredaj (General Options gt Target
    gt Device)
  • omogucimo asemblerski projekat ili C/asemblerski
    projekat (General Options gt Target gt
    Assembler-only project).
  • omogucimo generisanje izvršnog izlaznog fajla
    (General Options gt Output gt Output file gt
    Executable).
  • za FET debagiranje, kliknimo Debugger gt Setup gt
    Driver gt FET Debugger.
  • naznacimo aktivni port koji se koristi za vezu sa
    FET-om (FET Debugger gt Setup gt Connection).
  • Debagirajmo aplikaciju korišcenjem C-SPY-a
    (Project gt Debug). Ovim startujemo
  • C-SPY i on preuzima kontrolu nad uredajem, briše
    memoriju, zatim je programira aplikacijom i
    resetuje uredaj.

75
LABORATORIJSKA VEŽBA
Osnovni prozor C-SPY Debugger-a
76
LABORATORIJSKA VEŽBA
  • Kliknimo Debug gt Go da startujemo aplikaciju.
  • Kliknimo Debug gt Stop Debugging da stopiramo
    aplikaciju, izademo iz C-SPY-a i vratimo se u
    Workbench.
  • Kliknimo File gt Exit da izademo iz Workbench-a.

77
BIOGRAFIJA AUTORA
Prezime Jovanovic
Ime Srdan
Datum rodenja 07.12.1978
Adresa stanovanja Laze Lazarevica 1, 37000 Kruševac
E-mail srdja.jovanovic_at_yahoo.com
Poznavanje jezika Engleski C/C/C
Write a Comment
User Comments (0)
About PowerShow.com