Assembleur MASM

Résolu
Utilisateur anonyme -  
Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,

J'aimerais créer une boucle en assembleur MASM, affichant "Hello" 100 fois, pourriez-vous me dire pourquoi mon code ne marche pas s'il vous plait ?

.386
.model flat, stdcall
option casemap : none

include \masm32\include\masm32rt.inc
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.code


salut :
 mov ecx, 0
 .While ecx < 100
  print "Hello !",10
  inc ecx
 .endw
inkey
exit
end salut


Ou celui là

.386
.model flat, stdcall
option casemap : none

include \masm32\include\masm32rt.inc
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.code


salut :
	mov ecx, 0
	boucle:
	cmp ecx, 100
	ja finBoucle
	print "Hello !", 10
	inc ecx
	finBoucle:
inkey
exit
end salut


Merci.
EchoIsON

2 réponses

  1. Utilisateur anonyme
     
    Bonsoir,

    Personne pour aider SVP...?

    EchoIsON.
    0
  2. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
     
    Je touche pas à masm, mais voici la même avec nasm :

    section .text
    global _start
    
    _start:
            mov r12,0		; r12 = 0; 
    
    loop:
            mov rax,4
            mov rbx,1
            mov rcx, hello
            mov rdx, helloLen
            int 80h			; syscall(SYS_WRITE, STDOUT, hello, helloLen)
            inc r12			; r12++;
            cmp r12, 3              ; if (r12 < 3)
            jb loop 		;   goto loop;
    
            mov rax,1		; sys_exit
            mov rbx,0 		; code 0 (EXIT_SUCCESS)
            int 80h			; syscall(SYS_EXIT, EXIT_SUCCESS);
    
    section .data
    hello:     db 'Coucou hibou!',10
    helloLen:  equ $-hello
    


    0