ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Simulacion


Enviado por   •  4 de Septiembre de 2014  •  2.129 Palabras (9 Páginas)  •  217 Visitas

Página 1 de 9

;******************************************************************************

; Nombre del programa: COMPARA.ASM

; Objetivo : Captura dos cadenas y las compara, reportando si

; son iguales o no. La cantidad de caracteres a

; comparar esta dada por los caracteres realmente

; leidos de la cadena 1. Es decir, para que se

; consideren iguales, las dos cadenas deben ser de

; la misma longitud. El programa distingue entre

;mayusculas y minusculas. La "A" es diferente de "a".

;******************************************************************************

; COMANDO DE ENSAMBLE : Masm COMPARA;

; COMANDO DE ENLACE : Link COMPARA;

; COMANDO DE EJECUCION : COMPARA [Enter]

;******************************************************************************

;

; NOTA : El procedimiento (objetivo) es con fines educativos y NO de

;optimizacion o eficiencia. Por favor, NO SE DESESPERE y estudielo.

;******************************************************************************

;------------------------------------------------------------------------------

; Define el modelo de memoria

;------------------------------------------------------------------------------

.MODEL SMALL

;------------------------------------------------------------------------------

; Define el area de datos

;------------------------------------------------------------------------------

.Data

Cadena1 DB 15,0,15 DUP(?) ; Variable que almacena cadena 1

Cadena2 DB 15,0,15 DUP(?) ; Variable que almacena cadena 2

Mensaje DB 'Bienvenidos a Compara. Programa ejemplo que compara'

DB ' dos cadenas y reporta',13,10

DB 'si son iguales o no. Para terminar digite FIN en'

DB 'mayusculas.'

DB 13,10,'$'

Error DB 7,7,7,13,10,'ERROR : cadenas son DIFERENTES !!!.'

DB 13,10,13,10,'$'

Error1 DB 7,7,7,13,10,'ERROR : cadena no puede ser NULA !!!.'

DB 13,10,13,10,'$'

Final DB 'FIN'

TodoBIEN DB 7,7,7,13,10,'Cadenas son IGUALES.'

DB 13,10,13,10,'$'

CadUnoM DB 13,10,13,10,'Digite primera CADENA: $'

CadDosM DB 13,10,13,10,'Digite Segunda CADENA: $'

;------------------------------------------------------------------------------

; Define el area del Stack

;------------------------------------------------------------------------------

.STACK

;------------------------------------------------------------------------------

; Define el area de codigo

;------------------------------------------------------------------------------

.CODE ; Area de codigo

Empieza: ; Etiqueta de comienzo de programa

;------------------------------------------------------------------------------

; BORRA LA PANTALLA CAMBIANDO LA MODALIDAD DE VIDEO. ESTA FORMA DE BORRAR

; LA PANTALLA ES MUY PECULIAR Y ES CONSIDERADA COMO UN "TRUCO". SE BASA EN

; EL HECHO DE QUE AL CAMBIAR LA MODALIDAD DE VIDEO, EL PROPIO BIOS

; (HARDWARE) BORRA LA PANTALLA POR NOSOTROS. ES UN METODO BURDO PERO MUY

; EFICIENTE.

;------------------------------------------------------------------------------

Mov Ah, 0Fh ; Obtiene modalidad de video actual

Int 10h

Mov Ah, 0 ; Cambia a la modalidad de video que se obtuvo

Int 10h

mov Ax,@Data ; Inicializa DS con la direccion de @Data

mov Ds, Ax

mov Dx, Offset Mensaje ; Despliega el mensaje de bienvenida

Mov Ah, 9

Int 21h

Push Ds

Pop Es ; ES = DS

;------------------------------------------------------------------------------

; SE CAPTURAN LAS CADENAS Y SE GUARDAN EN SUS RESPECTIVAS VARIABLES PARA

; PODER TRABAJAR CON ELLAS MAS ADELANTE. LA CAPTURA SE BASA EN LA FUNCION

; 09 DE LA INT 21H. DICHA FUNCION ESTABLECE QUE EL REGISTRO AH CONTENGA 09

; Y EL REGISTRO PAR DS:DX APUNTE A LA DIRECCION DE LA VARIABLE QUE

; ALMACENARA LA ESTRUCTURA DEL BUFFER. ESTE DEBE DE ESTAR CONSTRUIDO DE LA

; SIGUIENTE MANERA:

;

; BYTE 1 = CANTIDAD DE BYTES A LEER

; BYTE 2 = (LLENADO POR MS-DOS) ES LA CANTIDAD DE BYTES REALMENTE

; LEIDOS.

; BYTE 3 = BUFFER DONDE SE ALMACENA EL RESULTADO. DEBE ENCONTRARSE

; INICIALIZADO CON LA MISMA CANTIDAD DE BYTES ESPECIFICADOS

; POR EL BYTE 1.

;

; LAS CANTIDADES CAPTURADAS REPRESENTAN UNA CADENA QUE ES NECESARIO

; CONVERTIR A BINARIO ANTES DE PODER OPERAR SOBRE ELLA. MAS ADELANTE

; QUEDARA CLARO LO ANTERIOR.

;------------------------------------------------------------------------------

...

Descargar como (para miembros actualizados) txt (9 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com