gotoxy, leer y write con procedimientos (No macros)

Creación de los procecimientos gotoxy, leer caracter y write utilizando procedimientos (no macros)

Búsqueda de ejemplos en Ensamblador
;Autor Victor De la Rocha
;URL http://www.mis-algoritmos.com

.model small
.stack
.data
        cad db 5 dup(\' \'),\'$\'
.code
.startup
        gotoxy proto c, x: byte, y: byte
        call cls
        invoke gotoxy,10,10
        call leer
        call cls
        invoke gotoxy,5,6
        call write
.exit
       
        write proc
                mov ah,09h
                lea dx,cad
                int 21h
                ret
        write endp

        leer proc
                        mov si,00
                        mov ah,01h
                        otro:
                        .repeat
                                int 21h
                                cmp al,13
                                        je salir
                                mov cad[si],al
                                inc si
                        .until (si==5)
                        salir:
                ret
                leer endp

        gotoxy proc c, x: byte, y: byte
                        mov ah,02h
                        mov dh,y
                        mov dl,x
                        mov bh,0
                        int 10h
                        ret
                gotoxy endp

        cls proc
                        mov ah,00
                        mov al,03
                        mov bh,00
                        int 10h
                        ret
                cls endp
end