www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Assembler AVR neznanje

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3362
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Dec 18, 2013 12:53 pm    Naslov sporočila:  Assembler AVR neznanje Odgovori s citatom

Skušam pomočiti svoj kljun tudi malo v assembler. Pri 8051 mi je to nekako uspelo, tukaj pa ne razumem in me bega sledeče:

Naredil sem disassembler nekega programa. Izvleček izgleda tako:

Koda:
          clr    r25          ; 004E 2799
          sts    0x0060, r24  ; 004F 9380 0060
          sts    0x0060, r25  ; 0051 9390 0060
          ldi    ZL, 0xFE     ; 0053 EFEE
          ldi    ZH, 0x0F     ; 0054 E0FF
          ldi    XL, 0x00     ; 0055 E0A0


Prvo ugibanje: prva kolona izza podpičja predstavlja naslov, kje v flash pomniniku se nahaja instrukcija, druga in morebiti tretja kolona pa hex vsebino, kako izgleda instrukcija. Drži?

Če drži, potem dilema: Instrukcije imajo povprečno dva bajta, sodeč po izpisu tretje kolone. Kako potem se naslov povečuje samo za 1?
Če je instrukcija dolga z parametrom 4 bajte, se naslov poveča za 2.
Ali potem drži, da so instrukcije v flash pomnilniku v dvobajtnih besedah in je potemtakem naslov v prvi koloni naslov dvobajtne besede v dvojnih bajtih in pomeni potemtakem 4 dejansko naslov 8-ga bajta v flashu?

Naprej:
Koda:
ldi    r24, 0x10    ; 0043 E180


Load immediate instrukcija zgoraj ima dva parametra, kam je treba polniti, v R 24, seveda in kaj naj se napolne 0X10 seveda. Toda niti enega niti drugega ne vidim v E180, kar je interna oblika ukaza. Prosim pojasnilo, gotovo kdo, ki ve,

Naprej:
Koda:
avr0058:  st     X+, r24      ; 0058 938D
          sbiw   ZL, 0x01     ; 0059 9731
           brne  avr0058      ; 005A F7E9


Ukaz brne naj skoči na naslov avr0058 in to je dejansko 0058, toda v argumentu ukaza ne vidim tega naslova. Pomoč!

Gotovo gre samo za nerazumevanje, ko me bo kdo podučil, mi bo jasno.
Hvala.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.39

PrispevekObjavljeno: Sre Dec 18, 2013 1:01 pm    Naslov sporočila:   Odgovori s citatom

Flash ni 8-bit, ampak širši (takole na pamet ne vem točno, koliko bitov ima).
Zato se lahko tudi "ldi r24, 0x10" spakira na eno adreso, ker je dovolj bitov za opcode in parameter.

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
S53DZ
Član
Član



Pridružen-a: Čet 28 Apr 2011 9:27
Prispevkov: 951
Aktiv.: 5.52
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 18, 2013 1:07 pm    Naslov sporočila:   Odgovori s citatom

immediate način naslavljanja ima po navadi dve obliki:
- če je operand majhen, je sestavni del instrukcije (ni nujno poravnan na bit 0)
- če je operand velik, je podan v naslednjih bajtih
- (če je operand še večji, je naslovljen in spravljen v ram na koncu kode)

ukaz BR(NE) je BRANCH in ne JUMP, zato se v instrukciji skrije le izračunani relativni (+/-) skok do destinacije (ni nujno poravnan na bit 0).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 501 dni


Powered by phpBB © 2001, 2005 phpBB Group