Programa dibuja un cuadro, puede ser de dos tipos con líneas dobles o con líneas simples, se utilizan procedimientos.
;programa que dibija un cuadro doble o simple, se utilizan 3
;procedimientos gotoxy, writec y porsupuesto cuadro
.model tiny
.stack
.data
car_f db 0
car_c db 0
car_is db 0
car_ii db 0
car_ds db 0
car_di db 0
.code
.startup
writec proto c, car:byte
gotoxy proto c, fil:byte, col:byte
cuadro proto c, fi:byte, ff:byte, ci:byte, cf:byte, tipo:byte
invoke cuadro, 5,20,5,20,'s'
.exit
writec proc c, car:byte ;escribe un caracter
mov ah,02h
mov dl,car
int 21h
ret
writec endp
gotoxy proc c, fil:byte, col:byte ;procedimiento con parametro
mov ah,02h ;posicionar el cursor
mov dh,fil ;fila
mov dl,col ;columna
mov bh,0 ;pagina de video
int 10h
ret
gotoxy endp
cuadro proc c, fi:byte, ff:byte, ci:byte, cf:byte, tipo:byte
cmp tipo,'d' ;comparo si el tipo es doble
je doble
jne simple
doble: ;caracteres para el cuadro doble
mov car_f,205
mov car_c,186
mov car_is,201
mov car_ii,200
mov car_ds,187
mov car_di,188
jmp continua
simple: ;caracteres oara el cuadro simple
mov car_f,196
mov car_c,179
mov car_is,218
mov car_ii,192
mov car_ds,191
mov car_di,217
continua:
mov cl,ci
etiqueta: ;ciclo para mostrar las filas supe y infe
invoke gotoxy, fi,cl
invoke writec, car_f
invoke gotoxy, ff,cl
invoke writec, car_f
inc cl
cmp cl,cf
jne etiqueta ;ciclo aumenta + 1
mov cl,fi
etiqueta2: ;mostrar las columnas izq y der
invoke gotoxy, cl,ci ;columna izquierda
invoke writec, car_c
invoke gotoxy, cl,cf ;columna derecha
invoke writec, car_c
inc cl
cmp cl,ff
jne etiqueta2 ;ciclo aumenta + 1
invoke gotoxy, fi,ci ;mostrar el codo superior izq
invoke writec, car_is
invoke gotoxy, fi,cf ;mostrar el codo superior der
invoke writec, car_ds
invoke gotoxy, ff,ci ;mostrar el codo inferior izq
invoke writec, car_ii
invoke gotoxy, ff,cf;mostrar el codo inferior der
invoke writec, car_di
ret
cuadro endp
end
Descargar