Ensamblador - Cambiar mayúscula a minúscula..

 
Vista:

Cambiar mayúscula a minúscula..

Publicado por Carmen (1 intervención) el 08/03/2004 19:52:00
Hola!! Necesito que me orienten para hacer un programa en ensamblador (simulador 8085) que permita cambiar a mayúscula o minúscula un texto, el cual puede ser una palabra o un conjunto de palabras separadas por el caracter espacio en blanco.

Agradeciendo su atención se despide

Carmen
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cambiar mayúscula a minúscula..

Publicado por Yoel Ocmin (8 intervenciones) el 18/03/2004 19:30:13
Hola espero que no sea demasiado tarde
Lo primero debes saber que las palabras tienen un Ascii respectivoo
para el caso de las mayusculas es :
A = 41H , B= 42H, C=43H ....
minusculas
a= 61H, b= 62H, c=63H ...
como te das cuenta, la diferencia entre las mayusculas y minusculas es de 20H (20 en Hexadecimal)
ahora si yo quiero convertr la letra 'x' de minuscula a mayusculas
debo restarle 20H a la letra y se convertira a 'X'
y si quisiera volverlo a minusculas bastara con sumarle 20H
;************
;**** El programa de abajo muestra la forma lo acabo de
;hacer y lo he compilado con TASM y esta bien
;
;***********
;Vamos a convertir palabra en mayusculas y
;luego a minusculas y lo mostraremos en pantalla
;
.model small
.286
.data
normal db 10,13," Normal : "
PALABRA db "MiRame FijaMenTE!!!",'$'
Mayusculas db 10,13,"en Mayusculas: $"
Minusculas db 10,13,"en Minusculas: $"
.code
mov ax,@data
mov ds,ax

lea dx,normal
mov ah,9
int 21h

lea dx,Mayusculas
mov ah,9
int 21h

call ConvMayusculas

lea dx,Minusculas
mov ah,9
int 21h

call ConvMinusculas

mov ah,4ch
int 21h

ConvMayusculas proc
mov si,0
otroMayus:
mov al,PALABRA[si]
cmp al,'$';comparo si llegue al final de la palabra
jz finMay ;si lo hice termino mi rutina
cmp al,'z' ;comparo si la palabr
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cambiar mayúscula a minúscula..

Publicado por Yoel Ocmin (8 intervenciones) el 18/03/2004 19:31:51
;************
;**** El programa de abajo muestra la forma lo acabo de
;hacer y lo he compilado con TASM y esta bien
;
;***********
;Vamos a convertir palabra en mayusculas y
;luego a minusculas y lo mostraremos en pantalla
;
.model small
.286
.data
normal db 10,13," Normal : "
PALABRA db "MiRame FijaMenTE!!!",'$'
Mayusculas db 10,13,"en Mayusculas: $"
Minusculas db 10,13,"en Minusculas: $"
.code
mov ax,@data
mov ds,ax

lea dx,normal
mov ah,9
int 21h

lea dx,Mayusculas
mov ah,9
int 21h

call ConvMayusculas

lea dx,Minusculas
mov ah,9
int 21h

call ConvMinusculas

mov ah,4ch
int 21h

ConvMayusculas proc
mov si,0
otroMayus:
mov al,PALABRA[si]
cmp al,'$';comparo si llegue al final de la palabra
jz finMay ;si lo hice termino mi rutina
cmp al,'z' ;comparo si la palabra es mayor que 'z'
jg sigueMay;si lo es continuo
cmp al,'a';hago lo mismo para la 'a'
jl sigueMay;
; acabo de filtrar todas las palabras que se
;son menores que 'a' y mayores que 'z'
;es decir todas la minusculas
sub al,20H;ahora les resto la diferencia entre ellas
sigueMay:mov dl,al ;y muestro esto en pantalla
mov ah,2
int 21h%0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cambiar mayúscula a minúscula..

