Mayo 26, 2019, 11:16:13 pm

Noticias:

Para hacer tu consulta: debes registrarte y hacer un nuevo tema en la sección que consideres más adecuada. Ver: Acerca de este Foro.


Buscar en el Foro: 

Recientes

Ayuda, ensamblador convierte mayusculas

Iniciado por Guest, Octubre 30, 2005, 05:40:18 pm

Tema anterior - Siguiente tema

Guest

si, necesito ayuda con mi programa en lenguaje ensamblador, es un programa que debe convertir una cadena de caracteres de minusculas a mayusculas y no me sale...
la verdad no sé como hacerlo, he consultado un buen de libros y en internet, pero solo encuentro con directivas simplificadas y por más que trato de adaptarlo a mi codigo no puedo, espero puedan ayudarme, porque este programa es mi examen. gracias

lo que llevo echo es lo siguiente:




PILA SEGMENT PARA STACK "STACK"
     DB 200 DUP (0)
PILA ENDS

;------------------------------------------------------------------------
               
DATOS SEGMENT PARA "DATA"
      MSS1   DB  "mi nombre en minusculas es: luisito",13,10
             DB  "en mayusculas es: ", "$"
      NOMBRE DB  "luisito"                ; esta cadena debe convertirse en mayusculas
DATOS ENDS

;------------------------------------------------------------------------
               
CODIGO SEGMENT PARA "CODE"
   EMPIEZA PROC FAR
                ASSUME CS: CODIGO, DS: DATOS, SS: PILA
               
   MOV AX, DATOS
   MOV DS, AX
             
   MOV AH,9
   MOV DX,OFFSET MSS1
   INT 21H
   MOV AH,4CH
   INT 21H


   MOV BX,OFFSET NOMBRE
   AND AX, 11011111B

ETIQUETA:
        MOV AX, BX
   SUB AX, 20H
   DAA
   INC BX
   LOOP ETIQUETA      
               
   INT 21H
   MOV AH,4CH
   INT 21H


   EMPIEZA ENDP
CODIGO ENDS
       END EMPIEZA


JorgeAVM

Te voy a contar que en ASCII la diferencia entre las mayúsculas y las minúsculas es de 32.
Es decir, en la tabla ASCII el caracter 65 corresponde a: A y el caracter 97 corresponde a: a

Entonces a cada caracter en minúscula bastaría restarle 32 para que se convierta en una mayúscula.

Éxitos!


Redes Sociales

Buscar en el Foro: