tema 2. arquitectura ia-32 lección 1. arquitectura de los microprocesadores ia-32 intel...

60
TEMA 2. ARQUITECTURA IA-32 Lección 1. Arquitectura de los microprocesadores IA-32 Intel Architecture Software Developer’s Manual Vol 1 caps 2.

Upload: carlos-juarez-murillo

Post on 24-Jan-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: TEMA 2. ARQUITECTURA IA-32 Lección 1. Arquitectura de los microprocesadores IA-32 Intel Architecture Software Developer’s Manual Vol 1 caps 2

TEMA 2. ARQUITECTURA IA-32

Lección 1. Arquitectura de los microprocesadores IA-32

Intel Architecture Software Developer’s Manual Vol 1 caps 2.

Page 2: 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

Page 3: 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 3

Page 4: 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 4

Page 5: 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 5

Page 6: 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 6

Page 7: 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 7

Page 8: 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 8

Page 9: 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 9

Page 10: 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 10

Page 11: 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 11

Page 12: 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 12

Pentium IV: Modos de operación

Protegido

Real

SSM ( System Management Mode)

Page 13: 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 13

Pentium IV: Entorno básico

Memoria Registros propósito general Registros de segmento Registros FPU Registros MMX Registros XMM Registro EFLAGS

Page 14: 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 14

EFLAGS

Page 15: 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 15

Pentium IV: Otros registros Registros de control

Registros de gestión de memoria

Registros de depuración

Registro CPUID

Otros registros

Page 16: 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 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

Page 17: 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 17

Pentium IV: Formato de instrucciones

Page 18: 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 18

Pentium IV: Formato de instrucciones

Page 19: 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 19

Pentium IV: Formato de instrucciones

Page 20: 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 20

Instrucciones de movimiento de datos

MOV destino, fuente

CMOVcc destino,fuente

Page 21: 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 21

Instrucciones de movimiento condicional

Page 22: 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 22

Instrucciones de intercambio

XCHG destino, fuente

BSWAP

XADD

CMPXCHG /CMPXCHG8B

Page 23: 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 23

Instrucciones de uso de la pila

PUSH fuente

POP destino

PUSHA /POPA

Page 24: 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 24

Instrucciones de conversión de tipo

CBW

CWD /CWDE

CDQ

MOVSX /MOVZX destino

Page 25: 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 25

Instrucciones aritméticas (1)

ADD/ADC destino, fuente

SUB/SBB destino, fuente

MUL/IMUL fuente

DIV/IDIV fuente

Page 26: 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 26

Instrucciones aritméticas (2)

INC/DEC operando

CMP destino, fuente

NEG operando

Page 27: 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 27

Instrucciones de ajuste decimal

DAA/DAS

AAA/AAS/AAM/AAD

Page 28: 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 28

Instrucciones lógicas

AND destino, fuente

OR destino, fuente

XOR destino, fuente

NOT operando

Page 29: 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 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

Page 30: 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 30

Instrucciones de bit y byte

BT/BTS/BTR/BTC operando, nº bit

BSF/BSR destino,origen

SETcc destino

TEST destino, fuente

Page 31: 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 31

Instrucciones de transferencia incondicional

JUMP (short near far) etiqueta

CALL/RET etiqueta

INT/IRET

Page 32: 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 32

Instrucciones de salto condicional

Page 33: 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 33

Instrucciones de bucles

LOOP etiqueta

LOOPE/LOOPZ/LOOPNE/LOOPNZ etiq

JECXZ etiqueta

Page 34: 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 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

Page 35: 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 35

Prefijos de repetición

REP

REPE/REPZ

REPNE/REPNZ

Page 36: 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 36

Instrucciones de entrada y salida

IN registro, nº puerto

OUT nº puerto, registro

INS/OUTS

Page 37: 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 37

Instrucciones de EFLAGS

STC/CLC/CMC

STD/CLD

STI/CLI

LAHF/SAHF

PUSHF/POPF

Page 38: 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 38

Instrucciones de miscelánea

LEA destino, fuente

XLAT/XLATB

CPUID

NOP

Page 39: 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 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

Page 40: 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 40

Pila de registros x87 FPU

Page 41: 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 41

Registro de control x87 FPU

Page 42: 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 42

Registro de estado x87 FPU

Page 43: 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 43

Registro de tag x87 FPU

Page 44: 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 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

Page 45: 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 45

Instrucciones de transferencia de datos (1)

FLD origen_real

FST destino_real

FXCH registro x87

FCMOVcc registro x87

Page 46: 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 46

Instrucciones de transferencia de datos (2)

FILD entero FIST entero FISTP entero

FBLD decimal FBSTP decimal

Page 47: 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 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

Page 48: 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 48

Instrucciones aritméticas x87 (1)

FADD/FADDP/FIADD

FSUB/FSUBP/FISUB

FSUBR/FSUBRP/FISUBR

Page 49: 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 49

Instrucciones aritméticas x87 (2)

FMUL/FMULP/FIMUL

FDIV/FDIVP/FIDIV

FDIVR/FDIVRP/FIDIVR

Page 50: 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 50

Instrucciones aritméticas x87 (3)

FABS FCHS FSQRT FPREM/FPREM1 FRNDINT FXTRACT

Page 51: 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 51

Instrucciones de comparación x87FCOM/FCOMP/FCOMPP

Page 52: 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 52

Instrucciones de comparación x87FCOMI/FCOMIP

Page 53: 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 53

Otras instrucciones de comparación x87

FUCOM/FUCOMP

FICOM/FICOMP

FUCOMI/FUCOMIP

Page 54: 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 54

Instrucciones de clasificación: FXAM

Page 55: 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 55

Otra instrucción de comparación: FTST

Page 56: 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 56

Instrucciones trigonométricas FSIN

FCOS

FSINCOS

FPTAN

FPATAN

Page 57: 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 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

Page 58: 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 58

Instrucciones de control x87

FINIT/FNINIT : inicialización

FLDCW/FSTCW/FNSTSW : reg control

FSTSW/FNSTSW : reg. Estado

FCLEX/FNCLEX : bits excepción

Page 59: 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 59

Instrucciones carga y almacenamiento del entorno

FLDENV

FSTENV/FNSTENV

FSAVE/FNSAVE/FRSTOR

Page 60: 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 60

Otras instrucciones x87

FWAIT/FNWAIT

FNOP

FFREE

FINCSTP/FDECSTP