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

 


Dernière réponse
Sujet : Question assembleur
Alkadim Re-up :benetton:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Alkadim Re-up :benetton:
Alkadim Je voudrais vous demander 2 renseignements:
1- Comment utiliser des variables par exemple:
      var1 dd ?
      ensuite je voudrais lui appliquer une valeur du style al
      donc  
      mov var1,al
      expliquez moi si c'est le principe et si elle garde les valeurs longtemps.
 
2- Voila je voudrais recupérer 2 caractère donc j'utilise l'interruption 21 et 0A il me semble puis je sais pas ou sa va ma saisie j'ai l'impression que sa va quelque part avec DX
FroggyFroggyCorp faut rajotuer que pour definir ton random de depart, prend la valeur du timer de l horloge interne qui est pile poil.
Mais dans le principe cest ce que tu as dis quoique moi je mets plus de bordel dans les bits :)
HelloWorld voici un tout petit code tout simple (bien ke j'ai jamais vraiment bien compris comment il fonctionnait !) qui genere des nombres aléatoires.
j'ai pas vérifié s'il générait parfaitement des nombres aléatoires en tout cas il rend bien des services
 

Code :
  1. randseed dw ?
  2. Random PROC NEAR
  3. ;Retourne une valeur aléatoire dans DX
  4.      MOV AX,[RandSeed]
  5. MOV DX,8405h
  6. MUL DX
  7. INC  AX
  8. MOV [RandSeed],AX
  9. RET
  10. Random ENDP


 
ca devrait t'aider pour faire un truc simple qui marche ;)

JPA pour les nombres aléatoires, voir :
http://www.alrj.org/docs/algo/random.php
Tu peux éviter de faire un tel générateur dans ton cas en utilisant l'horloge système, vu que tu n'as besoin que d'un seul nombre : tu interroge l'horloge syst au début du prog,
tu demandes une intervention de l'utilisateur (saisie de son prénom par exemple)
tu interroges à nouveau l'horloge et tu comptes par ex les dixièmes de seconde entre les deux appels (modulo 10) pour avoir un chiffre entre 0 et 9
Désolé de ne plus me rappeler la fonction de l'INT 21 qui appelle l'horloge système.
A+
Alkadim Merci c'est génial j'ai pu  enfin passer les lignes je voulais te demander j'ai consulté le manuel F car j'ai besoin d'obtenir un nombre au hasard délimité donc j'ai cherché  
GENERATE RANDOM NUMBER et je suis tombé sur le virus cofeeshop je cromprend pas c'est les codes des virus ou quoi?
Je suis pour mes début dans la réalisation d'un jackpot je défini un niveau au départ puis je prend un nombre au hasard et la personne doit trouver le nombre en 5 fois voila.
JPA Je complète ma réponse avec un exemple :
Liste des "textes" au début ou à la fin du source (en général à la fin)
Texte1 db "Question sans retour de charriot : $"
Texte2 db "Texte avec retour de charriot",13,10,"$"
RC db 13,10,"$"    
 
MOV DX,offset Texte1
MOV AH,09H
INT 21h
'imprime le texte1 sans retour à la ligne et saut de ligne
 
MOV DX,offset Texte2
MOV AH,09H
INT 21h
'imprime le texte2 avec retour à la ligne et saut de ligne
 
MOV DX,offset RC
MOV AH,09H
INT 21h
'fait un retour à la ligne et un saut de ligne
 
13 est le code du rtour à la ligne (0Dh)
10 est le code du saut de ligne (Line Feed) (0Ah)
A+
JPA C'est pas OAh mais 09h :  
 
INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT
 AH = 09h
 DS:DX -> '$'-terminated string
Return: AL = 24h (the '$' terminating the string, despite official docs which state that nothing is returned) (at least DOS 2.1-7.0 and NWDOS)
 
DS:DX doit pointer sur une chaîne terminée par un $
A+
Alkadim vous êtes sur car quand j'utilise  
MOV AX,0Ah
INT 21h
le programme plante  
Et puis j'ai téléchargé les fichiers et j'ai pas trouvé LINE FEED
Alkadim Merci c'est cool j'aurais peut-être d'autre question plus tard
JPA http://www.cs.cmu.edu/afs/cs.cmu.e [...] files.html
 
Toutes les interruptions en Anglais...
La 21 se trouve dans la Partie B (fichier .zip qui contient un fichier texte nommé interrupt.f qui est celui que tu cherches)
Bonne lecture
JPA pas 0x20 mais plutôt 0x10 (OAh) pour Line Feed
 
L'interruption du DOS est la 21
je peux te retrouver (en cherchant) une URL sur l'interruption 21
A+
FroggyFroggyCorp sa depend comment tu gere l affichage de chr. Si tu le fais en ecrivant directement ds l addr memoire, tu te deplaces pour aller a la ligne suivante
Sinon, si tu fais afficher des chr avec l'interruption DOS (jsais plus c laquelle), tu demandes a faire afficher deux chr, le 0x13 et le 0x20 si je me rappelle bien. ce sont les caractères \n\r.
L'un permet de retourner au debut de la ligne et l'autre va a la ligne suivante
Alkadim Comment passer des lignes dans une fenêtre dos je voudrais ecrire des chaines de caractere mais il me met tous a la suite

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