Todo el contenido de la Clase Organización de computadoras UMG

¿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

  1. Indique los tipos de software en general que existen.
    1. Sistemas
    2. Aplicaciones
    3. Desarrollo
  1. Indique los tipos de software de sistemas que existen.
    1. Sistemas operativos
    2. Controladores
    3. Utilitarios
  1. Indique los tipos de software de sistemas operativos que existen
    1. Interfaz
    2. Administrador de tareas
    3. Administrador de archivos
    4. Soporte
  1. Defina que es el firmware.

    Es un software que maneja físicamente al hardware.

  2. 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.

  3. 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.

  4. Indique en que consiste la unidad de ejecución.

  5. Indique las secciones de las que se forma la unidad de instrucción.
  6. Indique para que se usa el bus de control.

El bus de control verifica que los datos estén correctos.

  1. 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

  1. 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
  1. Indique cuales son los registros de propósito general.
  • AX – Acumulador principal
  • BX – Registro Base
  • CX – Registro Contador
  • DX – Registro de datos

  1. 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

  2. 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

  3. 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]

  4. 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]

  5. 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]

  6. 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]

  7. 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

  1. Indique cuales son los tipos de datos.
  • Simples
  • Compuestos
  1. Indique los componentes que forman la arquitectura VNA
  • Unidad de control
  • Dispositivo de operación
  • Dispositivo de Memoria
  • Dispositivos de E/S
  1. Indique cual es la función del bus de salida

    Transferir datos entre dispositivos.

  2. En que consiste el bus de datos

    Permite el intercambio de datos entre la CPU y el resto de dispositivos.

  3. 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.

  4. Indique en que consiste el bus de control

    Se encarga del uso y acceso a las líneas de datos y de dirección.

  5. 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
  1. 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.
  1. 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
  1. Para que sirven los ciclos de segmento

    Sirven para referenciar áreas de memoria.

  2. Defina cada uno de los registros de propósito general.
  • AX – Acumulador principal
  • BX – Registro base
  • CX – Registro contador
  • DX – Registro de datos
  1. Registros que se utilizan para manejo de información de STACK

    Registros de apuntador SP y BP

  2. Cuáles son los registros de índice
  • SI – Índice fuerte
  • DI – Índice destino

  1. 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.
  1. Direccionamiento de registro

    Sus operandos se encuentran alineados en cualquiera de los registros generales o registros de segmento.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. Diagrama de partes internas de la PC

  7. Indique los tipos de software en general que existen
  • Software de sistema
  • Software de aplicación
  • Software de desarrollo
  1. Indique los tipos de software de sistema que existen
  • Sistema operativo
  • Controladores
  • Utilitarios
  1. Indique los tipos de software de sistema operativo que existen
  • Interfaz
  • Administrador de tareas
  • Administrador de archivos
  • Soporte
  1. 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

  1. Realice el diagrama de la circuitería interna de una computadora.
  2. Desarrolle el tema arquitectura de computadoras.

    Es el diseño conceptual y estructural de la operación fundamental de un sistema de computadoras.

  3. 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
  1. 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

  1. 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

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Blog de WordPress.com.

Subir ↑

A %d blogueros les gusta esto: