Vous êtes sur la page 1sur 17

TIPOS DE INSTRUCCIONES

ALFREDO I. HERNANDEZ LOPEZ | ESTUDIANTE ING.SISTEMAS |


INVESTIGACION
CONTENIDO

1. Introducción 2

2. Instrucciones de transferencias entre registros 3

3. Instrucciones lógicas 4

4. Instrucciones aritméticas 4

5. Instrucciones de corrimiento 5

6. Generación de instrucciones de control 6


 Instrucciones condicionales o alternativas

7. Conclusión 14

8. Referencias 15

1
Introducción

Se denomina instrucción en informática al conjunto de datos insertados en una


secuencia estructurada o específica que el procesador interpreta y ejecuta.

Los tipos de instrucción permitidos están definidos y determinados dentro de cada


plataforma en el conjunto de instrucciones (en inglés ISA, instruction set
architecture), que también determina los registros de origen y destino de la CPU, y
en ocasiones un dato inmediato.

Estas instrucciones del computador son las que determinan el funcionamiento de


la CPU que las ejecuta. La CPU puede realizar una diversidad de funciones, que
son el reflejo de la variedad de las instrucciones definidas para dicha CPU. El
programador tiene un repertorio de instrucciones como medio para controlar la
CPU.

Instrucciones de transferencias entre registros


2
La operación de copiar datos de un lugar a otro es la operación más simple y a la
vez importante. Las palabras mover o cargar que aparecen en los juegos de
instrucciones de muchos ordenadores pueden dar lugar a confusión porque no se
trata de mover o cargar sino de copiar (generalmente, en Informática, la palabra
mover tiene el significado de copiar borrando el original). Las instrucciones de
transferencia de datos necesitan que se especifiquen el original (fuente u origen) y
el lugar donde se desea la copia (destino). Esta especificación variará según sean
estos lugares que pueden estar en tres sitios: registros del procesador, memoria o
cima de pila. Si el acceso es a una dirección de memoria habrá que especificarla
de forma explícita, si se trata de la cima de pila normalmente la especificación será
implícita, lo mismo ocurrirá si se trata del acumulador.

Estas operaciones pueden ser:

 registro a registro.

 registro a memoria.

 memoria a registro.

 memoria a memoria.

Nemotécnicos más frecuentes

 move copia el contenido de un registro (o memoria) a otro.

 store copia el contenido de un registro a memoria.

 load copia el contenido de una posición de memoria a un registro.

 move block copia un bloque de datos de una posición de memoria a otra.

 move multiple copia del origen en varias posiciones de memoria.

 exchange intercambia el contenido de dos operandos.

 clear pone a 0 el destino (todos los bits).

 set pone a 1 el destino (todos los bits).

 push introduce un dato en la cabecera de la pila (indicada por el SP).

 pop saca un dato de la cabecera de la pila (indicada por el SP).

3
INSTRUCCIONES LOGICAS
En este grupo se incluyen las instrucciones de conjunción, disyunción, disyunción
exclusiva y negación. La aplicación práctica de estas instrucciones no es a primera
vista del todo aparente, sin embargo, suelen estar presentes en la mayoría de
programas.

Nemotécnicos más frecuentes

 and: el "y" lógico.

 or: el "o inclusivo" lógico.

 xor: el "o exclusivo" lógico.

 not: la negación lógica. (complemento a 1, no confundir con el cambio de


signo "negate" que es el complemento a 2).

Estas instrucciones tienen en común que realizan sus operaciones “bit a bit”. Es
decir, el procesador realiza tantas operaciones lógicas como bits tienen los
operandos tomando los bits que ocupan la misma posición y, por tanto,
produciendo otros tantos resultados.

INSTRUCCIONES ARITMETICAS
pueden implicar transferencia de datos antes y/o después. Realizan operaciones
aritméticas de las que se encarga la ALU. Se pueden clasificar en de 1 operando
(valor absoluto, negación) y 2 operandos (suma, resta).

Nemotécnicos más frecuentes

4
 add: suma.

 add with carry: suma con acarreo.

 subtract: resta.

 subtract with borrow: resta teniendo en cuenta el adeudo anterior.

 increment: incrementa en 1 un valor.

 decrement: decrementa en 1 un valor.

 multiply: multiplica.

 divide: divide.

 extend: aumenta el operando de tamaño.

 negate: cambia de signo.

 absolute: valor absoluto.

