Sunteți pe pagina 1din 10

TIPOS DE OPERACIONES EN EL PENTIUM Y EL POWER PC

El Pentium ofrece un amplio abanico de operaciones, incluyendo diversas instrucciones especializadas. La mayora coinciden con instrucciones convencionales que se pueden encontrar en la mayora de los repertorios de instrucciones mquina.

INSTRUCCIONES

Descripcin Transferencia de datos

MOV PUSH PUSHA MOVSX LEA

Transferir el operando, entre registros o entre registro y memoria. Apilar el operando Apilar todos los registros <<Move byte, word, dword, sign extend>> Transfiere un byte a una palabra, o una palabra a una palabra doble, extendiendo hacia la izquierda el signo segn la representacin en complemento a dos. <<Load effective addres>>, Carga el desplazamiento del operando origen, en lugar de su valor, en el operando destino. <<Table lookup translation>>. Sustituye un byte de AL con otro de una tabla de traduccin codificada por el usuario. Cuando se

XLAT

ejecuta XLAT, AL debe tener un ndice sin signo de la tabla. XLAT cambia el ndice que contiene AL por el correspondiente elemento de la tabla.

IN, OUT

Entrada o salida de operando desde el (o al) espacio de E/S. Aritmticas

ADD SUB MUL IDIV

Sumar los operandos Restar los operandos Multiplicar de enteros sin signo, con operandos de un byte, una palabra o una palabra doble, y como resultado una palabra, una palabra doble, o una cudruple. Divisin con signo. Lgicas

AND BTS

Producto lgico de los operandos <<Bit Test and Set>>. Opera con un operando de campo de bits. La instruccin copia el valor actual de un bit en un indicador CF y pone a 1 el bit original. <<Bit Scan Forward>>. Busca en una palabra o en una palabra doble el primer bit a 1 y almacena su nmero de posicin en un registro. Desplazamiento lgico a izquierda o a derecha. Desplazamiento aritmtico a izquierda o a derecha. Rotar a izquierda o a derecha

BSF SHL/SHR SAL/SAR ROL/ROR

Instruccin

Descripcin Control de flujo

JMP CALL JE/JZ LOOPE/LOOPZ

Salto incondicional Transfiere el control a otra posicin. Antes de transferirlo, se introduce en la pila la direccin de la instruccin siguiente a la CALL. Salto si igual/cero. Bucle si igual/cero. Se trata de una bifurcacin condicional utilizando un valor almacenado en el registro ECX. La instruccin primero decrementa ECX antes de comprobar ECX para la condicin de salto.

INT/INTO

Interrupcin/Interrupcin_si_desbordamiento. Transfiere el control a una rutina de servicio de interrupciones.


Operaciones con cadenas <<Move byte, word, dword string>>. Esta instruccin opera con un elemento de una cadena, indexada por los registros ESI y

MOVS

EDI. Despus de cada operacin con un elemento de la cadena, dichos registros se incrementan o decrementan automticamente, para apuntar al siguiente elemento de la cadena.

LODS

Carga un byte, una palabra, o una palabra doble de una cadena.

Instrucciones de soporte a lenguajes de alto nivel


ENTER LEAVE Crea un marco de pila de puede utilizarse para implementar las reglas de un lenguaje de alto nivel estructurado por bloques. Realiza la funcin inversa de la instruccin ENTER. Comprueba los extremo de una matriz. Verifica si el valor del operando 1 est entre ciertos lmites inferior y superior. Los BOUND limites se encuentran en dos posiciones adyacentes indicadas por el operando 2. Si el valor esta fuera de dichos lmites se

produce una interrupcin. Esta instruccin se emplea para comprobar los ndices de una matriz.
Control de indicadores STC LAHF Activa el indicador de acarreo. Carga el registro A con los valores de los indicadores. Coppia los bits SF, ZF, AF, PF y CF en el registro A. Registro de segmentos LDS Carga un puntero en el registro de segmentos D.

Instruccin

Descripcin Control del sistema

HLT LOCK

Parar Toma posesin de la memoria compartida para que el Pentium haga uso exclusivo de ella durante la instruccin que sigue inmediatamente a la LOCK. Escape de ampliacin del procesador. Es un cdigo de escape para indicar que las instrucciones que siguen van a ser ejecutables por un coprocesador aritmtico que permite clculos de la precisin de enteros y en coma flotante. Espera hasta un BUSY# negado. Suspende la ejecucin del programa del Pentium hasta que el procesador detecte que el terminal BUSY est inactivo, indicando que el coprocesador aritmtico ha finalizado su operacin. Proteccin

