Dessiner des pixels mode graphique 320x200 en 256 couleurs

Soyez le premier à donner votre avis sur cette source.

Vue 7 146 fois - Téléchargée 637 fois

Description

Passe en mode graphique et dessine des pixels, ce programme utilise une procédure il suffit de mettre les coordonnées du pixel (x dans bx, y dans cx et le code couleur dans dl) et d'appeler la procédure.

Source / Exemple :


.Data

.code
	        mov     ax, 13h                 ; Passe en mode graphique VGA 320x200x256
        	int     10h                     

		mov	bx,00h			; x
		mov	dx,00h			; couleur
		mov	cx,00h			; y

NextPix:	call	Pixel			; Dessinne 1 pixel
		inc	dx			; Incremente couleur
		mov	bx,dx			; Choisit un autre pixel
		mov	cx,dx
		cmp	bx,0FFh			; Si bx <> 320 on dessine le pix suivant
		jne	Nextpix

KeyQuit:	mov     ah,1                    ; attand l'appuye d'une touche
		int     16h
		je	KeyQuit

		mov     ax,0003h		; Retour en mode texte 80x25x16
		int     10h

		mov     ax,4C00h		; Bye!
		int     21h

Pixel:		; ax = rien	bx = x (m)	cx = y (m)	dl = couleur
		mov	es,0a000h        	; segment : carte video
		imul	cx,0140h		; multiplie cx par 320
		add	bx,cx			; cx est ajouté à la base
		mov	es:[bx],dl		; Dessine le pixel décrit dans dl
		ret

Conclusion :


Note importante : le continu des registres es, cx et bx sont modifiées par l'exécution de cette procédure. De plus si les coordonnées x et y indiquent un point à l'extérieur de l'écran alors le pixel sera affiché à un autre endroit.

C'est mon premier prog en assembleur.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
140
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
19 novembre 2006

ça marche pas avec MAsm, le registre es sur 16bit est trop petit pour une caleur 32bits

what the fuck ?


je débute en asm alors parfois je suis completement à coter de la plaque ;)
Messages postés
104
Date d'inscription
samedi 7 décembre 2002
Statut
Membre
Dernière intervention
17 août 2009

merci
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
6 décembre 2006

j'aime bien ton code.
en plus il utilise les interruption bios, ça peut être utile pour un petit OS marrant.
@++
Merci

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.