INSTRUCCIONES DE CORRIMIENTO

Las instrucciones de desplazamiento se subdividen a su vez en dos categorías:


desplazamiento aritmético y desplazamiento lógico.

Las instrucciones de desplazamiento aritmético son aquellas que equivalen a


multiplicar y dividir un número por potencias de 2. Un desplazamiento de un bit
quiere decir que cada uno de ellos pasa a ocupar la siguiente posición (a derecha
o izquierda) y por tanto, dependiendo de cómo se introduzcan nuevos valores y
cómo se descarte el bit sobrante, dicha operación es idéntica a multiplicar por 2.

5
En adelante se asume que el bit más significativo de un número es el de más a su
izquierda.

Desplazamiento aritmético de 1 bit en un número de 8 bits

Para que la equivalencia entre los desplazamientos de bits y la operación


aritmética de multiplicación y división por 2 sean realmente equivalentes hay que
tener en cuenta una serie de factores.

 Si se desplaza un número a la izquierda, el nuevo bit menos significativo


debe tener el valor cero.

 Si se desplaza a la izquierda un número natural con su bit más significativo


a uno se produce desbordamiento.

 Si se desplaza un número a la derecha, el nuevo bit más significativo debe


tener valor idéntico al antiguo.

GENERACION INSTRUCCIONES DE CONTROL


Las instrucciones de control son aquellas que nos permiten variar o alterar la
secuencia normal de ejecución de un programa. Prácticamente la totalidad de
lenguajes de programación de alto nivel soportan tres tipos de instrucciones de
control:

 Instrucciones condicionales o alternativas.

6
 Instrucciones de salto.

 Instrucciones repetitivas.

INSTRUCCIONES CONDICIONALES O ALTERNATIVAS:


Alternativa simple:
Se evalúa una condición, ejecutándose un grupo de sentencias si el resultado es
“verdadero”, y no ejecutándose este grupo de sentencias si el resultado es “falso”.

Alternativa doble:
Se evalúa la condición, ejecutándose un grupo de sentencias si el resultado es
“verdadero”, y ejecutándose otro grupo alternativo de sentencias si el resultado es
“falso”.

7
Alternativa múltiple (o selector):
En lugar de una condición, se evalúa una expresión con múltiples pero finitos
resultados, ejecutándose en función del resultado de la expresión, un grupo de
sentencias entre múltiples posibles.

Instrucciones alternativas anidadas:


También es posible utilizar la instrucción Si-Sino para diseñar estructuras de
selecciones entre más de dos alternativas. Esto se consigue mediante las
estructuras anidadas, donde tanto la rama Si como la Sino pueden contener a su

8
vez otra instrucción Si-Sino, y así sucesivamente un número determinado de
veces. Veamos un ejemplo:

INSTRUCCIONES DE SALTO:
Se utilizan para realizar un salto, es decir, para transferir el control a un punto del
programa donde seguirá la ejecución del mismo, pero perdiendo toda posibilidad
de retornar de forma controlada la ejecución del programa al punto de llamada.
No se aconseja su utilización porque crean un código difícil de leer y mantener,
estando su uso muy restringido en programación estructurada.
Podemos hablar de dos tipos de sentencias de salto:

 Salto condicional: alteran la secuencia de ejecución de un programa sólo


y exclusivamente en el caso de que una condición específica sea cierta.

 Salto incondicional: alteran la secuencia de ejecución de un programa


siempre al no ir acompañadas de una condición de limite en determinadas
ocasiones la realización del salto a otra parte del programa.

INSTRUCCIONES REPETITIVAS:
Este tipo de instrucciones también son conocidas como bucles, ciclos o lazos. Lo
que hacen es que mientras se verifique una condición, un segmento del algoritmo
o programa se repita consecutivamente.

9
En cada repetición del bucle (o iteración) se evalúa la expresión de control del
bucle (o condición), que determinará si continuamos realizando otra iteración o
bien salimos definitivamente del bucle.

Podemos distinguir tres tipos de bucles, dependiendo de que la condición de


