Bonjour tout le monde
SVP je veux savoir si je peux donner les valeurs d'un registre, ax par exemple, à une variable. Si oui comment pourrais-je le faire ?
Merci infiniment.
Bonjour tout le monde
SVP je veux savoir si je peux donner les valeurs d'un registre, ax par exemple, à une variable. Si oui comment pourrais-je le faire ?
Merci infiniment.
En assembleur, il n'y a pas de variables. Tu travailles avec des registres et des adresses.
Tu peux tout à fait copier le contenu d'un registre à une adresse comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 mov ax,[variable] variable dw 0
Merci beaucoup pour votre aide, s'il vous plaît j'ai un autre point que j'aimerais savoir, c'est comment insérer un sprite en Assembleur et le déplacer.
Pour passer de l'affectation du contenu du registre dans une adresse à la gestion de sprites, il va te falloir quelques leçons.
Commence par te documenter sur le fonctionnement d'affichage de points en assembleur, et on verra après pour les sprites.
En assembleur mode réel, documente-toi sur les modes d'affichage notamment en mode VESA via l'int 10h, puis cherche à afficher des points à un endroit bien précis.
J'ai essayé de faire un code pour qu'un caractère se déplace mais ça va trop vite, comment puis-je le ralentir, et merci pour la dernière réponse je vais chercher, merci beaucoup. Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 MOV AX, 0B800h ; On initialise le registre DS a B800h qui correspond au debut de la memoire video MOV DS, AX MOV AX, 02000h ; On initialise le registre ES a 2000h pour stocker des valeurs necessaires au fonctionnement du jeu MOV ES, AX PUSH AX PUSH BX PUSH CX PUSH DX MOV AX, 02h MOV BX, 00h MOV CX, 23 ; On a 23 lignes MOV DX, 0A0h cadre2: MOV [0140h + BX], 0xB2h MOV [0140h + BX], 0xFFh ADD BX, 0A0h LOOP cadre2
Pense à utiliser les balises code quand tu en insères (le # de l'éditeur).
Si ton caractère se déplace trop vite, il te faut faire une temporisation, ton programme attendra la fin de celle-ci avant réexecution de la boucle. Le mieux pour cela est faire une temporisation à l'aide du timer. Pour débuter tu peux utiliser les fonctions intégrées au BIOS (recherche à faire sur timer bios).
d'accord merci bcp je vais chercher comment faire cette temporisation.
comme je suis un mec super sympa : interruption 15h fonction 86h
Je voulais le laisser chercher tout seul, c'est un bon exercice.
Forthman quand il était jeune devait sûrement filer la réponse a ces petits copains
Du coup il a gardé l'habitude ^^
même pas non
Mais parfois c'est pas évident de savoir quoi chercher. alors je lui ai montré la direction
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager