Aide pour code

marooh Messages postés 130 Statut Membre -  
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'ai un code assembleur qui permet de trouver le maximum d'un tableau.En le compilant, la premiere phase passe avec succès mais en créant l'application exe un message d'erreur s'affiche qui est le suivant: no stack
je ne sais pa quoi faire
voici le code
.386
.model small, c
.stack
ASSUME SS:segment_pile

MOV AX, segment_pile
MOV SS, AX
MOV SP, base_pile
.data
TABLEAU DB 20 DUP (?)

.code

Maximum proc uses ebx ecx edx, \
a:ptr, \
n:dword

mov ebx,a

mov ecx,0

mov eax,[ebx]

while1: cmp ecx,n
jge endwhile1

if_1: mov edx,[ebx+4*ecx]
cmp edx,eax
jle endif_1

mov eax,[ebx+4*ecx]

endif_1:

inc ecx

jmp while1
endwhile1:

ret

Maximum endp
end maximum

5 réponses

  1. ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   342
     
    16 ou 32 bits ?
    0
  2. marooh Messages postés 130 Statut Membre
     
    16 bit
    0
  3. ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   342
     
    C'est quoi ça alors ?
    mov ebx,a
    mov ecx,0
    mov eax,[ebx]
    while1: cmp ecx,n
    jge endwhile1
    if_1: mov edx,[ebx+4*ecx]
    cmp edx,eax
    jle endif_1
    mov eax,[ebx+4*ecx]

    0
  4. marooh Messages postés 130 Statut Membre
     
    ça ne peut se faire qu'en 32 bit??si c'est le cas,c'est bon aussi,mais j'ai besoin de savoir qu'est ce qui va pas avec ce code pour ne pas pouvoir crée l'exe et la cause du message "no stack"
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   342
     
    Non (et heureusement, sinon on aurait fait des instructions pour rien), mais si tu développes en 16 bits tu ne dois pas utiliser les registres 32.
    0