control del bucle se evalúe antes o después de cada iteración, y de que se pueda
fijar de antemano o no el número de iteraciones a realizar.

El bucle “mientras”:
Se utiliza cuando se desea que un bucle de instrucciones se ejecute mientras una
condición sea cierta.

10
Características del bucle “mientras”:

 Permite repetir un bloque de instrucciones de 0 a n veces.

 La condición se evalúa antes de ejecutar el bucle, por lo que si la condición


es falsa a la entrada del bucle, éste no se ejecutará ninguna vez.

 Mientras la condición sea cierta, el bucle se repetirá, por lo que debemos


incluir dentro del cuerpo del bucle alguna sentencia que en determinadas
condiciones llegue a hacer falsa la condición del bucle para poder salir del
mismo, ya que de lo contrario no terminaría nunca y nos enfrentaríamos a
un bucle infinito.

El bucle “repetir mientras”:


Es similar al bucle “mientras” con la diferencia de que la condición se evalúa
después de ejecutar el cuerpo del bucle.

11
Características del bucle “repetir mientras”:

 Permite repetir un bloque de instrucciones de 1 a n veces.

 La condición se evalúa después de ejecutar el bucle, por lo que


independientemente de cómo sea la condición, éste se ejecutará siempre al
menos una vez.

 Mientras la condición sea cierta, el bucle se repetirá, debiendo incluir dentro


del cuerpo del bucle alguna sentencia que en determinadas condiciones
llegue a hacer falsa la condición del bucle para poder salir del mismo.

El bucle “desde”:
Se utiliza cuando se desea que un bucle se ejecute repetidamente un número
determinado de veces que se conoce por anticipado.

12
Características del bucle “desde”:

 Comienza siempre realizando la asignación del valor inicial a la variable de


control o índice del bucle. Siempre la primera iteración del bucle se
realizará con la variable índice al valor inicial.

 Las acciones especificadas en el cuerpo del bucle se ejecutarán (a menos


que el valor final sea mayor que el inicial) y al finalizar el cuerpo del bucle,
automáticamente la variable índice incrementa en el valor establecido (hay

13
lenguajes que no permiten establecer valores para el incremento distintos a
la unidad).

 Si el nuevo valor de la variable índice no excede del valor final, se


ejecutarán de nuevo las instrucciones y se procederá a un nuevo
incremento de la variable índice, repitiéndose todo esto hasta que el valor
de la variable índice supere al valor final establecido.

 En algunos lenguajes existe la posibilidad de utilizar bucles desde con


decremento en cada iteración. En este caso se debe establecer un valor
inicial para la variable índice mayor que el valor final.

Particularidad:
El bucle “desde” no es más que una forma compacta de escribir un bucle
“mientras”.

14
Conclusión

En conclusión , tal como una receta de cocina , las instrucciones en el campo de la


tecnología es imprescindible ya que toda la información que se procesa,
dependiente del tipo de información ,son las instrucciones que se van a realizar.

15
REFERENCIAS

CONJUNTO DE INSTRUCCIONES()UNIVERSIDAD DE VALLADOLID


https://www.infor.uva.es/~bastida/OC/conjunto.pdf

Arquitectura de computadores(2009) UNIVERSIDAD TECNICA PARTICULAR DE


LOJA https://es.slideshare.net/videoconferencias/arquitectura-de-computadores-cap-
virepertorio-de-instrucciones

CONJUNTO DE INSTRUCCIONES ()WIKIPEDIA LA ENCICLOPEDIA LIBRE

https://es.wikipedia.org/wiki/Conjunto_de_instrucciones#Transferencia_de_datos

JUEGOS DE INSTRUCCIONES UNIVERSIDAD CARLOS III DE MADRID

http://ocw.uc3m.es/ingenieria-telematica/arquitectura-de-
ordenadores/lecturas/html/isa.html#isa:sec:move

INSTRUCCIONES ARITMETICAS Y LOGICAS

curso-cm.speccy.org/fr_cap6.html

INSTRUCCIONES ARITMETICO-LOGICAS

www.atc.uniovi.es/telematica/2ac/Apuntes-y-Ejercicios/Instrucciones-Aritmetico-Logicas-
IA-32.pdf

16