Accueil > Forum > > > > probleme affichage cadre
probleme affichage cadre
jeudi 10 février 2005 à 15:36:27 |
probleme affichage cadre

jo_benni
|
Salut à tous, voilà je débute en assembleur et j'ai fait un petit programme exe qui affiche une succession de cadre de plus en plus grand. Le probleme c que lorsque la longueur d'un côté du carré dépasse 255, ca affiche n'importe quoi ! j'ai essayé de parer à ce problème mais sans succès. Je vous laisse juger par vous-même. Si quelqu'un pouvais résoudre ce problème, ca serai cool!
Merci
ps : j'utilise tasm
-------------------------------------------------------
.386
code segment use16
assume cs:code, ds:data, ss:pile
debut:
mov ax, data mov ds, ax
;passage au mode video (640x480) mov ah, 00h mov al, 12h int 10h
mov ax, 0 push ax
répétition_cadre: pop ax push ax sub x1, ax sub y1, ax mov dl, 2 mul dl add word ptr ds:[longueur], ax
push x1 y1 0 2 ;dessine un carré (x, y, orientation, couleur) call dessine push x1 y1 1 2 call dessine pop ax push ax add y2, ax push x1 y2 0 2 call dessine
pop ax push ax add x3, ax sub y3, ax push x3 y3 1 2 call dessine add compteur, 01d pop ax push ax cmp ax, 0 jne ajout_pas_5 pop ax add ax, 5 push ax ajout_pas_5: cmp compteur, 26 jne répétition_cadre
;attente frappe touche frappe: mov ah, 01h int 16h ;vérifie le buffer pour voir si une touche du clavier a été enfoncée je frappe ;si buffer vide, on attend une frappe mov ah, 00h ;sinon on vide le buffer int 16h
;retour au mode text mov ah, 00h mov al, 00h int 10h
;arrêt programme mov ah, 4ch int 21h
dessine proc near ;sauvegarde adresse début pile mov bp, sp
mov ah, 0ch mov al, ss:[bp+2] ;couleur mov cx, ss:[bp+8] ;x mov dx, ss:[bp+6] ;y int 10h mov bl, ss:[bp+4] ;orientation cmp bl, 1 je trait_vertical trait_horizontal: mov bx, ds:[longueur] boucle_h: dec bx inc cx int 10h cmp bx, 0 jne boucle_h jmp fin_dessine trait_vertical: mov bx, ds:[longueur] boucle_v: dec bx inc dx int 10h cmp bx, 0 jne boucle_v fin_dessine: ret 8 dessine endp
code ends
data segment use16 x1 dw 315 y1 dw 235 y2 dw 245 x3 dw 325 y3 dw 235 longueur dw 10 compteur db 0 data ends
pile segment stack
remplissage dw 256 DUP (?)
pile ends
end debut
|
|
vendredi 11 février 2005 à 10:54:00 |
Re : probleme affichage cadre
|
vendredi 11 février 2005 à 14:15:38 |
Re : probleme affichage cadre

