MAYUSCULAS Si lo que se quiere es convertir una cadena ingresada por el usuario a mayúsculas, habría que utilizar algo parecido a lo de la captura, agregando una de las dos líneas: AND AL,11011111B SUB AL,20H Esta instrucción mueve el índice a lo que sería la posición en la tabla ASCII de los caracteres en mayúscula.
… MOV CX, CUENTA LEA SI, VAR
LEER: MOV AH,01H INT 21H La línea que cambia a mayúsculas los caracteres es esta
CMP AL,”a” JB SIGA CMP AL,”b” JA SIGA AND AL,11011111B SIGA: MOV [SI],AL INC SI DEC CX CMP CX,0 JNE LEER …
MINUSCULAS
El proceso para convertir en minúsculas es muy similar al de mayúsculas, simplemente es necesario cambiar los límites de la tabla ASCII para que esté entre los caracteres en mayúsculas ‘A’ y ‘Z’ y también se reemplaza la línea SUB AL,20H por ADD AL,20H O bien, se omite la línea AND AL,11011111B.
Otra manera de convertir una cadena en mayúsculas es capturarla y después leerla y
… MAYUS MACRO LEA SI, cadena LEA DI, mayúsculas SEGUIR: MOV AL,[SI] MOV BL,97 CMP BL,AL JG UPPERCASE CMP AL,’z’ JA UPPERCASE SUB AL,20H MOV [DI],AL UPPERCASE: MOV [DI],AL INC SI INC DI MOV CL,0DH CMP [SI],CL JNE SEGUIR MOV [DI], BYTE PTR’$’ ENDM …
Se utilizan los índices SI y DI para hacer el cambio a mayúsculas.
Se establece el rango, si el carácter está dentro de él salta y convierte
Se hace el cambio en el carácter, después se mueve el carácter cambiado a la parte alta del registro acumulador y por último se mueve al DI.
Se incrementan los valores de SI y DI y se salta para repetir el ciclo hasta que lo que se encuentra en SI sea un enter (0DH)
NOTA: Ir al anexo “Ejemplos” para ver un código completo., “Saltos” para ver cómo funcionan los saltos.
12