¿Qué es hardware?
Es el conjunto de elementos físicos de una computadora o sistema informático.
Hardware Básico
Es el hardware fundamental para el funcionamiento de la computadora
-
Tarjeta madre
-
Fuente
-
CPU
-
RAM
-
ROM
-
Memoria Cache
-
Disco Duro
-
Monitor
-
Teclado
-
Ratón.
Hardware Complementario
Son todos aquellos dispositivos adicionales, pero no esenciales.
-
Escáner
-
Cámara
-
Impresora
-
Micrófono
Tarjeta Madre
Es la placa principal para el funcionamiento de la computadora, allí están instalados todos los circuitos.
Memoria
Es la unidad de almacenamiento de la computadora, la memoria se divide en palabras y se define como una unidad de almacenamiento que está formada por 2, 4 y 8 bits, la memoria se divide en:
-
Memoria Interna: Memoria principal o primaria, es la memoria que contiene la computadora, para guardar programas, documentos que se están ejecutando en ese momento. La memoria interna es usualmente un recurso escaso pero muy veloz. La memoria interna se divide en dos grupos.
-
Memoria Volátil o RAM
-
RAM ACCESS MEMORY o memoria de acceso aleatorio, en ella se puede escribir y leer, pero al apagar la PC, la información se pierde.
-
-
Memoria no volátil o ROM
-
READ ONLY MEMORY o memoria de solo lectura, en esta memoria no se puede escribir, solo leer, y la información que contiene se conserva, aunque se apague la computadora.
-
-
-
Memoria Secundaria: Memoria externa, se maneja en discos flexibles, cintas magnéticas, discos duros, etc., la memoria externa o secundaria es mucho más grande en almacenamiento, pero en tiempo es mucho mas lenta.
Dispositivos de ENTRADA / SALIDA
Dispositivos periféricos que sirve de comunicación con la computadora, todas las partes de la PC están relacionadas por un BUS el cual se puede definir como un medio de comunicación entre los distintos dispositivos y se dividen en:
-
Dispositivos de ENTRADA: Nos permiten proporcionar datas a la computadora, como por ejemplo (teclados, scanners, etc.)
-
Dispositivos de SALIDA: Permiten al usuario conocer los resultados obtenidos a través de procesamiento de programas y datos, como por ejemplo (Pantalla, Impresora, etc.)
Circuitos internos de la PC
Los circuitos internos dela PC son los siguientes:
-
CPU o unidad central de procesos, es el hardware que está dentro de la computadora que interpreta las instrucciones de los programas informáticos mediante la realización de las operaciones básicas.
-
Chipset o circuito integrado auxiliar, es el conjunto de circuitos integrados diseñado en base a la arquitectura del procesador, sirven de puente de comunicación con el reto de componentes de la tarjeta madre.
-
Puente Norte es el circuito integrado más importante del conjunto de chips que constituye el corazón de la tarjeta madre.
-
Puente Sur también conocido como concentrador de controladores de entrada y salida, se encarga de coordinar los diferentes dispositivos.
-
-
CMOS mejor conocido como conductor complementario de óxido metálico es donde se guardan las configuraciones de fábrica, que luego pueden ser modificadas, se necesita una batería para guardar los cambios, de no ser así vuelve a su estado de fábrica.
-
BIOS
Sistema Básico de entrada y salida, indica todas las rutinas hechas desde que se enciende la computadora, reconoce los dispositivos de entras y salida y el CMOS, y puede iniciar el sistema operativo.
Ciclo de Maquina
Conjunto de pasos que se llevan a cabo para ejecutar instrucciones.
-
Solicitar Datos (Dirección)
-
Mandar Datos (Instrucción)
-
Traducir o decodificar
-
Ejecutar instrucciones
Los pasos anteriores se han dividido en tres:
-
Fetch (alimenta 1 y 2)
-
Decoder
-
Execute
Registros
Existes 14 registros en Total:
-
4 Registros de segmento
-
4 Registros de propósito general
-
2 Registros apuntadores
-
2 Registros de índices
-
1 Registros de banderas
-
1 Registro apuntador de instrucciones
La memora del procesador 80×88 se encuentra fraccionada en lo que se conoce como SEGMENTO.
Segmento
Es una porción de memoria que ocupa 64 bits de longitud, existen 4 registros de segmento:
-
Segmento de datos (DS): Es la porción de memoria que contiene la información a ser procesada, es decir los operandos. Este segmento también puede ser definido como área de datos.
-
Segmento de código (CS): Es la porción que contiene los conjuntos de instrucciones a ser ejecutadas.
-
Segmento de Stack (SS): Generalmente contiene direcciones de retorno a subprogramas.
-
Segmento Extra (ES): Es direccionado a través del registro ES y contiene al igual que el registro de datos información para procesar los datos, principalmente son cadenas. Este es un segmento para usos especiales.
Estos cuatro segmentos, conforman los 4 registros de segmento.
Registros de propósito general: Son registros de 16 bits.
-
AX llamado acumulador principal, es utilizado en todas las operaciones de entrada y salida, en operaciones de cadena y en operadores aritméticos.
-
BX llamado registro base, es utilizado como apuntador y base, es utilizado como apuntador o índice para el manejo de datos.
-
CX llamado registro contador, es utilizado para controlar un ciclo, también utilizado en operaciones aritméticas y en corrimientos (Movimientos de bits). Se usa principalmente como contador en los bucles, existe una instrucción especial Loop, que comprueba su valor volviendo al principio del bucle.
MOV AX, 0
MOV DS, AX
MOV BX, 9
MOV AL [BX]
-
DX llamado registro de datos, utilizado en algunas operaciones de entrada y salida, y en operaciones aritméticas que requieran 16 bits para su manejo. Este es el único registro que puede usarse para acceder a puertos.
MOV AL, 62H
MOV DX, 1000H
OUT DX, AL
Registros apuntadores
-
SP es el offset dentro del stack.
-
BP
Ambos utilizados para el manejo de información dentro del stack.
Registros indexados o índice
-
SI (Índice fuente) es utilizado para manejar datos dentro del segmento de datos o para manejar información. Este se usa como puntero, se usa principalmente como instrucción de cadena.
CLD
MOV AX, 6
MOV DX, AX
MOV SI, 20
LOD5B
-
DI (Índice destino) es utilizado para manejar información dentro del segmento extra. También se usa como puntero, permite escribir en posiciones sucesivas de memoria cuando se usa con instrucciones de cadena.
CLD
MOV DX, 0
MOV ES, DX
MOV DI, 2048
ST05B
Registros de bandera a estos registros se le conoce también como registros de estados.
Consta de 16 bits y únicamente 9 de ellos contienen información, indican el estado de la máquina y el estado de la ejecución de los programas. Seis de ella (C, P, A, Z, S, D) son utilizados para unificar o indicar una condición producida por alguna instrucción y 3 de ellas son utilizadas para el control de algunas operaciones. (D, I, T)
-
C – Carry indica si hubo acarreó en operaciones aritméticas. C = 1 existe acarreo, C = 0 no existe.
-
P – Paridad indica la paridad de un dato. P = 1 si existe par, P = 0 no existe.
-
Z – Cero indica si el resultado de una operación aritmética o de comparación es cero. Z = 0 si el resultado no es cero, Z = 1 cuando el resultado es cero.
-
S – Signo indica el signo del resultado, S = 0 su el resultado es positivo, S = 1 si el resultado es negativo.
-
O – Overflow indica la sobrecarga en la magnitud de un dato. O = 0 no existe sobre carga, O = 1 existe sobrecarga.
-
A – Carry Auxiliar contiene el acarreo del bit 3 al bit 4 de 8 bits.
-
D – Dirección es utilizado en operaciones de cadena, indica la dirección que el procesador debe seguir para tomar la información.
-
I – Interrupción indica al procesador si las interrupciones deben ser atendidas o no.
-
T – Trap indica al procesador que debe ejecutar una por una la instrucción de un programa (procesamiento de un solo paso)
PEQUEÑO EXAMEN
-
Indique los tipos de software en general que existen.
-
Sistemas
-
Aplicaciones
-
Desarrollo
-
-
Indique los tipos de software de sistemas que existen.
-
Sistemas operativos
-
Controladores
-
Utilitarios
-
-
Indique los tipos de software de sistemas operativos que existen
-
Interfaz
-
Administrador de tareas
-
Administrador de archivos
-
Soporte
-
-
Defina que es el firmware.
Es un software que maneja físicamente al hardware.
-
Indique en que consiste la arquitectura de Von Neumann y defina cada una de sus partes.
Unidad de control es la que organiza los algoritmos de codificación que vienen de la memoria y responde a situaciones de emergencia y realiza funciones de dirección general de todos los nodos.
Memoria del dispositivo conjunto de celdas con identificadores únicos (direcciones), que contienen instrucciones y datos.
Dispositivos de E/S permiten la comunicación con el mundo exterior, reciben datos y transmiten información.
-
Indique para que se usa el bus de datos.
Sirve para comunicar datos y señales de control en la estructura de una computadora, entre el CPU y los diferentes dispositivos.
-
Indique en que consiste la unidad de ejecución.
-
Indique las secciones de las que se forma la unidad de instrucción.
-
Indique para que se usa el bus de control.
El bus de control verifica que los datos estén correctos.
-
Indique en que consiste el ciclo de máquina.
Conjunto de pasos que se llevan a cabo para ejecutar instrucciones.
-
Solicitar Datos (Dirección)
-
Mandar Datos (Instrucción)
-
Traducir o decodificar
-
Ejecutar instrucciones
-
Indique cuales son los registros de bandera.
-
C – Carry
-
P – Paridad
-
Z – Zero
-
S – Signo
-
O – Overflow
-
A – Auxiliar Carry
-
D – Dirección
-
I – Interrupción
-
T – Trap
-
Indique cuales son los registros de propósito general.
-
AX – Acumulador principal
-
BX – Registro Base
-
CX – Registro Contador
-
DX – Registro de datos
-
Direccionamiento de registro
Sus operandos se encuentran alineados en cualquiera de los registros generales o en los registros de segmento, por ejemplo:
ADD
AX, BX //Suma AX con BX
-
Direccionamiento inmediato
El operador se encuentra almacenado inmediatamente después de la instrucción por lo cual no se necesita calcular la dirección efectiva, ejemplo:
CMP
ah, 6 -
Direccionamiento directo
La dirección del operando se encuentra contenida en la instrucción y es sumada a la base del segmento de datos para obtener la dirección efectiva, ejemplo:
MOV
CX, [100] -
Direccionamiento Indirecto
Se utilizan los registros SI, DI o BX para proporcionar de manera indirecta la dirección del operando es sumada a la base del segmento de datos para obtener la dirección efectiva, ejemplo:
MOV
BX, [SI] -
Direccionamientos de base
En este caso se establece una base a través del registro BX o del registro BP a partir de la cual se tomarán los datos del segmento de DATOS o del segmento STACK, el contenido de los dos registros es una dirección que sea sumada a un desplazamiento contenido en la instrucción, ejemplo:
ADD
AX, [BX + 20] -
Direccionamiento indexado
Se utilizan los registros SI o DI para calcular direccionamiento a través de la suma del registro con el desplazamiento contenido en la instrucción, ejemplo:
ADD
BX, [SI +34] -
Direccionamiento de Base indexado
En este direccionamiento se utiliza el registro base BX y el registro de índice SI para el cálculo de la dirección a través de la suma con el desplazamiento, ejemplo:
ADD
DX, [BX + SI + DI]
PEQUEÑO EXAMEN
-
Indique cuales son los tipos de datos.
-
Simples
-
Compuestos
-
Indique los componentes que forman la arquitectura VNA
-
Unidad de control
-
Dispositivo de operación
-
Dispositivo de Memoria
-
Dispositivos de E/S
-
Indique cual es la función del bus de salida
Transferir datos entre dispositivos.
-
En que consiste el bus de datos
Permite el intercambio de datos entre la CPU y el resto de dispositivos.
-
En que consiste el bus de dirección
Es un canal del microprocesador totalmente independiente del bus de datos, donde se transmite la dirección de memoria del en tránsito.
-
Indique en que consiste el bus de control
Se encarga del uso y acceso a las líneas de datos y de dirección.
-
Partes de la unidad de control de procesos
-
Tarjeta madre
-
Fuente
-
Microprocesador
-
Memoria RAM
-
Disco Duro
-
Bus de datos
-
Disipador de calor
-
Unidades de CD/DVD
-
División de la Memoria
-
Memoria RAM (memoria volátil) Se puede escribir y leer.
-
Memoria ROM (Memoria no volátil) Solo se puede leer, pero no escribir.
-
Ciclo de maquina
Conjunto de pasos que se llevan a cabo para ejecutar instrucciones.
-
Solicitar Datos (Dirección)
-
Mandar Datos (Instrucción)
-
Traducir o decodificar
-
Ejecutar instrucciones
-
Para que sirven los ciclos de segmento
Sirven para referenciar áreas de memoria.
-
Defina cada uno de los registros de propósito general.
-
AX – Acumulador principal
-
BX – Registro base
-
CX – Registro contador
-
DX – Registro de datos
-
Registros que se utilizan para manejo de información de STACK
Registros de apuntador SP y BP
-
Cuáles son los registros de índice
-
SI – Índice fuerte
-
DI – Índice destino
-
Para que son utilizadas las banderas de I y T
-
I – INTERRUPICON Sirve para interrupción, le indica al procesador si la interrupción debe ser atendida.
-
T – TRAP Indica al procesador que debe registrar una interrupción del programa.
-
Direccionamiento de registro
Sus operandos se encuentran alineados en cualquiera de los registros generales o registros de segmento.
-
Direccionamiento inmediato
El operador se encuentra almacenado inmediatamente después de la instrucción por lo cual no se necesita calcular la dirección efectiva.
-
Direccionamiento directo
La dirección del operando se encuentra contenida en la instrucción y es sumada a la base del segmento de datos para obtener la dirección efectiva.
-
Direccionamiento básico
En este caso se establece una base a través del registro BX o del registro BP a partir de la cual se tomarán los datos del segmento de DATOS o del segmento STACK, el contenido de los dos registros es una dirección que sea sumada a un desplazamiento contenido en la instrucción.
-
Direccionamiento de base indexada
Se utilizan los registros SI o DI para calcular direccionamiento a través de la suma del registro con el desplazamiento contenido en la instrucción.
-
Diagrama de partes internas de la PC
-
Indique los tipos de software en general que existen
-
Software de sistema
-
Software de aplicación
-
Software de desarrollo
-
Indique los tipos de software de sistema que existen
-
Sistema operativo
-
Controladores
-
Utilitarios
-
Indique los tipos de software de sistema operativo que existen
-
Interfaz
-
Administrador de tareas
-
Administrador de archivos
-
Soporte
-
Defina que es Firmware
Programa de bajo nivel que controla al hardware.
Las instrucciones del ensamblador
Introducción de transferencias (MOV) trasferencia de datos entre celdas de memoria, registros y acumulador, los diferentes movimientos de datos permitidos para esta instrucción son:
Destino: memoria. Fuente: Acumulador
Destino: acumulador. fuente: memoria
Destino: registro de segmento. Fuente: memoria/registro
Destino: memoria/registro. Fuente: registro de segmento
Destino: registro. Fuente: registro
Las interrupciones del ensamblador
Los diferentes movimientos de datos permitidos para esta instrucción son:
Destino: registro. Fuente: memoria
Destino: memoria. Fuente: registro
Destino: registro. Fuente: data inmediato
Destino: memoria. Fuente: dato inmediato
MOVS (MOVSB)(MOVSW): Mover cadenas de bytes o palabras desde la fuente, direccionada por SI, hasta el destino direccionado por DI. Este comando no necesita parámetros ya que toma como dirección fuente el contenido del registro SI y como destino el contenido del DI.
LODS (LODSB)(LODSW): Cargar cadenas de un byte o palabra al acumulador.
LAHF: Transfiere al registro AH el contenido de las banderas. Las banderas quedan en el siguiente orden.
SF ZF ¿? AF ¿? PF ¿? CF
El símbolo ¿? Significa que en esos bits habrá un valor indefinido.
LDS: cargar el registro del segmento de DATOS
LES: Carga el registro del segmento EXTRA
LEA: Carga la dirección del operando fuente
POP: Recupera un dato de la pila
POP Destino: Esta instrucción transfiera el ultimo valor almacenado en la pila al operando destino, después incrementa en dos el registro SP.
POPF: Extrae las banderas almacenadas en la pila, este comando trasfiere bits de la palabra almacenada en la parte superior de la pila hacia el registro de banderas.
La forma de transferencia es la siguiente:
BIT |
BANDERA |
0 |
CF |
2 |
PF |
4 |
AF |
6 |
ZF |
7 |
SF |
8 |
TF |
9 |
IF |
10 |
DF |
11 |
OF |
PUSHF: Almacena las banderas en la pila, este comando almacena bits de bandera, en la parte superior de la pila, la forma de transferencia es la misma del cuadro anterior.
PUSH: Coloca una palabra en la pila, esta instrucción decrementa en dos el valor SP.
AND: Realiza la conjugación de los operandos bit por bit.
BYTE PTR, WORD PTR, DWORD PTR: define el tamaño del dato.
NOT: Lleva a cabo la negación bit por bit del operando destino.
NOT Destino: El operando se guarda en el mismo operando destino.
OR: Lleva a cabo bit por bit la disyunción inclusiva lógica de dos operandos
XOR: Su función es efectuar bit por bit la disyunción exclusiva lógica de dos operandos.
ADC (Adición por acarreo): Lleva a cabo la suma de dos operandos, el resultado se guarda en el operador destino.
DIV: Realiza la división (sin signo) entre AX otro registro, quedando el resultado en AL y el modulo en AH, es decir, el algoritmo es AL = AX/Registro, AH.
SBB: Sustracción con acarreo.
INSTRUCCIONES DE SALTO.
Son utilizadas para transferir el flujo del proceso al operando indicado.
JA o JNBE salta si está arriba o salta si no está por debajo o sino es igual, el salto se efectúa si la bandera de CF=0 o si la bandera ZF=0.
JAE o JNB salta si está arriba o es igual, o salta si no está por debajo, el salto se efectúa si CF=0.
JB o JNEA salta si está por debajo o salta si no está por arriba o es igual, el salto se efectúa si CF=1.
JBE o JNA salta si esta por abajo o es igual, o salta si no está por arriba, el salto se efectúa si CF=1 o ZF=1.
JE o JZ salta si es igual o salta si es cero, el salto se efectúa si ZF=1.
JNE o JNCE salta si es mayor o salta si no es menor o igual a cero, el salto se efectúa si ZF=0 u OF=SF.
JGE o JNL salta si es mayor o igual, o salta si no es mayor o igual, el salta se efectúa si SF<>OF.
JLE o JNG salta si es mayor o igual, o salta si no es mayor, el salto se efectúa si ZF=1 o SF<>OF.
JNC salta si no hay acarreo, el salto se efectúa si CF=0.
JNO salta si no hay desbordamiento, el salto se efectúa si OF=0.
JNP salta si no hay paridad, o salta si la parida es impar, el salto se efectúa si PF=0.
JO salta si hay subreflujo, el salto se efectúa si OF=1.
JP o JPE salta si hay paridad o salta si la paridad es par, el salto se efectúa si PF=1.
JS salta si hay signo, el salto se efectúa si SF=1.
LOOP el formato general de esta instrucción es:
MOV
CX, No_veces
Etiqueta:
———
Loop etiqueta
EXAMEN FINAL
-
Realice el diagrama de la circuitería interna de una computadora.
-
Desarrolle el tema arquitectura de computadoras.
Es el diseño conceptual y estructural de la operación fundamental de un sistema de computadoras.
- Indique los tipos de registros que existen.
- 4 Registros de segmento
- 4 Registros de propósito general
- 2 Registros apuntadores
- 2 Registros de direcciones
- 1 Registros de banderas
- 1 Registro apuntador de instrucciones
- Desarrolle un programa que determine de dos números, si el primero es mayor, menos o son iguales.
.model
small
.stack
.data
var1 db
?
var2 db
?
msg1 db
‘++ El primero es mayor++ $’
msg2 db
‘++ El primero es menor++$’
msg3 db
‘++ Son iguales++$’
msg4 db
‘++ Primero valor++ $’
msg5 db
‘++ Segundo valor++ $’
.code
.startup
mov
ah,00h
;Activamos el modo video
mov
al,03h
;Modo de texto
int
10h
;Interrupción 10, controla los servicios de pantalla
mov
ah,02h
;Asigna posición del cursor
mov
dx,0510h
mov
bh,0
;Asigna el cursor en la posición 0 de la pantalla
int
10h
;Interrupción 10, controla los servicios de pantalla
mov
ah,09h
;Impresion en pantalla de cadena de caracteres en este caso la cadena msg4
lea
dx,msg4 ;Visualizamos el mensaje «msg4»
int
21h
;Interrupción DOS
mov
ah,07h
;Petición para leer caracteres
int
21h
;Interrupción DOS
mov
ah,
02h
;Activamos el poder desplegar algun texto en pantalla
mov
dl,al
;Este va a ser el primer valor que vamos a guardar
int
21h
;Interrupción DOS
mov var1,al
;Pasamos el valor ingresado a «var1»
mov
ah,09h
;Impresion en pantalla de cadena de caracteres en este caso la cadena msg5
lea
dx,msg5 ;Visualizamos el mensaje «msg5»
int
21h
;Interrupción DOS
mov
ah,07h
;Petición para leer caracteres
int
21h
;Interrupción DOS
mov
ah,02h
;Activamos el poder desplegar algun texto en pantalla
mov
dl,al
;Este va a ser el segundo valor que vamos a guardar
int
21h
;Interrupción DOS
mov var2,al
;Pasamos el valor ingresado a «var2»
cmp var1,al
;Comparamos el primer valor ingresado en «var1» con el segundo valor que hay en el «al»
ja mayor ;Salta si es mayor «var1» que «al»
jb menor ;Salta si es menor «var1» que «al»
je igual ;Salta si es igual «var1» que «al»
mayor:
; etiqueta mayor
mov
ah,09h
;Impresion en pantalla de cadena de caracteres en este caso la cadena msg1
lea
dx,msg1 ;Visualizamos el mensaje «msg1»
int
21h
;Interrupción DOS
jmp salir ;Saltar sin importar que, esto nos lleva a la etique «salir»
menor:
;etiqueta menor
mov
ah,09h
;Impresion en pantalla de cadena de caracteres en este caso la cadena msg2
lea
dx,msg2 ;Visualizamos el mensaje «msg2»
int
21h
;Interrupción DOS
jmp salir ;Saltar sin importar que, esto nos lleva a la etique «salir»
igual:
; etiqueta igual
mov
ah,09h
;Impresion en pantalla de cadena de caracteres en este caso la cadena msg3
lea
dx,msg3 ;Visualizamos el mensaje «msg3»
int
21h
;Interrupción DOS
jmp salir ;Saltar sin importar que, esto nos lleva a la etique «salir»
salir:
; etiqueta salir
.exit
;sale del programa
End
- Desarrolle un programa que lea un archivo y pase todo el contenido leído a mayúsculas y lo escriba en un archivo de salida.
.model
small
.data
original db
10,13,«Sin Cambio: $»
;10 es avance de linea y el 13 es retorno de carro (en la maquinas de escribir)
FRASE db
«Ingeniera CABrona»,‘$’
; metemos la frase en «$»
Mayusculas db
10,13,«Pasando a Mayusculas: $»
Minusculas db
10,13,«Pasando a Minusculas: $»
.code
mov
ax,@data ;Carga en AX la dirección del segmento de datos
mov
ds,ax
;Mueve la dirección al registro de segmento por medio de AX
lea
dx,original ;donde se guarda el valor en la variable «original»
mov
ah,09h
;Imprimir en pantalla
int
21h
;Interrupción DOS
lea
dx,Mayusculas ;donde se guarda el valor en la variable «Mayusculas»
mov
ah,09h
;Imprimir en pantalla
int
21h
;Interrupción DOS
call PasoAMayusculas ;Llamamos a la funcion
lea
dx,Minusculas ;donde se guarda el valor en la variable «Minusculas»
mov
ah,09h
;Imprimir en pantalla
int
21h
;Interrupción DOS
call PasoAMinusculas ;Llamamos a la funcion
mov
ah,4ch
int
21h
PasoAMayusculas proc
;funcion
mov
si,0
;Ponemos el registro de indice SI en cero
sigueMayus:
mov
al,FRASE[si]
;activar el modo de texto y guardamos «FRASE» en la dirección cero
cmp
al,‘$’
jz finMay ;llego al final de la cadena
cmp
al,‘z’;compara si es al mayor a z solo se imprime
;Las mayusculas son menores a las minusculas
jg sigueMay
cmp
al,‘a’;compara si al es menor a no se tiene que pasar a mayuscula
jl sigueMay ;Solo lo envia a imprimir
;Sino es porque esta dentro de las minusculas
sub
al,20H
;Se le resta 20h para pasarlo de minusculas a mayusculas 20H=32Dec
sigueMay:
mov
dl,al
mov
ah,2
;imprime caracter en dl
int
21h
inc
si
jmp sigueMayus ;verifica el siguiente caracter
finMay: ret
;regresa a donde se llamo
PasoAMayusculas endp
PasoAMinusculas proc
mov
si,0
sigueMinus:
mov
al,FRASE[si]
cmp
al,‘$’
jz finMinus ;llego al final de la cadena
cmp
al,‘Z’
jg sigueMinus ; si al comparar es mayo a Z es porque no es mayuscula
cmp
al,‘A’
jl sigueMinus ; si al comparar es mayor a Z es porque es minuscula
add
al,20H
;si llego aqui es porque es mayuscula y lo convierte en minuscula
sigueMinus:mov
dl,al
;imprime lo que esta en dl
mov
ah,2
int
21h
inc
si
jmp sigueMinus
finMinus: ret
;regresa a donde se llamo
PasoAMinusculas endp
end