begin process at 2010 03 16 15:46:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

Deplacement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Deplacement

jeudi 17 janvier 2008 à 01:50:22 | Deplacement

FireMan57

Bonjour, je débute en asm x86 et j'aimerais savoir comment faire pour effectuer correctement le déplacement d'un personnage en mode graphique. J'ai déjà tenter quelque chose mais les touches utilisées ne sont pas bonnes et au lieu de simplement se déplacer mon "personnage" trace une ligne . Merci de votre aide voici mon morceau de code :

;---------PACMAN-------------------------------------------------------------------

                                                                         
    ;apparution
         mov si,y      ;mise en place de pacman
          imul si,320
          add si,x
        
         mov byte ptr es:[si],6  ; chiffre = couleur      
                                               
                                                                         
        

    ;deplacement
        mov ah,1     ;attente touche
        int 16h
       
        jz rien        ;pas de touche
       
        mov ah,0     ;touche
        int 16h

   
         cmp al,'p'
         jne quit
        
         jmp fini 
        
  quit:      
         cmp al,'z'        
         jne pashaut                                                        
         
         mov ax,0                                                     
         add x,ax
         mov ax,-1                                                     
         add y,ax                                                     
        
         jmp rien                                                   
  pashaut:                                                                  
         cmp al,'s'        
         jne pasbas                                                        
                                                             
         mov ax,0                                                     
         add x,ax
         mov ax,1                                                     
         add y,ax
        
         jmp rien                                                   
  pasbas:                                                                  
         cmp al,'q'        
         jne pasgauche 
                                                               
         mov ax,-1                                                     
         add x,ax
         mov ax,0                                                     
         add y,ax
                                                               
         jmp rien                                                   
  pasgauche:                                                                  
         cmp al,'d'        
         jne rien
                                                           
         mov ax,1                                                     
         add x,ax
         mov ax,0                                                     
         add y,ax

   
   
rien:   

    
;---------bouclage-----------------------------------------------------------------

    jmp boucle

 
jeudi 17 janvier 2008 à 08:25:21 | Re : Deplacement

Nasman

Bonjour Fireman57,

Je pense que ton problème vient du fait que tu dessines ton personnage quand tu le déplaces mais que tu ne restaures pas l'ancien emplacement. Il faudrait cependant que tu précises la résolution de ton écran (320 colonnes ?) et les boucles d'attente.

Nota: Pourquoi ajouter 0 à un nombre, à quoi celà sert-il ?

Pour mettre à zéro un registre, préférer xor registre,registre

A+

jeudi 17 janvier 2008 à 11:02:37 | Re : Deplacement

FireMan57

Pour ce qui est du mode graphqie c'est celui-ci :


    mov ax,13h ;mode video320*200 remplit de 0
    int 10h   

    mov ax,0a000h ;=ES  (mémoire vidéo)                     
    mov es,ax  

je pensais que remttre un zero a ce nombre m'anulerai sa position précédente.
Il faut donc que j'utilise xor est-il possible d'avoir une exemple pour un mouvement vers la drotie par exemple ?

Je vous remercie.




Cette discussion est classée dans : add, mov, ax, al, cmp


Répondre à ce message

Sujets en rapport avec ce message

probleme de conversation de hexa en ascii [ par wapiti ] voici le programme qui converti du binaire en ascii.model small.stack;-------------------------------------------------------------------------------- Multiplication de deux nombres compris entre 0 et 99 en assembleur [ par petitspirou ] salut, j'ai un programme a faire mais je suis nul en assembleur, voici ce que j'ai fais mais ca ne fonctionne pas.Quelqun peut'il me le corriger et me Kernel qui n'est pas chargé par le bootloader [ par JB_59 ] Salut tout le monde !Voilà j'ai un problème de chargement de Kernel; j'ai codé un boot loader en asm qui m'affiche la phrase "Chargement du kernel..." probleme avec un bootloader [ par anonyme_man_in_this_world ] salut !! je voudrais coder un bootloader , tous ce compile bien ,je copie / colle le fichier .BIN dans une disquette ,mais lors le redemmarrage d fatal error LNK1190 [ par WildChild54 ] Bonjour à tous!Eh bien voilà, je voudrais créer un petit programme affichant l'heure (je sais il y en a déjà plusieurs qui en ont parlé ici) mais j'ai tp assembleur i3 pour la FST [ par babbiverus ] main proc mov ax,@Datamov ds, axmov si,offset tabmov cx, 16mov bx,0saisie:  mov dx,offset commande;afficher "saisir un nombre"mov ah,9int 21hmov ah, 1 asm dos sous xp probleme adressage memoire ecran [ par blood01 ] Bonjour, Voilà, j'ai toujours aimé programmer à mes heures perdues et depuis tout un temps, j'ai décidé de me lancer dans l'assembleur, j'ai d'abord f question sur le language asm [ par dyroj ] bonjour,j'ai qulque question sur l'asm :-quand je fait un : mov ax, 10 , quesqui va dans le registre (ladresse de 10 dans la ram, ou 10).-pourquoi se message d'erreur [ par kaka83185 ] slt a tous, je suis débutant en langage assembleur,j'essaye de faire mon premier programme en MASM, et c'est en fait l'addition d'un nombre avec un au pb avec JMP [ par kaka83185 ] salut tous le monde,je reste comme d'habitude,débutant en assembleur,je travaille avec emu8086,et j'essaye de faire un programme qui fait les branchem


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales