Probleme avec HellWorld

anonyme_man_in_this_world Messages postés 161 Date d'inscription samedi 25 juin 2005 Statut Membre Dernière intervention 1 août 2006 - 22 juil. 2005 à 20:36
cs_Vermifuge Messages postés 75 Date d'inscription samedi 23 mars 2002 Statut Membre Dernière intervention 18 septembre 2006 - 30 juil. 2005 à 16:14
salut !!

ça sera simpa si on m'aide à corriger ce code que le compilateur Visual C++

genere 2 erreurs lors sa compilation :
*******************************************************************************
#include <conio.h>

__declspec(naked) void afficher(void)
{
__asm
{
msg DB "Hello World ! $"
mov ah, 09h
mov dx,msg
int 21h
RET
}
}
void main(void)
{
afficher() ;
getch() ;
return ;
}
********************************************************************************
merçi d'avance
A++

3 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
23 juil. 2005 à 02:06
Prends par habitude de spécifier le nbr d'octets à dépiler, même quand c'est 0, ça t'évirera des oublis plus tard.
ret 0

On ne déclare pas de chaines ni quoii que ce soit dans un bloc "__asm". Si tu ne veux pas cette chaine dans ton registre .data, recule ESP et remplis avec les octets correspondant et tu relèveras ESP quand plus besoin.

Emploi des interruptions à bannir en mode protégé, tu te sers des appels console C ou de l'API console de Windows.

ciao...
BruNews, MVP VC++
0
cs_Vermifuge Messages postés 75 Date d'inscription samedi 23 mars 2002 Statut Membre Dernière intervention 18 septembre 2006
30 juil. 2005 à 16:13
Si je me trompe pas, l'int 21h fonctionne en 16bits ( mode VIRTUEL ), donc on peut poa
0
cs_Vermifuge Messages postés 75 Date d'inscription samedi 23 mars 2002 Statut Membre Dernière intervention 18 septembre 2006
30 juil. 2005 à 16:14
Oups, problème de poste, G accroché une touche ( je suis ds un cyber, et le clavier est pas top ), donc je disais :
L'int 21h fonctionne en 16 bits, pour la faire fonctionner ton .exe doit utiliser le mode VIRTUEL du processeur, dans ce mode là, tu peux pas utiliser de code 32bits, là t'as un gros mélange tout pas bo lol

@+
Vermifuge
0