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

Lenguaje Asembler En Emu8086


Enviado por   •  15 de Septiembre de 2014  •  1.226 Palabras (5 Páginas)  •  533 Visitas

Página 1 de 5

CONVERTIR CADENA DE MINUSCULA A MAYUSCULA

; Convertir minusculas a MAYUSCULAS

stacksg segment para STACK 'stack'

stacksg ends

datasg segment

PALABRA DB 64H DUP (?) ;SE DECLARA LA VARIABLE "PALABRA" DE TAMAÑO 100 (64H)

datasg ends

codesg segment

assume cs:codesg, ds:datasg, ss:stacksg

main proc far

prologo:

push ds

xor ax,ax

push ax

mov ax,datasg

mov ds,ax

LEA SI,PALABRA ; SE CARGA LA VARIBALE "PALABRA" EN 'SI'

INICIO:

MOV AH,01H ;SE CAPTURA EL CARACTER

INT 21H

CMP AL,0DH ;SE COMPARA CON ENTER

JE FINPALABRA ;SI ES IGUAL SALTA A 'FINPALABRA'

CMP AL,20H ;SE COMPARA CON EL ESAPACIO

JE ESPACIO ;SI ES IGUAL SALTA A ESPACIO

CMP AL,61H ;SE COMPARA CON a (MINUSCULA)

JB INICIO ;SI ES MENOR REGRESA A LA ETIQUETA INICIO

CMP AL,7AH ;SE COMAPRA CON z (MINUSCULA)

JA INICIO ;SI ES MAYOR SALTA A INICIO

;SI LA TECLA PRESIONADA ESTA ENTRE EL RAGO 61H Y 7AH

SUB AL,20H ;SE RESTA 20H A EL CARACTER ALMACENADO EN 'AL'

MOV [SI],AL ;SE MUEVE 'AL' A LA PRIMERA POSISION DE 'SI'

INC SI ;SE INCREMENTA 'SI'

JMP INICIO ;SE REGRESA A INCIO HASTA QUE SE PRESIONE ENTER

;SI SE PRECIONA UN ESPACIO

;SOLO SE INCREMENTE EL VALOR DE 'SI'

;Y SE REGRESA A INICIO

ESPACIO:

INC SI

JMP INICIO

FINPALABRA:

;PARA COMPROBAR SI LA CADENA ESTA VACIA

;SE HACE LO SIGUIENTE

MOV CX,0000H

CMP SI,CX ;SE COMPARA 'SI' CON 0 (CERO)

JE INICIO ;SI ES IGUAL REGRESA A INICIO

;SINO ESTA VACIA...

INC SI ;SE INCREMENTA 'SI'

MOV AL,'$' ;SE ASIGNA EL CARACTER DEL FIN DE LA CADENA A 'AL'

MOV [SI],AL ;SE CARGA EN 'SI'

;AQUI SOLO SE DESPLIEGA LA CADENA

;YA CONVERTIRDA EN MAYUSCULAS

MOV AH,09H

LEA DX,PALABRA

INT 21H

finalizar:

mov ah,4ch

int 21h

main endp

codesg ends

end main

end

COMPARAR DOS CADENAS

.model small

.stack 64

.data

;Simples mensajes

msj1 db 0ah,0dh, 'Cadena 1: ', '$'

msj2 db 0ah,0dh, 'Cadena 2: ', '$'

msj3 db 0ah,0dh, 'Son iguales ', '$'

msj4 db 0ah,0dh, 'Son diferentes ', '$'

vec db 50 dup(' '), '$' ;Vector 1

vec2 db 50 dup(' '), '$' ;Vector 2

.code

inicio:

mov ax,@data

mov ds,ax

mov ah,09

mov dx,offset msj1 ;Imprimimos el msj1

int 21h

lea si,vec ;Cargamos en el registro si al primer vector

pedir1:

mov ah,01h ;Pedimos un carácter

int 21h

mov [si],al ;Se guarda en el registro indexado al vector

inc si

cmp al,0dh ;Se cicla hasta que se digite un Enter

ja pedir1

jb pedir1

mov ax,@data

mov ds,ax

mov ah,09

mov dx,offset msj2 ;Imprime mensaje 2

int 21h

lea si,vec2 ; Se carga en SI el vector2

pedir2: ;Mismo procedimiento que pedir1

mov ah,01h

int 21h

mov [si],al

inc si

cmp al,0dh

ja pedir2

jb pedir2

mov cx,50 ;Determinamos la cantidad de datos a leer/comparar

...

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