Pixel (x,y) en mode 1280x1024

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 666 fois - Téléchargée 30 fois

Contenu du snippet

C'est une fonction qui affiche un pixel dans un ecran de 1280 par 1024 pixel si on lui passe les coordonnees et la couleur.

Source / Exemple :


affiche		proc near
		pusha
		push	ds
		push	ax
		mov	ax,1280
		mov	bx,dx
		xor	dx,dx
		mul	bx
		push	ax
		add	ax,cx
		pop	cx
		cmp	ax,cx
		jae	continue
		inc	dx
continue:
		push	ax
		mov	ax,4f05h
		mov	bx,0
		int	10h
		mov	ax,0a000h
		mov	ds,ax
		pop	ax
		mov	si,ax
		pop	ax
		mov	[si],al
		pop	ds
		popa
		ret
affiche		endp

Conclusion :


les coordonnees sont passee par cx et dx et la couleur par al.
Je l'ai optimise autant que possible.
Elle restitue tous les registres et n'utilise aucune variable.

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
jeudi 16 novembre 2006
Statut
Membre
Dernière intervention
13 décembre 2006

c'est du 68xxx ca? du x86 peut-etre.
Messages postés
1
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
14 août 2004

Et pour l'opération inverse ?
C-à-d récupérer la valeur d'une couleur à un point (x,y) donné ?
Messages postés
12
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
11 juin 2003

Il faudrait remplacer "mov ax,1280" par "mov ax,1024" et eviter de passer une ordonnee superieure à 786.
Messages postés
70
Date d'inscription
vendredi 22 février 2002
Statut
Membre
Dernière intervention
13 novembre 2003

Que changer pour afficher sur un écran 786*1024?
Messages postés
12
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
11 juin 2003

"Je l'ai optimise autant que possible" signifie que je l'ai optimise autant qu'il m'a ete possible: au depart, il ete 5 fois plus long et utilisait des variables. Je considere qu'il est particulierement bien optimise par rapport à la premiere version mais toute idee est la bienvenue.
Il faut dire qu'à l'epoque où je l'ai cree, j'optimisais encore tout à la main.
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.