jo_benni
|
Ben j'ai modifié mon programme en me servant d'une variable
interval_cadre que j'ai du déclarer en "dw" et pas en "db" - je
sais pas pourquoi lol - pour éviter tous ces pop ax push ax !
Ca marche toujours pas, je sais pas quoi faire, ca vient peut être de
l'interruption 10h mais normalement non puisqu'elle se sert des
registres cx et dx pour les coordonées des points !
Si quelqu'un trouve une solution...
----------------------------------------------------------------------------------------
.386
code segment use16
assume cs:code, ds:data, ss:pile
debut:
mov ax, data
mov ds, ax
;passage au mode video (640x480)
mov ah, 00h
mov al, 12h
int 10h
répétition_cadre:
mov ax, ds:[interval_cadre]
sub word ptr ds:[x1], ax
sub word ptr ds:[y1], ax
mov dl, 2
mul dl
add word ptr ds:[longueur], ax
push x1 y1 0 couleur ;dessine un carré (x, y, orientation, couleur)
call dessine
push x1 y1 1 couleur
call dessine
mov ax, ds:[interval_cadre]
add word ptr ds:[y2], ax
push x1 y2 0 couleur
call dessine
mov ax, ds:[interval_cadre]
add word ptr ds:[x3], ax
sub word ptr ds:[y3], ax
push x3 y3 1 couleur
call dessine
add byte ptr ds:[compteur], 01d
cmp interval_cadre, 0
jne ajout_pas_5
add word ptr ds:[interval_cadre], 5
ajout_pas_5:
cmp compteur, 26
jne répétition_cadre
;attente frappe touche
frappe:
mov ah, 01h
int
16h
;vérifie le buffer pour voir si une touche du clavier a été enfoncée
je frappe ;si buffer vide, on attend une frappe
mov ah, 00h ;sinon on vide le buffer
int 16h
;retour au mode text
mov ah, 00h
mov al, 00h
int 10h
;arrêt programme
mov ah, 4ch
int 21h
dessine proc near
;sauvegarde adresse début pile
mov bp, sp
mov ah, 0ch
mov al, ss:[bp+2] ;couleur
mov cx, ss:[bp+8] ;x
mov dx, ss:[bp+6] ;y
int 10h
mov bl, ss:[bp+4] ;orientation
cmp bl, 1
je trait_vertical
trait_horizontal:
mov bx, ds:[longueur]
boucle_h:
dec bx
inc cx
int 10h
cmp bx, 0
jne boucle_h
jmp fin_dessine
trait_vertical:
mov bx, ds:[longueur]
boucle_v:
dec bx
inc dx
int 10h
cmp bx, 0
jne boucle_v
fin_dessine:
ret 8
dessine endp
code ends
data segment use16
x1 dw 315
y1 dw 235
y2 dw 245
x3 dw 325
y3 dw 235
longueur dw 10
compteur db 0
interval_cadre dw 0
couleur dw 2
data ends
pile segment stack
remplissage db 256 DUP (?)
pile ends
end debut
-------------------------------------------------------------------------------------------
|
|
Cette discussion est classée dans : mov, dessine, ax, push, dw
Répondre à ce message
Sujets en rapport avec ce message
probleme pour un petit programme [ par djorb8 ]
Bonjour a tous, je debute en assembleur et pour mes cours je doit realiser un petit programme pour calculler un volume dont voici la formule : pi*h*[(
petit probleme de debutant [ par freekc ]
j'essaie de faire un ptit prog que lorsque l'on rentre son nom prenom etc . Il y est un recapitulatif qui se mette en dessous ms lorsque que le recapi
Ancien code - CreateWindowEx ne fonctionne pas [ par TehWan ]
Je ne comprends vraiment pas pourquoi CreateWindowEx ne fonctionne pas. Je code en ancien code avec MASM32. J'ai même essayé la nouvelle syntaxe (invo
erreur compilation [ par greg4 ]
je voudrai compiler--------------------------------------.model tiny.dataHelloMessage db 13,10,'Hello World !',13,10,'$'.codeorg 100hstart: mov ax,@d
loader problème de code [ par TRAX44 ]
salut tout le monde !!g essayer de faire un loader (petit prog qui charge un autre prog) mais c un desartre je comprend pas très bien ce qui ne marche
Problème d'adresse effective [ par Ihlianov ]
Hi,J'ai un problème avec NASM, qui me rend cinglé.Je code un .Com (16 bits) et il me revoit une erreur sur l'instruction suivante : mov ax, [d
probleme de conversation de hexa en ascii [ par wapiti ]
voici le programme qui converti du binaire en ascii.model small.stack;--------------------------------------------------------------------------------
Conversion hexa vers ascii [ par Cygace ]
Bonjour voici un code asm qui convertit un nombre binaire vers de l'ascii. Mais je dois modifiier ce code pour qu'il convertisse de l'hexadecimal vers
lecture / ouverture d'un fichier txt en assembleur [ par rana ]
est ce quelaqu un pourrait m aider a corriger ma macro de lecture d'un fichier txt et l'ouverture d'un fichier txt, voila les macro (pb au niveau du
rs232 [ par TRAX44 ]
salut,tout premièrement je sais qu'il ya des exemples sur le site!mais mon problème est autre je tiens à comprendre pourquoi mon code ne fonctionne pa
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE
Forum
ASSEMBLEURASSEMBLEUR par solleil
Cliquez pour lire la suite par solleil RE : CSHARPRE : CSHARP par ghuysmans99
Cliquez pour lire la suite par ghuysmans99
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|