Las dos primeras sentencias funcionales del programa (sin tomar en cuenta los comentarios que inician con “;”) permiten definir dos constantes: CR y LF. Estas constantes no generan código objeto alguno, ya que indican al compilador que cuando encuentren en el código dichas constantes o símbolos, sustituya dichos símbolos por el valor indicado.
CR EQU 13
LF EQU 0AH
EJEMPLO 1:
Código que imprime el mensaje "HOLA MUNDO"
CR EQU 13
LF EQU 0Ah
DATOS SEGMENT
MENSAJE DB CR, LF, 'HOLA MUNDO', CR, LF, '$'
DATOS ENDS
PILA SEGMENT STACK
DB 64 DUP('PILA')
PILA ENDS
CODIGO SEGMENT
HM PROC FAR
ASSUME CS: CODIGO, DS:DATOS, SS:PILA
MOV AX, DATOS
MOV DS, AX
LEA DX, MENSAJE
MOV AH, 9
INT 21H
MOV AX, 4C00H
INT 21H
HM ENDP
CODIGO ENDS
END HM
EJEMPLO 2:
Código que imprime "EL USO DE DOS CONSTANTES"
CR EQU 13
LF EQU 10
IMPRIMIR EQU 9
FIN EQU 4C00H
DOS EQU 21H
DATOS SEGMENT
TEXTO DB 'EJEMPLO DEL USO DE CONSTANTES', CR, LF, '$'
DATOS ENDS
PILA SEGMENT STACK
DB 64 DUP ('PILA')
PILA ENDS
CODIGO SEGMENT
ASSUME CS:CODIGO, DS:DATOS, SS:PILA
INICIO: MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET TEXTO
MOV AH, IMPRIMIR
INT DOS
MOV AX, FIN
INT DOS
CODIGO ENDS
END INICIO
EJEMPLO 3:
Código que imprime "HOLA MUNDO" mediante una función
CR EQU 13
LF EQU 10
DATOS SEGMENT
MENSAJE DB, CR, LF, 'HOLA MUNDO', CR, LF, '$'
DATOS ENDS
PILA SEGMENT STACK
DB 64 DUP ('PILA')
PILA ENDS
CODIGO SEGMENT
HMF PROC FAR
ASSUME CS:CODIGO, DS:DATOS, SS:PILA
MOV AX, DATOS
MOV DS, AX
LEA DX, MENSAJE
CALL ESCRIBE
MOV AX, 4C00H
INT 21H
HMF ENDP
ESCRIBE PROC
MOV AH, 9
INT 21H
RET
ESCRIBE ENDP
CODIGO ENDS
END HMF
EJEMPLO 4:
Código que imprime datos personales
CR EQU 13
LF EQU 10
DATOS SEGMENT
LINEA1 DB CR, LF, 'ROCIO MAHE ALVAREZ', CR, LF, '$'
LINEA2 DB 'TECNOLOGICO DE MATAMOROS', CR, LF, '$'
LINEA3 DB 'ING. SISTEMAS COMPUTACIONALES', CR, LF, '$'
LINEA4 DB 'SOLTERA ;-;', CR, LF, '$'
DATOS ENDS
PILA SEGMENT STACK
DB 64 DUP('PILA')
PILA ENDS
CODIGO SEGMENT
LN PROC FAR
ASSUME CS:CODIGO, DS:DATOS, SS:PILA
MOV AX, DATOS
MOV DS, AX
LEA DX, LINEA1
CALL ESCRIBE
LEA DX, LINEA2
CALL ESCRIBE
LEA DX, LINEA3
CALL ESCRIBE
MOV AX, 4C00H
INT 21H
LN ENDP
ESCRIBE PROC
MOV AH, 9
INT 21H
RET
ESCRIBE ENDP
CODIGO ENDS
END LN
No hay comentarios:
Publicar un comentario