global _start
section .data
section.text
_start:
call pantallaGrafica
mov ah,0Ch ;Coloca un pixel en pantalla
mov al,07h ;color gris
mov bh,00h ;página
mov cx,250d ;posición X, Inicio
mov bp,200d ;posición Y. Inicio
mov si,280d ;posición Y. Final
mov di,350d ;posición X. Final
call colorearCuadrado
mov ah,0Ch ;Coloca un pixel en pantalla
mov al,06h ;color gris
mov bh,00h ;página
mov cx,240d ;posición X, Inicio
mov bp,190d ;posición Y. Inicio
mov si,200d ;posición Y. Final
mov di,360d ;posición X. Final
call colorearCuadrado
mov ah,0Ch ;Coloca un pixel en pantalla
mov al,03h ;color gris
mov bh,00h ;página
mov cx,260d ;posición X, Inicio
mov bp,220d ;posición Y. Inicio
mov si,250d ;posición Y. Final
mov di,290d ;posición X. Final
call colorearCuadrado
mov ah,0Ch ;Coloca un pixel en pantalla
mov al,06h ;color gris
mov bh,00h ;página
mov cx,315d ;posición X, Inicio
mov bp,240d ;posición Y. Inicio
mov si,280d ;posición Y. Final
mov di,340d ;posición X. Final
call colorearCuadrado
call cerrar
int 10h
pantallaGrafica:
mov ah,00h
mov al,12h ;640x480(16 colores)
int 10h
ret
cerrar:
mov ah,00h
int 16h
cmp al,'s'
jne cerrar
ret
lineaHorizontal:
int 10h
inc cx
cmp cx,si
jbe lineaHorizontal
ret
lineaVertical:
int 10h
inc dx
cmp dx,si
jbe lineaVertical
ret
lineaOblicua:
int 10h
inc dx
inc cx
cmp dx,si
jbe lineaOblicua
ret
colorearCuadrado:
mov dx,bp ;posición Y
call lineaVertical
inc cx
cmp cx,di
jbe colorearCuadrado
ret
colorearTriangulo:
mov dx,bp ;posición Y
call lineaVertical
inc bp
inc cx
cmp cx,di
jb colorearTriangulo
ret