Ce genre de code, je souhaite l'ecrire en partie en ASM. Mais si je garde le Dim en PB, comment transformer le "X=n64(7)" ?
Plus clairement, comment mettre dans EAX (EAX ??) le debut du tableau octal puis regarder ce qu'il y a dans ce tableau a EAX+deplacement ?
Result.l
Dim n64.b(50)
n64(7) = 23
X=n64(7)
Debug X
;
; Une façon de prendre l'adresse du bon élément est de prélever celle-ci avec l'attribut de variable @
;
Address = @n64(7)
! MOV eax, dword [v_Address]
! MOV ebx, [eax]
! MOV dword [v_Result], ebx
Debug Result
;
; Dans PureBasic, l'adresse de départ d'un tableau est stockée dans une variable a_Nom_du_tableau
;
! MOV eax, dword [a_n64]
! ADD eax, 7
! MOV ebx, [eax]
! MOV dword [v_Result], ebx
Debug Result
J'imagine que cela ne répondra à tout dans le cadre d'un développement de programme, alors reviens avec la suite des questions.
Slts
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
tu peux utiliser les registres eax et edx sans souci.
Pour les autres, si tu utilises des commandes PB dans ta procedure, mieux vaut les sauvegarder avant ta routine et les restituer après ta routine et/ou l'appel de fonction PB voire de fonctions de libs externes.
Essaye de poster tes messages sur l'ASM dans la section ASM du forum