[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