[elektro] MPLAB ASM30
hg12345
hg12345 at freemail.hu
Wed Aug 6 16:37:21 CEST 2008
A WATCH ablakban nem tudod, megnézni a define-nal definiált bit
értékét?
Szerintem ezt nem fogja tudni a IDE, a define definiált értékek nem
változó nevek, és erre nem generál azonosítot a IDE részére a GNU!
Ami biztos alapon beleirtam az egyetlen ASM rutinomba és elsőre
fordult, és csinálta is:
#define LED123 PORTA,#5
#define DNOP bra $+2
.global _SyncronChangePort
.text
;//extern BOOL SyncronChangePort(void * TMRx, void * PRx, void
*LATx, unsigned int MaskLat, unsigned int NewValue);
/*
;// w0 *TMRx
;// w1 *PRx
;// w2 *LATx
;// w3 Mask
;// w4 New
;// w5
;// w6
;// w7
*/
_SyncronChangePort:
bclr 123,#6
bset LED123
xor.w w4,[w2--],w6
;//változás képzése a pointer a PORT-ra mutat
and.w w6,w3,w6
;//csak a megfelelő bitek megőrzése
com.w w3,w5
;//ami biztos
and.w w5,[--w2],[w2++] ;//a
állításokkal kapcsolatos direction kimentnek állítása , pointer PORT-ra
mutat
dec2.w [w1],w5
sub.w w5,[w0],w5
repeat w5
nop
xor.w w6,[++w2],[w2]
;//Syncron átváltás és elötte a pointer beállítása
dec.w [w0],w0
return
A forditás eredménye:
2692 A9C07B bclr.b 0x007b,#6
2694 A8A2C2 bset.b 0x02c2,#5
2696 6A0322 xor.w 0x0008,[0x0004--],0x000c
2698 630303 and.w 0x000c,0x0006,0x000c
269A EA8283 com.w 0x0006,0x000a
269C 629942 and.w 0x000a,[--0x0004],[0x0004++]
269E E98291 dec2.w [0x0002],0x000a
26A0 528290 sub.w 0x000a,[0x0000],0x000a
26A2 098005 repeat 0x000a
26A4 000000 nop
26A6 6B0952 xor.w 0x000c,[++0x0004],[0x0004]
26A8 E90010 dec.w [0x0000],0x0000
26AA 060000 return
Erre gondolsz?
IDE 8.10 MPLAB C3.10 és a hozzátartozó ASM forditó.
> Értem én a stílust, nekem mindegy is volna, de akárhogy próbálom,
nem
> fogadja el.
> A Help-ből kezdek arra következtetni, hogy nem is tud ez ilyet.
> Ilyet elfogad:
> .equ szam, 0x800
> .equ valami, PORTA
> .equ LED, 2
>
> bset.b valami, #LED vagy bset.b PORTA, #LED
> clr szam
>
> Ezeket elfogadja, de a Watch nem fogadja el a "szam"-ot
szimbólumként.
> Viszont, ha a 800h változását kérem, hogy mutassa a Watch a bset.b
szam,
> #LED hatására minden rendben zajlik.
>
> ToPe
>
>
>
> hg12345 írta:
> > Irtam nem mindegy a file kiterjesztés! Ez nem a MCHIP
betegessége
> > hanem a GNU specialitása
> > "névasm.S" esetén a C stilusu macro és egyébb paraméterezést
kiván,
> > bevező karalter (delmiter => #)
> > "névasm.s" esetén a GNU ASM macro és egyébb paraméteres
> > bevezető karaktere (delimiter => ."
> >
> > Kettő között különbség tétel az .s vagy .S határozza meg!!!
> >
> > Érdemes elolvasni leirást, jó csak nagyön tömény.....
> >
> >
>
> -----------------------------------------
> elektro[-flame|-etc]
>
______________________________________________________________________
Diákhitellel! Felelős gondolkodással a lehető legtöbbet hozhatod ki egyetemi/főiskolai éveidből.http://ad.adverticum.net/b/cl,1,6022,276819,334676/click.prm
More information about the Elektro
mailing list