Ciclos numericos
Un ciclo, conocido también como interacción, es la repetición de un proceso un cierto número de veces hasta que alguna condición se cumpla. En estos ciclos se utilizan los brincos condicionales basados en el estado de la bandera.
Los ciclos numéricos que se utilizan son los siguientes:instrucción jmp, instrucción loop, instrucción cmp, instrucción cmps e instrucción de conteo.
Instrucción JMP
Es una instrucción basada comúnmente para la transferencia de control, un salto es incondicional ya que la operación transfiere el control bajo cualquier circunstancia. También vacía el resultado de la instrucción previamente procesada: por lo que un programa con muchas operaciones de saltos puede perder velocidad de procesamiento, el formato general para la instrucción JMP es: [etiqueta] |jmp| dirección corta, cercana o lejana|
Instrucción LOOP
La instrucción Loop requiere un valor inicial en el registro CX, en cada interación, Loop de forma automática disminuye 1 de CX. Si el valor en el CX es cero, el control pasa a la instrucción que sigue; si elvalor en el CX no es cero, el control pasa a la dirección del operando.
La distancia debe ser un salto corto, desde -128 hasta +127 bites. Para una operación que exceda este limite,el ensamblador envia un mensaje como un salto relativo fuera de rango.
Instrucción CMP
La instrucción CMP por lo común es utilizada para comparar dos campos de datos, uno de los cuales están contenidos en un registro. El formato general para el CMP es: |[etiqueta]|CMP |{registro/memoria}, {registro/memoria/inmediato}|
La arquitectura de los procesadores x86 obliga al uso de segmentos de memoria
para manejar la información, el tamaño de estos segmentos es de 64kb.
La razón de ser de estos segmentos es que, considerando que el tamaño máximo
de un número que puede manejar el procesador esta dado por una palabra de 16
bits o registro, no sería posible accesar a más de 65536 localidades de memoria
utilizando uno solo de estos registros, ahora, si se divide la memoria de la pc en
grupos o segmentos, cada uno de 65536 localidades, y utilizamos una dirección
en un registro exclusivo para localizar cada segmento, y entonces cada dirección
de una casilla específica la formamos con dos registros, nos es posible accesar a
una cantidad de 4294967296 bytes de memoria, lo cual es, en la actualidad, más
memoria de la que veremos instalada en una PC.
Para que el ensamblador pueda manejar los datos es necesario que cada dato o
instrucción se encuentren localizados en el área que corresponde a sus
respectivos segmentos. El ensamblador accesa a esta información tomando en
cuenta la localización del segmento, dada por los registros DS, ES, SS y CS, y
dentro de dicho registro la dirección del dato específico.
para manejar la información, el tamaño de estos segmentos es de 64kb.
La razón de ser de estos segmentos es que, considerando que el tamaño máximo
de un número que puede manejar el procesador esta dado por una palabra de 16
bits o registro, no sería posible accesar a más de 65536 localidades de memoria
utilizando uno solo de estos registros, ahora, si se divide la memoria de la pc en
grupos o segmentos, cada uno de 65536 localidades, y utilizamos una dirección
en un registro exclusivo para localizar cada segmento, y entonces cada dirección
de una casilla específica la formamos con dos registros, nos es posible accesar a
una cantidad de 4294967296 bytes de memoria, lo cual es, en la actualidad, más
memoria de la que veremos instalada en una PC.
Para que el ensamblador pueda manejar los datos es necesario que cada dato o
instrucción se encuentren localizados en el área que corresponde a sus
respectivos segmentos. El ensamblador accesa a esta información tomando en
cuenta la localización del segmento, dada por los registros DS, ES, SS y CS, y
dentro de dicho registro la dirección del dato específico.
Comentarios
Publicar un comentario