ik ben sinds kort bezig met asm. nu wilde ik een programma maken waar ik met macro's werk. alleen krijg ik de macro niet aan de praat.
ik krijg de hele tijd deze foutmeldingen:

Error[127]   D:\ELEKTRO\PROGRAMS\ASM\4LAMPJES\LAMP.ASM 98 : Too many arguments
Error[113]   D:\ELEKTRO\PROGRAMS\ASM\4LAMPJES\LAMP.ASM 16 : Symbol not previously defined (register1)
Error[128]   D:\ELEKTRO\PROGRAMS\ASM\4LAMPJES\LAMP.ASM 16 : Missing argument(s)
Error[113]   D:\ELEKTRO\PROGRAMS\ASM\4LAMPJES\LAMP.ASM 17 : Symbol not previously defined (label1)

dit is m'n macro (met regelnr. van het progje erbij):

15|	LEDON	macro	register1, label1
16|		bsf	register1
17|		goto    label1
18|		endm

en zo 'call' ik de macro:

98|	LEDON	l1,l1_r

ik weet echt niet meer wat er aan de hand kan zijn. en zou het heel erg op prijs stellen als iemand me verder kon helpen. als je meer info nodig hebt moet je het maar ff zeggen

Kan niemand mij helpen? :'(

Er is toch wel iemand die met macro's gewerkt heeft. ik zit nog steeds met hetzelde probleem.ik weet eg nie wat ik fout doe.

Probeer dit eens:

Macro


	LEDON	macro	Byte, Bit
		bsf	Byte, Bit
		endm

Oproep


LEDON	PORTA,0

Edit:
Als je naar een andere regel wilt springen in een macro, dan kan je dat zo doen:


GOTO        $-1   ;1 regel terug             

[Bericht gewijzigd door MMSoft op ]

Kan je in een macro dan niet naar een label springen? dus dit in de macro:

      goto    label1

ik ben nog maar een beginner met asm dus ik weet er nog nie zoveel vanaf.

Je kan geen variabelen in een label gebruiken, en dat is wat je probeert te doen met je "goto label1". In de macro verwacht ie een getal in label1.

Kortom: een goto is naar één label. Niet meerdere.

toch wordt er in het rgb programma van william rgb.asm in een macro gesprongen naar een label (zie eerste macro r19 oid) zoiets wil ik ook gebruiken. en als ik zijn asm file assembleer krijg ik geen fouten. iig als erg bedankt voor jullie hulp!

Hoi PinQ

Je moet even goed kijken naar je instructie.

Je wilt een BSF doen. Maar die heeft 2 waarden nodig. namelijk een register en een bit.
vb:


	BSF	PORTA,0

Dit zie ik niet in de MACRO terug.

Je macro moet er dus ongeveer zo uitzien:


LEDON	macro	register1, bit1, label1
	bsf	register1, bit1
	goto    label1
	endm

de 'call' wordt dan:


	LEDON	PORTA,0 ,next

Misschien kan het ook nog met een DEFINE in de MACRO


	#define	led1	PORTA,0

LEDON	macro	register1, label1
	bsf	register1
	goto    label1
	endm

de 'call' wordt dan:


	LEDON	 led1, next

succes

super bedankt willie worteltje!!! ik had aan het begin een define staan van l1 = PORTB,4 en waarschijnlijk deed door de komma in de define (tussen de port en bit) de macro het niet.
sorry trouwens dat ik nu pas reageer, ben ff op vakantie geweest dan kan ik zo lekker beginnen met mijn studie elektrotechniek :D:D:D