• Domingo 22 de Diciembre de 2024, 15:34

Autor Tema:  Convertir a Mayusculas o Minusculas  (Leído 10578 veces)

Nquevedo

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Convertir a Mayusculas o Minusculas
« en: Martes 24 de Marzo de 2009, 19:01 »
0
Buen dia, les agradeceria me dieran una luz.   Soy totalmente nuevo en esto.
 Lo que deseo es que al ingresar el nombre en minusculas lo despligue en Mayusculas y viceversa, ya hice el programa que pide el nombre y lo despliega; pero no he podido realizar el cambio.   Leyendo he visto que se usa una interrupcion 21 y/o una opcion Toupper; pero no he logrado entender cual usar y como usarlo y donde deberia de ingresarlo.

Gracias

Adjunto el codigo que ya realice.

global _start
section .data

mensage db 'Ingrese su nombre: ' ,10    
lenmensage equ $ - mensage    
nombre db'               ',10    
lennombre   equ $ - nombre    
saludo      db   'Hola ',10    
lensaludo   equ $ - saludo

section .text _start:
   mov eax,4
    mov ebx,1
   mov ecx, mensage
    mov edx,lenmensage
    int 80h  

   mov eax,3
    mov ebx,0
    mov ecx,nombre
    mov edx, lennombre
    int 80h
 
   mov eax,4
    mov ebx,1
    mov ecx, saludo
    mov edx, lensaludo
    int 80h

   mov ecx, nombre
    mov eax,4
    mov ebx,1
    mov edx, lennombre
   int 80h
 
   mov ebx,0
    mov eax,1
    int 80h

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Convertir a Mayusculas o Minusculas
« Respuesta #1 en: Martes 24 de Marzo de 2009, 19:05 »
0
Para convertir de mayúsculas/minúsculas no hace falta tanto. Sólo hay que sumar/restar, ya que los caracteres son en realidad códigos ASCII:



Con un bucle sencillo te vale. Y te ahorras usar funciones externas: más control sobre tu programa.

Salud

fuhrer

  • Miembro MUY activo
  • ***
  • Mensajes: 329
  • Nacionalidad: mx
    • Ver Perfil
    • http://admin.busquenoseninternet.com
Re: Convertir a Mayusculas o Minusculas
« Respuesta #2 en: Martes 24 de Marzo de 2009, 21:08 »
0
Hola.

La tabla que te pusieron en la respuesta anterior es de mucha ayuda para que observes el valor de los caracteres, como te dijeron, estos son ASCII y tienen una representación numérica. A la tabla anterior le hace falta la representación en binario.

Debido a que estas trabajando en ensamblador, lo más conveniente es manejar los valores en binario, ya que si obtienes el valor en binario de la letra

A = 1000001
a = 1100001

Continuando así, hasta la

Z = 1011010
z = 1111010

Si eres observador, notaras que entre las letras mayúsculas y minúsculas sólo existe un bit diferente, que es el segundo, por lo tanto, sólo debes de negar el segundo bit pero obtener un mayúscula a partir de una minúscula y viceverza.

Espero te sirva.

Hasta luego.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Convertir a Mayusculas o Minusculas
« Respuesta #3 en: Martes 24 de Marzo de 2009, 23:08 »
0
Previa comprobacion que sea una letra: xor 32.

La interrupcion 21h a la que te referis debe de MS-DOS y la funcion toupper la tenes que enlazar desde la libc (esta funcion no falla con la ñ por ejemplo).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.