Si te edito el mensaje es por un razon: ya tiene un archivo con el codigo, no hace falta ocupar tres paginas con el mismo. ¿OK? No lo restaures a menos que quieras que borre el hilo.
Para solucionar tu problema vas a tener que depurar el programa y te recomiendo que uses un MS-DOS de verdad y no una consola de Windows. Tal vez te sea util usar una maquina virtual.
Comproba como retornas el control a MS-DOS.
Y esta parte esta mal:
;CARGA LA DIRECCION DEL SEGMENTO MOD_REV
MOV AX, SEG PROGRAMA
MOV DS, AX
MOV AX, OFFSET PROGRAMA ;DEBERIA SER DX
Otra cosa es que no se si es llamada tu interrupcion realmente cuando haces print screen (solo lo probe en una consola de NT tambien) asi que lo que hice fue poner int 05h a mano antes del 16h.