Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


El processador, Apuntes de Fundamentos de la Informática

Asignatura: Fonaments d'informática, Profesor: , Carrera: Enginyeria Informàtica, Universidad: UAB

Tipo: Apuntes

2016/2017

Subido el 20/01/2017

catwrc
catwrc 🇪🇸

3.9

(23)

6 documentos

1 / 33

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
1
Procesador y ensamblador
2
Familia procesadores intel
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21

Vista previa parcial del texto

¡Descarga El processador y más Apuntes en PDF de Fundamentos de la Informática solo en Docsity!

1

Procesador y ensamblador

2

Familia procesadores intel

Familia procesadores intel

3

Core i

Clarkdale Sandy Bridge Ivy Bridge Haswell

2 2 2 CORES 2

32 nm 32 nm 22 nm 22 nm

January 2010 February 2011 September 2012 September 2013

Core i

Lynnfield Clarkdale Sandy Bridge Sandy Bridge Ivy Bridge Ivy Bridge Haswell Haswell

4 2 4 2 4 CORES 2 4 2

45 nm 32 nm 32 nm 32 nm 22 nm 22 nm 22 nm 22 nm

September 2009 January 2010 January 2011 February 2011 April 2012 April 2012 June 2013 June 2013

Core i

Bloomfield Lynnfield Gulftown Sandy Bridge Sandy Bridge-E Sandy Bridge-E Ivy Bridge Haswell Ivy Bridge-E Ivy Bridge-E

4 4 6 4 6 CORES 4 4 4 4 6

45 nm 45 nm 32 nm 32 nm 32 nm 32 nm 22 nm 22 nm 22 nm 22 nm

November 2008 September 2009 July 2010 January 2011 November 2011 February 2012 April 2012 June 2013 TBA TBA Core i Extreme Edition

Bloomfield Gulftown Sandy Bridge-E Ivy Bridge-E

4 6 CORES 6 6

45 nm 32 nm 32 nm 22 nm

November 2008 March 2010 November 2011 TBA

… y siguen surgiendo

4

Diseño modular del 8086 (14 registros)

AH AL BH BL CH CL DH DL SP BP DI SI

ALU

SR (FLAGS)

UC

unidad de ejecución

CS DS SS ES IP (o PC)

cola de instrucciones

lógica de control del bus

unidad de interfaz con el bus (BIU)

AX BX CX DX

registros de segmento

registros de propósito general

7

Registros arquitectura intel 32 bits (386 +)

Los registros se dividen en tres grupos:

•Registros de propósito general

•Registros de segmentos

•Registros especiales

  • Registro de banderas (flags)
  • Registro puntero de instrucciones

8

Registros de propósito general

•Los registros pueden ser de 2 tamaños diferentes:

  • de 8/16 bits (8086, +)
    • AH, AL, BH, BL, … / AX (AH AL), BX, BP, SI, DI, …
  • de 32 bits (80386, +)
    • reg 16 bits + parte extendida (EAX, EBX, EBP, ESP, …)

9

Registros de propósito general (cont.)

  • AX: acumulador, instrucciones aritméticas
  • BX: base, indicar un desplazamiento (offset)
  • CX: contador, dentro bucles o iteraciones
  • DX: datos, también para operaciones aritméticas
  • SI (source index): desplazamiento relativo a datos origen
  • DI (destination index): desplazamiento relativo a datos

destino

  • SP (stack pointer): puntero de la pila, dirección relativa al

segmento de pila

  • BP (base pointer): se utiliza para fijar el puntero de la pila

10

Registros de segmentos

  • CS (code segment): apunta a la base del segmento de

código, es decir, las instrucciones del programa

  • DS (data segment): apunta a la base de un segmento de

datos, es decir, el área de memoria donde están los

datos

  • SS (stack segment): apunta a la base del segmento de

pila

  • ES (extra segment): apunta a la base de un segmento de

datos extra

  • FS (80386, +): apunta a la base de un segmento de datos
  • GS (80386, +): apunta a la base de un segmento de

datos

13

Segmentación

14

Segmentación (cont.)

15

Cómo forma las direcciones?

16

Ejemplos: dirección lógica  dirección física

Dirección lógica Dirección física

Segmento:Desplazamiento

2000H:0205H 20205H

5100H:1000H 52000H

F000H:FFFFH FFFFFH

2010H:0105H ¿?

2020H:0005H ¿?

1900H:7205H ¿?

19

Segmentos y registros asociados (cont.)

  • Segmento pila

Los datos se direccionan mediante:

  • registro de segmento: SS
  • registro de desplazamiento: SP o BP
  • Segmento extra

Los datos se direccionan mediante:

  • registro de segmento: ES
  • registro de desplazamiento: BX, SI o DI

20

Prefijos de segmento

CS SS DS ES

IP si^ no^ no^ no

SP no^ si^ no^ no

BP prefijo^ por defecto^ prefijo^ prefijo

BX prefijo^ prefijo^ por defecto^ prefijo

SI prefijo^ prefijo^ por defecto^ prefijo

DI prefijo^ prefijo^ por defecto^ por defecto

Combinaciones entre los cuatro registros de segmentos y los seis registros de desplazamiento

21

Longitud de los datos

