
Et si c'est possible de déterminer lequel ?
(une traduction des lignes SymPtr = DerefSym (SymAdd ($(example))); VarPtr = (char*)HeapDeref (SymPtr->tirées de la doc de tigcc) en asm, mais ca plante..
include "OS.h" xdef _nostub xdef _ti89 xdef _ti92plus movem.l a4-a5,-(a7) move.l $c8,a5 pea.l sym(pc) move.l SymAdd*4(a5),a0 jsr (a0) lea.l 4(a7),a7 move.l d0,-(a7) move.l DerefSym*4(a5),a0 jsr (a0) lea.l 4(a7),a7 move.l d0,a4 pea.l 7 move.l HeapAlloc*4(a5),a0 jsr (a0) lea.l 4(a7),a7 move.w d0,12(a4) move.l (a4),-(a7) move.l HeapDeref*4(a5),a0 jsr (a0) lea.l 4(a7),a7 move.l d0,a4 move.w #5,(a4)+ addq.l #1,a4 move.w $32,(a4)+ move.b #45,1(a4) movem.l (a7)+,a4-a5 rts dc.b 0,'kerinfo' sym: dc.b 0
include "OS.h" xdef _nostub xdef _ti89 xdef _ti92plus movem.l a4-a5,-(a7) move.l $c8,a5 pea.l sym(pc) move.l SymAdd*4(a5),a0 ;on creé un symbole jsr (a0) lea.l 4(a7),a7 move.l d0,-(a7) ; on empile la struct Hsym obtenu move.l DerefSym*4(a5),a0 ; pour obtenir une srtuc SYM_ENTRY jsr (a0) lea.l 4(a7),a7 move.l d0,a4 ;on sauve la SYM_ENTRY pea.l 7 ;taille a alouer move.l HeapAlloc*4(a5),a0 ;allouagedu handle jsr (a0) lea.l 4(a7),a7 move.w d0,12(a4) ;le 12eme octet de la SYM_ENTRY correspond au n° du handle de la var move.l d0,-(a7) ;on empile pour dereferencer move.l HeapDeref*4(a5),a0 jsr (a0) lea.l 4(a7),a7 move.l d0,a4 ;on sauve le pointeur move.w #5,(a4)+ ; taille de la string .w addq.l #1,a4 ;0.b move.w $32,(a4)+ ; sign du kernel .w , 0.b move.b #45,1(a4) ;STR_tag .b movem.l (a7)+,a4-a5 rts ;et on quitte mais bon comme c buggé... dc.b 0,'kerinfo' ; nom de la string sym: dc.b 0