Publicado por Yoel Ocmin (8 intervenciones) el 18/03/2004 19:33:10
;Las rutinas:
ConvMayusculas proc
mov si,0
otroMayus:
mov al,PALABRA[si]
cmp al,\'$\';comparo si llegue al final de la palabra
jz finMay ;si lo hice termino mi rutina
cmp al,\'z\' ;comparo si la palabra es mayor que \'z\'
jg sigueMay;si lo es continuo
cmp al,\'a\';hago lo mismo para la \'a\'
jl sigueMay;
; acabo de filtrar todas las palabras que se
;son menores que \'a\' y mayores que \'z\'
;es decir todas la minusculas
sub al,20H;ahora les resto la diferencia entre ellas
sigueMay:mov dl,al ;y muestro esto en pantalla
mov ah,2
int 21h
inc si
jmp otroMayus
finMay: ret
ConvMayusculas endp
;para el caso de las minusculsa es casi lo mismo
;por eso ya no lo comento
ConvMinusculas proc
mov si,0
otroMinus:
mov al,PALABRA[si]
cmp al,\'$\'
jz finMinus
cmp al,\'Z\'
jg sigueMinus
cmp al,\'A\'
jl sigueMinus
add al,20H
sigueMinus:mov dl,al
mov ah,2
int 21h
inc si
jmp otroMinus
finMinus: ret
ConvMinusculas endp
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:devolver el tamaño de la cadena

Publicado por francisco (1 intervención) el 02/06/2006 18:01:52
necesito realizar un programa en ensamblador que se compile en tasm;
necesito que me mida un cadena de caracteres, por ejemplo si pongo el nombre de juan quiero que me muestre el tamaño es decir 4 letras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:devolver el tamaño de la cadena

Publicado por Alex (1 intervención) el 27/02/2009 03:29:09
Ya se que este tema esta un poco atrasado, pero pues hay algunas personas que tal vez no sepan aun como hacer esto...
Esta rutina es muy sencilla....
Despues de colocar los codigos correspondientes, solo deberemos enviar a memoria el tamaño de la cadena....

Esto se hace mediante una etiqueta, LENGTH

mov ax, LENGTH variable

Es todo... la etiqueta length nos indicarà el tamaño.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cambiar mayúscula a minúscula..

Publicado por david (3 intervenciones) el 15/04/2013 02:13:56
hola amigo, mira, yo tengo el mismo caso, solo que no se mucho de esto, el profe me dejo conberir una cadena minuscula a mayuscula eso del codigo asccsi lo se, solo que no se implementarlo, no he visto mucho, estamos progrmando en radams, el caso es ke no se, hemos visto poco, xfis ayudame te la agradecere mucho, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Cambiar mayúscula a minúscula..

Publicado por ULG (1 intervención) el 13/11/2014 15:40:10
no se si este bien pero lo acabo de hacer puede que te sirva

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[bits 16]
[segment .data]
cad: resb 30h                    ;reserva 30 espacios en memoria
[segment .code]
..start:
  mov ax,data
  mov ds,ax
         mov bx,cad
uno:     mov ah,01             ;función 1 de la int 21h (leo el primer caracter y lo pongo en al)
         int 21h
         cmp al,'$'                   ;comparo con signo de pesos
         je cuatro
         cmp al,'20'                 ;comparo con espacio
         je dos
         cmp al,'Z'                   ;verifico si es mayuscula ó minuscula
         Jg tres
         add al,20h                 ;sumo 20 al caracter si es mayuscula
dos:     mov [bx],al
         inc bx
         jmp uno
tres:    sub al,20h             ;resto 20 al caracter si es minuscula
         mov [bx],al
         inc bx
         jmp uno
cuatro:  mov [bx],al
         mov dx,cad
         mov ah,09               ;función 9 de la int 21h (imprimo desde dx, hasta encontrar un signo de pesos)
         mov dx,cad
         int 21h
mov ah,4ch                       ;fin del programa
int 21h
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar