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