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

  FORUM HardWare.fr
  Programmation
  ASM

  [asm & noob] prob avec une INT

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[asm & noob] prob avec une INT

n°195435
Nico5779
Posté le 14-08-2002 à 20:16:26  profilanswer
 

Bonjour a vous,
je debute en asm et ca commence mal :-/
j'essaye de compiler un bete code qui est censé afficher un simple message.
Ca marche sauf que il affiche plus de caractère que ce qui faut
et ca deconne encore plus si je declare plusieur chaine entre "DATA SEGMENT" et "DATA ENDS"
voici ce code:

Code :
  1. Data Segment
  2.    Message DB "bonjour a tous!$"
  3. Data EndS
  4. Code Segment
  5.    Assume Cs : Code, Ds : Data
  6. Main Proc
  7.    Mov Ah, 09h
  8.    Mov Dx, Offset Message
  9.    Int 21h
  10.    mov AH,4CH
  11. Int 21h ;
  12. Int 20h
  13. Main EndP
  14. Code EndS
  15. End Main

 
 
Pourriez vous m'eclairer ??
Merci d'avance pour vos réponses.
:hello:

mood
Publicité
Posté le 14-08-2002 à 20:16:26  profilanswer
 

n°195451
youdontcar​e
Posté le 14-08-2002 à 21:01:16  profilanswer
 

pour déclarer les segments, je ne connais que cette méthode-là : http://www.members.kconline.com/st [...] page6.html

n°195452
youdontcar​e
Posté le 14-08-2002 à 21:02:05  profilanswer
 

mov ax, @data  
mov ds, ax  
 
(ou push @data, pop ds)
 
ds ne doit pas être correctement initialisé.

n°195461
bjone
Insert booze to continue
Posté le 14-08-2002 à 21:28:16  profilanswer
 

youdontcare a écrit a écrit :

mov ax, @data  
mov ds, ax  
 
(ou push @data, pop ds)
 
ds ne doit pas être correctement initialisé.




 
:jap:

n°195503
Nico5779
Posté le 14-08-2002 à 22:27:39  profilanswer
 

youdontcare a écrit a écrit :

mov ax, @data  
mov ds, ax  
 
(ou push @data, pop ds)
 
ds ne doit pas être correctement initialisé.




 
Merci a toi,
j'ai tester le code que t'as lié.
Mais @data semble poser poser probleme.
 
Je compile avec tasm,je c pas si ca a un rapport,
ca me met ca comme erreur.

Code :
  1. Assembling file:   hello.asm
  2. **Error** hello.asm(31) Undefined symbol: @DATA
  3. Error messages:    1
  4. Warning messages:  None
  5. Passes:            1
  6. Remaining memory:  471k


 

n°195504
youdontcar​e
Posté le 14-08-2002 à 22:36:28  profilanswer
 

as-tu essayé en mettant
 
.model small
.data
 
message db "...$"
 
.code
 
push @data  
....
 
?
 
je n'ai jamais utilisé la syntaxe "data segment" & co.

n°195505
Nico5779
Posté le 14-08-2002 à 22:44:29  profilanswer
 

youdontcare a écrit a écrit :

as-tu essayé en mettant
 
.model small
.data
 
message db "...$"
 
.code
 
push @data  
....
 
?
 
je n'ai jamais utilisé la syntaxe "data segment" & co.




 
thx  :jap:  ca marche  :hap:  
j'ai utilser ca avec 'mov ax, @data' et la plus d'erreur et ca marche parfaitement.
Merci a toi youdontcare.
 
 

n°195550
Nico5779
Posté le 15-08-2002 à 00:52:01  profilanswer
 

encore une ptite question y as t'il un fonction de l'interruption 21h qui permet d'afficher en decimal le contenu de dx?

n°195551
youdontcar​e
Posté le 15-08-2002 à 00:58:33  profilanswer
 

je ne crois pas. en tout cas si elle existe, je ne l'ai jamais trouvée ...
 
comment faire ? tu veux afficher 192. tu divises par 10, il reste 19. tu remultiplies et prends la différence : 192 - 19*10 = 2. 19 / 10 = 1, 19 - 1*10 = 9. reste un nombre en dessous de 10. ensuite, il suffit de rajouter le caractère '0' au nombre pour l'afficher (eg add al, '0';)

n°195552
Nico5779
Posté le 15-08-2002 à 01:10:35  profilanswer
 

youdontcare a écrit a écrit :

je ne crois pas. en tout cas si elle existe, je ne l'ai jamais trouvée ...
 
comment faire ? tu veux afficher 192. tu divises par 10, il reste 19. tu remultiplies et prends la différence : 192 - 19*10 = 2. 19 / 10 = 1, 19 - 1*10 = 9. reste un nombre en dessous de 10. ensuite, il suffit de rajouter le caractère '0' au nombre pour l'afficher (eg add al, '0';)




Dommage,je v essayer ta methode,mais demain paske la j'en ai marre de reflechir en binaire.
 :sleep:  
en tout je crois que j'ai compris ,c logique en fait tu extrait chaque digit un a un.
 :jap: Encore merci ydc.


Message édité par Nico5779 le 15-08-2002 à 01:10:57

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

  [asm & noob] prob avec une INT

 

Sujets relatifs
[PHP]prob mysql[CSS] Question a 1000 balles. prob trop chelou
[TCL] Prob script eggdrop- equivalent de sleep en TCL ??Prob recuperation valeur cookie...
Prob à l'install [delphi 4 pro}prob avec XP
prob d'insertion d'enregistrement dans une DB access 97 [ Résolu ! ]petit prob avec UDP
prob d'heure[PHP] [noob] récupérer un argument donné dans l'URL [résolu]
Plus de sujets relatifs à : [asm & noob] prob avec une INT


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