Bonjour,

Je réapprends l'assembleur grâce au tuto de Docteur Paul Carter sympathiquement traduit en francais. J'utilise les fonctions fournies avec pour l'affichage d'entier et d'autres opérations, je travaille en mode protégé.

Lorsque je souhaite afficher un paramètre en le prenant directement dans la pile, j'ai droit à une erreur bizarre comme quoi une zone ne peut pas être READ. Les fonctions print_int et print_nl marchent très bien, je ne vois pas d'où vient l'erreur.

Bref, voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
;code
segment .text
 
    global _asm_main
_asm_main:
    enter 0,0    ;initialisation
    pusha
 
    push    dword 1
 
    call    fonction
 
    popa
    mov    eax,0
    leave
    ret
 
fonction:
    push    ebp
    mov    ebp,esp
 
    mov    eax,[ebp + 8]
    call    print_int
    call    print_nl
 
    pop    ebp
    ret