Está en la página 1de 2

Olvera Carreo Rodrigo Alejandro Estructura y Programacin de Computadoras

Formato de Instruccin 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 instruccin es un cdigo con cuatro posibles prefijos y cuatro
sufijos opcionales.
De izquierda a derecha:
-Prefijo de instruccin. Se considera como un modificador. Estos son todos los prefijos de
instruccin posibles y algunas de las limitaciones de su uso:
F3h : REP, REPE y REPZ: Se usan slo con operaciones con cadenas (stosb, movsb, etc)
F2h: REPNE y REPNZ: De nuevo, slo se usan con operaciones con cadenas
F0h: LOCK: Se usa slo 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 tamao de direccin.
-Prefijo de tamao de operando.
-Anulacin 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 Carreo Rodrigo Alejandro Estructura y Programacin de Computadoras
-Cdigo de operacin. Es un byte que representa la instruccin a ejecutarse.
Desafortunadamente son tantos los cdigos que existen que es imposible listarlos todos,
sin embargo, algunos de ellos son pblicos en la pgina de internet "developer.intel.com".
-Byte de Registro/Memoria. Este es el byte ms complejo de todos y depende del cdigo de
operacin. Su propsito es el de decirle al cdigo de operacin qu operando utilizar. Es
algo as:


El espacio de "Mod" bsicamente dice qu tipo de direccionamiento el cdigo de operacin
debe utilizar. La seccin Reg/Opcode mantiene un valor para un registro tres bits extras
del cdigo de operacin. 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 direccin
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 instruccin en particular.
-El campo inmediato. Contiene una instruccin inmediata para ser procesada.