Desplaza una palabra arriba y abajo, según la tecla presionada

Funciona con las teclas 1, 2 y 3. La tecla 1 permite bajar, la 2 subir, y la 13 (Tecla ENTER) salir.

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

.model small
.stack
.data
       
        msg db 'mis-algoritmos.com$'
        fle db ?
       
.code
.startup
       
        ;cls
                mov ah,00h                      ;Set video mode
                mov al,03h                      ;mode
                int 10h                         ;Interrupcion de video

        ;posición
                mov ah,02h                      ;Salida
                mov dh,08                       ;row
                mov dl,02                       ;columna
                int 10h                         ;interrupcion de video

        ;mensaje
                mov ah,09h                      ;Print string
                lea dx,msg                      ;
                int 21h                         ;Interrupcion de DOS

        movimiento:     ;Determina movimiento a realizar
                mov ah,07h                      ;Direct STDIN input, no echo
                int 21h                         ;interrupcion de DOS
                jmp compara                     ;VERIFICAMOS EL CARACTER INTRODUCIDO

        subir:
                mov ah,06h                      ;Scroll page up
                mov al,1                        ;Number of lines to scroll window (0=blank whole window)
                mov bh,01h                      ;Attibutes to be used on blanked lines
                mov cx,0001h            ;Ch=00H Cl=01h --> fila, colum -> of upper left corner of window to scroll
                mov dx,184fh            ;Dh=18H Dl=4f --> fila, colum -> of lower right corner of window
                int 10h                         ;Interrupción de video
                jmp movimiento

        bajar:
                mov ah,07h                      ;Scroll page down
                mov al,1                        ;numer of lines to scroll window (0 = blank whole window)
                mov bh,02h                      ;attributes to be used on blanked lines
                mov cx,02h                      ;CH=00 CL=02H --> fila, colum -> of upper left corner of window to scroll
                mov dx,184fh            ;DH=18H DL=4F --> fila, colum -> of lower right corner of window
                int 10h                         ;Interrupción de video
                jmp movimiento          ;

        compara:
                cmp al,13                       ;tecla Enter
                        je salir                ;
                cmp al,49                       ;tecla 1
                        je bajar                ;
                cmp al,50                       ;tecla 2
                        je subir                ;

        salir:
.exit
end