Doble palabra

Palabra

22

Constantes

Existen cinco tipos:

  • Binario 1011b
  • Decimal 129d
  • Hexadecimal 0E23h (no puede empezar por letra)
  • Octal 1477q (puede especificarse “q” u “o”)
  • Carácter “ABC” (las comillas pueden ser simples o dobles)

25

ADC (sumar con acarreo)

Sintaxis: ADC destino, origen

  • Suma los operandos origen, destino y el valor

del indicador de acarreo (CF: 0 ó 1) almacenando

el resultado en el operando destino.

  • Se utiliza normalmente para sumar números

grandes, de más de 16 bits, en varios pasos,

considerando lo que nos llevamos (el acarreo) de

la suma anterior.

Ejemplos:

add ax,cx ;fuente en dx,cx

adc bx,dx ;destino en bx,ax

26

ADD (sumar dos operandos)

Sintaxis: ADD destino, origen

  • Suma los operandos destino y origen almacenando el resultado en el operando destino.
  • El acarreo se activa si se desborda el registro destino durante la suma.
  • Los operandos deben ser del mismo tipo.

Ejemplos:

add ax,bx

add cl,012h

27

CALL (llamar a una subrutina)

  • Sintaxis: CALL destino
    • Transfiere el control del programa a una subrutina / procedimiento, salvando previamente en la pila la dirección de la instrucción siguiente, para poder volver a ella una vez ejecutado el procedimiento.
    • Se almacena en la pila una dirección de retorno de 16 bits o dos palabras de 16 bits indicando en este último caso tanto el offset (IP) como el segmento (CS) a donde volver (funciona como el push). Ejemplos: call proc ………… proc1 proc …. ret proc1 endp

28

CMP (comparar dos operandos)

Sintaxis: CMP destino, origen

  • Resta origen de destino (dest – orig) sin retornar el resultado. Los operandos quedan inalterados, pero los indicadores se actualizan, pudiéndose consultar a continuación mediante una instrucción de bifurcación condicional (je, jge,…).
  • Los operandos pueden ser de tipo byte o palabra pero ambos deben ser de la misma dimensión.

Ejemplos:

cmp bx, word ptr ds:[di]

cmp ch,cl

31

IN (entrada)

Sintaxis: IN acumulador,puerta

  • Transfiere un byte o una palabra de una puerta de

entrada del procesador al registro AL o AX,

respectivamente.

Ejemplo:

in ax,012h ;leer sobre AX una

;palabra de la puerta 012h

32

INC (incrementar)

Sintaxis: INC destino

  • Incrementa el operando destino. El operando destino puede ser un byte o un word (palabra).
  • Si todos los bits están en 1, pasarán a 0 con un INC y se truncará el número de bits del operando
  • Typecast imprescindible en el caso de un operando de memoria Ejemplos: inc al inc word ptr ss:[sp+4] inc word ptr es:[bx+di+7]

33

JMP (saltar / bifurcar)

  • Sintaxis: JMP dirección o JMP SHORT dirección
    • Transfiere el control incondicionalmente a la dirección indicada en el operando.
    • Las direcciones destino de salto se pueden especificar mediante etiquetas.

Ejemplos:

jmp etiqueta

etiqueta1:

;resto del código

34

LEA (cargar dirección efectiva)

Sintaxis: LEA destino, origen

  • Transfiere el desplazamiento del operando fuente al operando destino.
  • El operando destino debe ser un registro de propósito general (AX, BX, CX, DX, SI, DI, BP, SP)
  • En general, esta instrucción es equivalente a MOV destino,OFFSET fuente

Ejemplos:

lea dx,datos[si]

lea di,offset datos

mov ax,ds:[di] ;accedemos a var. datos.

37

MUL (multiplicar sin signo)

Sintaxis: MUL origen ( origen no puede ser operando inmediato)

  • Multiplica el contenido sin signo del acumulador (AX) por el operando origen.
  • Si el operando origen es de un byte el acumulador usado es AL guardándose el resultado en AX (si AH es distinto de 0 se activan los indicadores CF y OF). Si el operando origen es una palabra, el acumulador usado es AX almacenándose el resultado en DX y AX (si DX es distinto de cero los indicadores CF y OF se activan).

Ejemplos: mov ax, mov bx,10h mul bx ; ax=axbx= 5h10h=50h**

38

NEG (negar)

Sintaxis: NEG destino

  • Calcula el valor negativo del operando, es decir, resta el operando de cero almacenando el resultado en el mismo lugar (complemento a 2 de un número).

Ejemplos:

neg ax

neg al

neg byte ptr es:[bx+si+2]

39

OUT (salida)

Sintaxis: OUT puerta, acumulador

  • Transfiere un byte o una palabra del registro AL o AX a una puerta de salida del procesador.

Ejemplos:

out 012h,ax ;transferir el valor de ax

;al puerto 012h

40

POP (sacar palabra de la pila)

Sintaxis: POP destino

  • Transfiere el dato (tipo palabra) que se encuentra en lo alto de la pila (apuntado por SP) al operando destino y luego incrementa el registro SP en dos (SP=SP+2).

Ejemplos:

pop ax

pop bx

pop word ptr ds:[di]