1

Bonjour, j'ai fait un programme asm avec pas mal de texte et mon programme commence à devenir un peu gros pour la ram, je voulais savoir si il était possible de stocker du texte dans la ARC memory et comment y accéder. Pour le moment je le stocke dans des labels avec un .db et ca va donc dans la ram, comment pourrais-je remplacer cela ?

Sinon faut-il que je transforme mon programme en application pour qu'il utilise la arc memory ? si c'est le cas pouvez vous m'indiquez comment s'y prendre ?

Merci d'avance pour vos réponses.
Pierre.

2

Oui, tu peux tout à fait faire un fichier externe. Voici un court exemple utilisant la syntaxe de GNU as et le mode kernel pour retrouver ton fichier, en archive ou en RAM d'ailleurs, c'est transparent. Tu devrais t'en sortir si tu codes en asm de toute façon. ^^ Regardes la doc de vat.h pour plus d'infos.
	pea	NomDeFichier(%pc)	| Adresse du nom de fichier
	clr.w	-(%sp)			| Flags, met-les à 0
	jsr	tios__SymFindPtr	| Trouve l'adresse du SYM_ENTRY du fichier (même en archive)
	addq.l	#6,%sp			| Dépile les arguments
	move.l	%a0,%d0			| Le fichier a-t-il été trouvé ?
	bne.s	FichierTrouve

		// ici, du code d'erreur, le fichier n'a pas été trouvé en mémoire (ram ou archive)

FichierTrouve:
	move.w	12(%a0),-(%sp)		| Pousse le handle du fichier sur la pile (voir la structure SYM_ENTRY)
	jsr	tios__HLock		| Et le lock tout en le déréférençant
	addq.l	#2,%sp			| Restore le pointeur de pile
	move.l	%a0,%a2			| Sauvegarde le pointeur vers le contenu du fichier

	// ici, il serait bon de faire un certain nombre de vérifications sur ton fichier,
	// comme son type par exemple (il est à a0+(a0.w)+1, sur un octet), ou ses magics s'il en a.

	lea	MA_CHAINE_TRUC(%a2),%a0	| Mets dans a0 l'adresse de la chaine MA_CHAINE_TRUC.
					| A toi de définir ces offsets par différences de labels dans le fichier source.

NomDeFichier:
	.asciz	"donnees"

3

.db, ça a l'air d'être du Z80, ce n'est pas la bonne section pour ça ici.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

4

Erf, je me demandais si ce n'était pas un alias de dc.b pour GAS, c'est pour ça que j'ai codé comme ça grin

5

merci beaucoup, désolé d'avoir posté dans le mauvais forum, je vais reposter dans la section z80.