Les tableaux dans masm32 [Résolu]

Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006
- - Dernière réponse : cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
- 29 déc. 2005 à 10:43
salut,

j'ai une procedure en delphi que jveux traduire en assembleur, mais la, ma procedure utilise un tableau pour enregistrer des informations.

donc voici ce que j'aimerais faire en masm32
;..............................................;


.data


; déclarer un tableau global de 100 boolean initialisé a false


.code


LOCAL I: BYTE
.repeat
; mettre I dans l'élément I du tableau


inc I


.until (I==100)

;..............................................

c pas tout a fait ce que je veux faire, si je réussi a faire ca
je vais probablement réussi a faire le reste...
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
3
Merci
.data
mbool 100 dup(0)

.code
mov eax, offset mbool
mov edx, 1 ; // TA VALEUR A INSERER
mov ecx, 100
toBOOL:
mov [eax], edx
add eax, 4 ; PROCHAIN BOLL DU TABLEAU
dec ecx
jnz short toBOOL

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 199 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006
0
Merci
cool merci
Commenter la réponse de cricri_b34
Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006
0
Merci
eee, Si jdois appeler un api dans la boucle quesque jfais?
Commenter la réponse de cricri_b34
Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006
0
Merci
mbool 100 dup(0)
;marche pas

jpense que masm32 veut qu'on mette un type apres mbool
j'ai mi WORD parce que j'ajoute 4 a eax (donc 4 octect?)
Je ne c pas si j'aurais pu mettre BOOL

j'ai aussi remplacer eax par une variable DWORD..... ya pas d'erreur mais jveux etre sur que j'ai le droit

et puis finalement j'aimerais savoir comment récupérer la valeur d'un élément du tableau
Commenter la réponse de cricri_b34
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
oh oui groose faute de frappe de ma part:
.data
mbool DD 100 dup(0) ; 4 octets chacun

Sinon boucle devrait aller telle quelle.
Tu peux appeler une API dans la boucle mais dans ce cas il faudra remplacer les 3 registres principaus par ESI, EDI et EBX car EAX, ECX et EDX perdent leurs valeurs entre 2 appels externes.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006
0
Merci
et pour vérifier si contenu d'un élément du tableau est égale a 1?
Commenter la réponse de cricri_b34
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
0
Merci
salut,

si pas de registre d'index:

test mbool[(0...(MAX-1))*4],-1
je is_false

en supposant que esi est l'index
esi = (0...(MAX-1))
test mbool[esi*4],-1
je is_false

@++
Commenter la réponse de cs_patatalo