ESC

WAIT

SGDT
LSL VERR/VERW

Memoriza una tabla original de descriptores.


Carga el lmite de segmento. Carga un registro especificado por el usuario con un lmite de segmento. Verifica el segmento para lectura/escritura. Gestin de cache

INVD WBINVD INVLPG

Limpia la memoria cache interna. Limpia la memoria cache interna despus de escribir en memoria las lneas que han sido modificadas. Invalida una entrada al buffer TLD

Instrucciones de llamada de retorno El Pentium contiene cuatro instrucciones para ejecutar llamadas/retornos

a/de procedimientos: CALL. ENTER, LEAVE, RETURN.


Gestin de memoria Son instrucciones privilegiadas que pueden ejecutarse solo desde el sistema operativo. Permiten cargar y leer tablas de segmentos locales y globales (llamadas tablas de descriptores), y comprobar y alterar el nivel de privilegio de un segmento. Cdigos de condicin

Estos bits de condicin se activan por operaciones aritmticas y de


comparacin.

El Pentium ofrece una gran variedad de tipos de operaciones

La mayora coinciden con instrucciones convencionales que se pueden encontrar en la mayora de los repertorios de instrucciones mquina.

Hay dos instrucciones que distinguen a las diferentes instrucciones de carga/memorizacin:

Tamao de dato: los datos pueden transferirse en unidades de un


byte, media palabra, palabra o palabra doble. Tambin se dispone de instrucciones para cargar o memorizar una cadena de bytes en o

de un conjunto de registros.
Extensin del signo: cuando se carga una palabra o una media palabra, los bits no utilizados de la parte izquierda del registro de 64

bits de destino se rellenan o bien con ceros o con el valor del bit de
signo del dato cargado.

Instruccin

Descripcin
Dedicadas a bifurcaciones

b bl bc sc Trap

Bifurcacin o salto incondicional Saltar a la direccin destino y colocar en el registro de enlace la direccin efectiva de la instruccin siguiente a la bifurcacin Salto condicional en funcin del registro de cuenta y/o bit del registro de condicin Llamada al sistema para invocar un servicio del sistema opertico Comparar dos operandos y, si se cumple la condicin especificada, invocar al gestor de interrupciones del sistema Carga/memorizacin Cargar una palabra y poner a cero los restantes bits de la izquierda; actualizar al registro origen Cargar una palabra doble Cargar una palabra mltiple; cargar palabras consecutivas en registros continuos, desde el especificado hasta el registro 31 de uso general Cargar una cadena de bytes en registros comenzando por el registro indicado; cuatro bytes por registro; y con conexin cclica del registro 31 al 0

Lwzu Id Lmw

l5wx

Instruccin Add Subf

Descripcin

Aritmtica de enteros
Sumar los contenidos de dos registros y ubicar el resultado en un tercero Restar los contenidos de dos registros y ubicar el resultado en un tercero Multiplicar los 32 bits menos significativos de los contenidos de dos registros y guardar el producto de 64 bits en un tercer registro. dividir los contenidos de 64 bits de dos registros y guardar el cociente en un tercer registro Lgicas y desplazamientos Cmp Crand and cntizd ridic sld Comparar dos operandos y fijar cuatro bits de condicin en el campo del registro de condicin que se especifica And del registro de condicin: se calcula el producto lgico de dos bits del registro de condicin y el resultado se guarda en una de las dos posiciones de bit Producto lgico de los contenidos de dos registros y guardar el resultado en un tercero Cuenta el nmero de bits a 0 consecutivos del registro origen, empezando por el bit cero, y guarda el resultado dela cuenta en el registro destino Rotar a la izquierda un registro de palabra doble, realizar la AND con una mscara, y almacenar el registro destino Desplazar a la izquierda un registro origen y almacenar en el registro de destino Coma flotante lfd fadd fmadd fcmpu dcbf Cargar de memoria un numero en coma flotante de 32 bits, convertir al formato de 64 bits, y memorizar en un registro de coma flotante Sumar los contenidos de dos registros y ubicar el resultado en un tercero Multiplicar los contenidos de dos registros, sumar el contenido de un tercero, y colocar el resultado en un cuarto registro Comparar dos operandos en coma flotante y fijar los bits de condicin Gestin de cach Limpia un bloque de la cach de datos; busca en las direcciones concretas de la cach y realiza la operacin

Mullw
Divd

icbi

Invalida un bloque de la cach de instrucciones

S-ar putea să vă placă și