Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1121 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  Assembleur sous DOS avec NASM

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Assembleur sous DOS avec NASM

n°860981
seccas
Posté le 30-09-2004 à 14:13:07  profilanswer
 

Voici deux code a priori identiques, si ce n'est la chaine de caractères qui diffère :

ORG 100h
 
SECTION .DATA
message DB 'Hello, World !','$'
 
SECTION .TEXT
 MOV AX,0900h
 MOV DX,message
 INT 21h
 
 MOV AX,4C00h
 INT 21h


ORG 100h
 
SECTION .DATA
message DB 'Tapez un caractere !','$'
 
SECTION .TEXT
 MOV AX,0900h
 MOV DX,message
 INT 21h
 
 MOV AX,4C00h
 INT 21h


 
Seulement, voila : le premier se compile et fonctionne (il affiche "Hello, World !" ), mais le deuxième se compile, puis à l'excution affiche plein de caractères incompréhensibles, puis fait planter la fenêtre DOS.
Voici les différentes hypothèses que j'ai envisagé, dont aucune ne s'est avérée exacte :

  • caractères accentués : il n'y en a pas
  • erreur de frappe dans le reste du code : non, un simple changement dans la chaine de caractère suffit à observer la différence
  • problème de "taille", j'ai essayé de remplacer DB par DW mais ça ne change rien

Alors, quel est votre avis ?
Je précise que je débute dans la programmation en assembleur.

mood
Publicité
Posté le 30-09-2004 à 14:13:07  profilanswer
 

n°861105
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-09-2004 à 15:54:23  profilanswer
 

essaie d'insérer un  

Code :
  1. mov AX,OC00h
  2. int 21h


juste avant d'écrire le message (ça flushe le buffer de sortie)


---------------
J'ai un string dans l'array (Paris Hilton)
n°861241
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-09-2004 à 18:19:31  profilanswer
 

tiens, j'avais pas vu ça :

Code :
  1. SECTION .DATA
  2. message DB 'Tapez un caractere !','$'


essaie plutot ça :

Code :
  1. SECTION .data // en minuscules le .data
  2. message DB 'Tapez un caractere !',13,10,'$' // t'as oublié la fin de ligne
  3. SECTION .text // le .text en minuscules aussi
  4. [...]



---------------
J'ai un string dans l'array (Paris Hilton)
n°861297
seccas
Posté le 30-09-2004 à 19:17:32  profilanswer
 

merci en effet c'était bien un problème de casse
n'empêche que je comprends toujours pas pourquoi ça marchait avec "Hello, World !"

n°861340
seccas
Posté le 30-09-2004 à 20:06:00  profilanswer
 

Dans l'élan, je pose une autre question : comment demander une chaine de caractères à l'utilisateur (toujours sous DOS) ?
J'ai essayé avec ce code :

(...)
chaine  RESB 20
(...)
MOV AX,0A00h
LEA DX,[chaine]
INT 21h
(...)


Mais que faire après ? Lorsque j'essaie d'afficher le contenu de nom, je fais planter le DOS.


Message édité par seccas le 30-09-2004 à 20:06:29

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  Assembleur sous DOS avec NASM

 

Sujets relatifs
MS DOSPoser une question sous dos et obtenir un paramètre en retour?
Quel debuggeur 16 bits marchant sous dos ?Programmation assembleur 80x86
Windows peut il controler un prog executé en assembleur?Temporisation en DOS
Commande DOS : uploader un fichier[BATCH-DOS]question a l'utilsateur et enregistrement de variable??
[batch dos RESOLU] lire nombre dans fichier et l'exploiter pour calculPowerBatch pour MS-DOS
Plus de sujets relatifs à : Assembleur sous DOS avec NASM


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR