Title: TEMA 2' ARQUITECTURA IA32
1TEMA 2. ARQUITECTURA IA-32
- Lección 1.
- Arquitectura de los microprocesadores IA-32
- Intel Architecture Software Developers Manual
Vol 1 caps 2.
2Evolución histórica de los microprocesadores
Intel 80x86
3 4 5 6 7 8 9 10 11 12Pentium IV Modos de operación
- Protegido
- Real
- SSM ( System Management Mode)
13Pentium IV Entorno básico
- Memoria
- Registros propósito general
- Registros de segmento
- Registros FPU
- Registros MMX
- Registros XMM
- Registro EFLAGS
14EFLAGS
15Pentium IV Otros registros
- Registros de control
- Registros de gestión de memoria
- Registros de depuración
- Registro CPUID
- Otros registros
16Pentium IV Direcciones de los operandos
- La propia instrucción Inmediato
- Registro
- Puerto I/O
- Memoria
- Segmento
- Offset Base Índice factor de escala
Desplazamiento
17Pentium IV Formato de instrucciones
18Pentium IV Formato de instrucciones
19Pentium IV Formato de instrucciones
20 Instrucciones de movimiento de datos
- MOV destino, fuente
- CMOVcc destino,fuente
21Instrucciones de movimiento condicional
22Instrucciones de intercambio
- XCHG destino, fuente
- BSWAP
- XADD
- CMPXCHG /CMPXCHG8B
23Instrucciones de uso de la pila
- PUSH fuente
- POP destino
- PUSHA /POPA
24Instrucciones de conversión de tipo
- CBW
- CWD /CWDE
- CDQ
- MOVSX /MOVZX destino
25Instrucciones aritméticas (1)
- ADD/ADC destino, fuente
- SUB/SBB destino, fuente
- MUL/IMUL fuente
- DIV/IDIV fuente
26Instrucciones aritméticas (2)
- INC/DEC operando
- CMP destino, fuente
- NEG operando
27Instrucciones de ajuste decimal
28Instrucciones lógicas
- AND destino, fuente
- OR destino, fuente
- XOR destino, fuente
- NOT operando
29Instrucciones de desplazamiento y rotación
- SAL/SAR/SHL/SHR destino, nº bits
- SHLD/SHRD destino,fuente
- ROL/ROR/RCL/RCR destino, nº bits
30Instrucciones de bit y byte
- BT/BTS/BTR/BTC operando, nº bit
- BSF/BSR destino,origen
- SETcc destino
- TEST destino, fuente
31Instrucciones de transferencia incondicional
- JUMP (short near far) etiqueta
- CALL/RET etiqueta
- INT/IRET
32Instrucciones de salto condicional
33Instrucciones de bucles
- LOOP etiqueta
- LOOPE/LOOPZ/LOOPNE/LOOPNZ etiq
- JECXZ etiqueta
34Instrucciones sobre cadenas de caracteres
- MOVS/MOVSB/MOVSW/MOVSD
- CMPS/CMPSB/CMPSW/CMPSD
- LODS/LODSB/LODSW/LODSD
- SCAS/SCASB/SCASW/SCASD
- STOS/STOSB/STOSW/STOSD
35Prefijos de repetición
- REP
- REPE/REPZ
- REPNE/REPNZ
36Instrucciones de entrada y salida
- IN registro, nº puerto
- OUT nº puerto, registro
- INS/OUTS
37Instrucciones de EFLAGS
- STC/CLC/CMC
- STD/CLD
- STI/CLI
- LAHF/SAHF
- PUSHF/POPF
38Instrucciones de miscelánea
- LEA destino, fuente
- XLAT/XLATB
- CPUID
- NOP
39El entorno de ejecución FPU-32
- Pila de registros
- Registro de estado
- Registro de control
- Registro de tag
- Registro puntero al ultimo operando
- Registro puntero a la última instrucción
- Registro de código de operación
40Pila de registros x87 FPU
41Registro de control x87 FPU
42Registro de estado x87 FPU
43Registro de tag x87 FPU
44Tipos de datos FPU
- Enteros de 16,32,64 bits en complemento a dos
- Reales de 32,64,80 bits
- Signo
- Exponente 8, 11, 15 bits
- Mantisa de 23, 52, 64 bits
- BCD de 80 bits
45Instrucciones de transferencia de datos (1)
- FLD origen_real
- FST destino_real
- FXCH registro x87
- FCMOVcc registro x87
46Instrucciones de transferencia de datos (2)
- FILD entero
- FIST entero
- FISTP entero
- FBLD decimal
- FBSTP decimal
47Instrucciones de carga de constantes
- FLDZ 0.0
- FLD1 1.0
- FLDPI p (pi)
- FLDL2T log2 10
- FLDL2E log2 e
- FLDLG2 log10 2
- FLDLN2 loge 2
48Instrucciones aritméticas x87 (1)
- FADD/FADDP/FIADD
- FSUB/FSUBP/FISUB
- FSUBR/FSUBRP/FISUBR
49Instrucciones aritméticas x87 (2)
- FMUL/FMULP/FIMUL
- FDIV/FDIVP/FIDIV
- FDIVR/FDIVRP/FIDIVR
50Instrucciones aritméticas x87 (3)
- FABS
- FCHS
- FSQRT
- FPREM/FPREM1
- FRNDINT
- FXTRACT
51Instrucciones de comparación x87FCOM/FCOMP/FCOMPP
52Instrucciones de comparación x87FCOMI/FCOMIP
53Otras instrucciones de comparación x87
- FUCOM/FUCOMP
- FICOM/FICOMP
- FUCOMI/FUCOMIP
54Instrucciones de clasificación FXAM
55Otra instrucción de comparación FTST
56Instrucciones trigonométricas
- FSIN
- FCOS
- FSINCOS
- FPTAN
- FPATAN
57Instrucciones logarítmicas, exponenciales y de
escalado
- FYL2X st0 st1log2(st0)
- FYL2XP1 st0 st1log2 (st01.0)
- F2XM1 st0 2st0 -1
- FSCALE st0 st0 2st1
58Instrucciones de control x87
- FINIT/FNINIT inicialización
- FLDCW/FSTCW/FNSTSW reg control
- FSTSW/FNSTSW reg. Estado
- FCLEX/FNCLEX bits excepción
59Instrucciones carga y almacenamiento del entorno
- FLDENV
- FSTENV/FNSTENV
- FSAVE/FNSAVE/FRSTOR
60Otras instrucciones x87
- FWAIT/FNWAIT
- FNOP
- FFREE
- FINCSTP/FDECSTP