Programa ALUMNO.ASM
;_______________________________________________________________
; DEFINICIÓN DEL SEGMENTO DE DATOS
DATOS SEGMENT
TITULO DB "TECNOLOGÍA DE COMPUTADORES",13,10,"$"
PREG_NOM DB "ESCRIBE TU NOMBRE: $"
NOMBRE DB 80 DUP (0)
TEXTO DB "DON $"
TEXTO2 DB " ES ALUMNO DE 2§ CURSO DE "
DB "INGENIERÍA INFORMÁTICA",13,10,"$"
DATOS ENDS ;Fin del segmento de datos
;_______________________________________________________________
; DEFINICIÓN DEL SEGMENTO DE PILA
PILA SEGMENT STACK "STACK"
DB 40H DUP (0)
PILA ENDS ;Fin del segmento de pila
;_______________________________________________________________
; DEFINICIÓN DEL SEGMENTO DE CÓDIGO
CODE SEGMENT
ASSUME CS:CODE,DS:DATOS,SS:PILA
;Comienzo del procedimiento principal (START)
START PROC FAR
;Inicialización de los registros de segmento
MOV AX,DATOS
MOV DS,AX
;Borra la pantalla
MOV AH,6 ;Código de función
MOV AL,0 ;Borrar la pantalla completa
MOV BH,07H ;Atributo de relleno
MOV CX,0 ;Esquina superior izquierda (CH:fila,CL columna)
MOV DX,24*256+79 ;Esquina inferior derecha (DH:fila,DL:columna)
INT 10H ;Llamada a la interrupción de la BIOS 10h
;Situa el cursor en una coordenada determinada
MOV AH,2 ;Código de función
MOV BH,0 ;Pagina de video
MOV DH,12 ;Fila
MOV DL,0 ;Columna
INT 10H ;Llamada a la interrupción de la BIOS 10h
;Escribe "CURSO ...
MOV AH,09H ;Código de la función
MOV DX,OFFSET TITULO ;Dirección del texto a imprimir
INT 21H ;Llamada a la interrupción del DOS 21h
;Muestra "ESCRIBE ...
MOV DX,OFFSET PREG_NOM ;Texto a imprimir
INT 21H ;Llamada a la interrupción del DOS 21h
;Almacena el texto tecleado
MOV AH,0AH ;Código de la función
MOV DX,OFFSET NOMBRE ;Texto a imprimir
MOV NOMBRE[0],60 ;60 es el máximo numero de caracteres
INT 21H ;Llamada a la interrupción del DOS 21h
;Presenta la respuesta del programa
MOV AH,9 ;Código de la función
MOV DX, OFFSET TEXTO ;Escribe DON....
INT 21H ;Llamada a la interrupción del DOS 21h
;Escribe el texto previamente introducido
MOV BX,0 ;Índice para recorrer el texto guardado
OTRO: ;Etiqueta para el bucle
MOV DL,NOMBRE[BX+2] ;Carga en DL el carácter a imprimir
MOV AH,2 ;Código de la función
INT 21H ;Escribe un carácter del nombre
INC BX ;Pasa al siguiente carácter
CMP BL, NOMBRE[1] ;Compara con el numero de caracteres total
JNE OTRO ;Salto condicional
; Escribe "ES ALUMNO ...
MOV DX, OFFSET TEXTO2 ;Texto a imprimir
MOV AH,9 ;Código de la función
INT 21H ;Llamada a la interrupción del DOS 21h
;Fin del programa y vuelta al DOS
MOV AX,4C00H
INT 21H
START ENDP ;Fin del procedimiento START
CODE ENDS ;Fin del segmento de código
END START ;Fin del programa, indicando donde comienza la ejecución
Compilar y enlazar (linkar) el programa ALUMNO.ASM. Ejecutarlo dede
el programa TD. Ejecutarlo directamente desde el DOS. Modificar el programa
para que pregunte separadamente por el nombre, primer apellido y segundo
apellido. Comprobar el funcionamiento.