formato de instrucción de los procesadores intel.pdf

2
Olvera Carreño Rodrigo Alejandro Estructura y Programación de Computadoras Formato de Instrucción de los Procesadores Intel Los valores de los bytes en la parte inferior son la longitud de cada una de las unidades. En palabras sencillas, una instrucción es un código con cuatro posibles prefijos y cuatro sufijos opcionales. De izquierda a derecha: -Prefijo de instrucción. Se considera como un modificador. Estos son todos los prefijos de instrucción posibles y algunas de las limitaciones de su uso: F3h : REP, REPE y REPZ: Se usan sólo con operaciones con cadenas (stosb, movsb, etc) F2h: REPNE y REPNZ: De nuevo, sólo se usan con operaciones con cadenas F0h: LOCK: Se usa sólo con: BT, BTS, BTR, BTC (modos de operando 'mem, reg/imm') XCHG (modos de operando 'reg, mem' y 'mem, reg') ADD, OR, ADC, SBB (modos de operando 'mem, reg/imm') AND, SUB, XOR (todos los modos de operando) NOT, NEG, INC, DEC (en operando 'mem') -Prefijo de tamaño de dirección. -Prefijo de tamaño de operando. -Anulación de segmento. Se necesita en instrucciones como 'mov ax, fs:[eax]' donde el segmento se encuentra anulado. Estos son los bytes de segmento anulado disponibles así como el segmento que anula cada uno: 2Eh CS 36h SS 3Eh DS 26h ES 64h FS 65h GS

Upload: rodrigo-olvera

Post on 18-Jan-2016

21 views

Category:

Documents


1 download

TRANSCRIPT

Olvera Carreño Rodrigo Alejandro Estructura y Programación de Computadoras

Formato de Instrucción de los Procesadores Intel

Los valores de los bytes en la parte inferior son la longitud de cada una de las unidades.

En palabras sencillas, una instrucción es un código con cuatro posibles prefijos y cuatro

sufijos opcionales.

De izquierda a derecha:

-Prefijo de instrucción. Se considera como un modificador. Estos son todos los prefijos de

instrucción posibles y algunas de las limitaciones de su uso:

F3h : REP, REPE y REPZ: Se usan sólo con operaciones con cadenas (stosb, movsb, etc)

F2h: REPNE y REPNZ: De nuevo, sólo se usan con operaciones con cadenas

F0h: LOCK: Se usa sólo con:

BT, BTS, BTR, BTC (modos de operando 'mem, reg/imm')

XCHG (modos de operando 'reg, mem' y 'mem, reg')

ADD, OR, ADC, SBB (modos de operando 'mem, reg/imm')

AND, SUB, XOR (todos los modos de operando)

NOT, NEG, INC, DEC (en operando 'mem')

-Prefijo de tamaño de dirección.

-Prefijo de tamaño de operando.

-Anulación de segmento. Se necesita en instrucciones como 'mov ax, fs:[eax]' donde el

segmento se encuentra anulado. Estos son los bytes de segmento anulado disponibles así

como el segmento que anula cada uno:

2Eh CS

36h SS

3Eh DS

26h ES

64h FS

65h GS

Olvera Carreño Rodrigo Alejandro Estructura y Programación de Computadoras

-Código de operación. Es un byte que representa la instrucción a ejecutarse.

Desafortunadamente son tantos los códigos que existen que es imposible listarlos todos,

sin embargo, algunos de ellos son públicos en la página de internet "developer.intel.com".

-Byte de Registro/Memoria. Este es el byte más complejo de todos y depende del código de

operación. Su propósito es el de decirle al código de operación qué operando utilizar. Es

algo así:

El espacio de "Mod" básicamente dice qué tipo de direccionamiento el código de operación

debe utilizar. La sección Reg/Opcode mantiene un valor para un registro ó tres bits extras

del código de operación. El campo de R/M contiene otro registro ó un operando de

memoria. Así luce cada registro:

000 AL, AX, EAX

001 CL, CX, ECX

010 DL, DX, EDX

011 BL, BX, EBX

100 AH, SP, ESP

101 CH, BP, EBP

110 DH, SI, ESI

111 BH, DI, EDI

-Byte de escala, índice, base. Este byte permite hacer cosas como '[EAX*8]' a la dirección

de memoria. Su formato es sencillo:

La escala es un valor de dos bits que representan una escala de 1(00), 2 (01), 4(10) u 8(11).

El índice es un registro, denotado por la tabla del punto anterior. La base a su vez es un

registro.

-Desplazamiento. El desplazamiento puede ser un desplazamiento de 1, 2 o 4 bytes para

una instrucción en particular.

-El campo inmediato. Contiene una instrucción inmediata para ser procesada.