Saludos.
He aquí un ejemplo, espero sea de utilidad
pixel macro x,y,colors
mov ah,0ch
mov al,colors
mov cx,x
mov dx,y
int 10h
endm
.model small
.stack 520h
.data
fijax dw 320
fijay dw 240
varx dw ?
vary dw ?
limx dw 349
cont db 0
color1 db 04
color2 db 01
.code
inicio:
mov ax,@data
mov ds,ax
push ds
pop es
mov ah,00h ;modo gráfico
mov al,12h ;640x480 color
mov bh,00h ;pagina 0
mov bl,00h ;fondo negro de la pantalla
int 10h
;.....................................rutina de contorno
mov cx,fijax
mov varx,cx
mov dx,fijay
mov vary,dx
line1:
pixel varx,vary,color1
cmp cx,351
je line2
inc varx
jmp line1
line2:
pixel varx,vary,color1
cmp dx,224
je line3
dec varx
dec vary
jmp line2
line3:
pixel varx,vary,color1
cmp dx,240
je fil
dec varx
inc vary
jmp line3
;.....................................rutina de relleno
fil:
inc fijax
dec fijay
mov cx,fijax
mov varx,cx
mov dx,fijay
mov vary,dx
fil1:
pixel varx,vary,color2
cmp cx,limx
je ok1
inc varx
jmp fil1
ok1:
inc cont
cmp cont,15
je key
dec limx
jmp fil
;...............................................................................
key:
mov ah,08h ;teclado
int 21h
salir:
mov ah,00h
mov al,03h
int 10h
mov ax,4c00h
int 21h
end inicio