Assembleur MASM

Résolu/Fermé
Utilisateur anonyme - Modifié par EchoIsON le 3/02/2016 à 22:24
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 - 28 juin 2016 à 17:00
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

Utilisateur anonyme
7 févr. 2016 à 20:14
Bonsoir,

Personne pour aider SVP...?

EchoIsON.
0
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 725
28 juin 2016 à 17:00
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