PDF de programación - Arquitectura software x86-16bits

Imágen de pdf Arquitectura software x86-16bits

Arquitectura software x86-16bitsgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 3 de Enero del 2018)
792 visualizaciones desde el 3 de Enero del 2018
181,8 KB
24 paginas
Creado hace 9a (05/10/2014)
Arquitectura software x86-16bits
Índice

1. Organización interna

2. Segmentación de memoria

3. Modos de direccionamiento

4. Formato de instrucciones

1/47

Arquitectura software x86-16bits

¿Qué es arquitectura software?
(cid:127) Es el conjunto de atributos que ve el programador

 …o que ve el compilador, como generador

automático de código

(cid:127) Es el “contrato” entre en fabricante del procesador y

el programador

(cid:127) No requiere correspondencia real con la capa física

(cid:127) La arquitectura software x86-16bits data de 1978

 Típico repertorio CISC

2/47

1

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
1. Organización interna

15

0

PROPÓSITO GENERAL

Acumulador

AH

AX

AL

Base

Contador

Datos

Puntero base

Índice fuente

Índice destino

Puntero de pila

BH

CH

DH

BL

CL

DL

BX

CX

DX

BP

SI

DI

SP

Producto, división, E/S y transferencias
optimizadas
Puntero a dirección base (datos)
Contador de bucles, desplazamientos,
rotaciones y repetición de cadenas
Producto, división y E/S

Puntero a dirección base (pila)

Fuente en manejo de cadenas

Destino en manejo de cadenas

Puntero a la cima de la pila

3/47

Arquitectura software x86-16bits
1. Organización interna

Registros de propósito general:

(cid:127) Almacenamiento temporal de datos
(cid:127) Algunos se acceden como palabra (16 bits) o como byte

 Registro X
 Registro L y H

(cid:127) Usos dedicados y limitaciones

(cid:127) Modelo híbrido (acumulador y banco de registros)

 Heredado de arquitecturas anteriores

4/47

2

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
1. Organización interna

15

0

REGISTROS DE SEGMENTO

Segmento de
código
Segmento de
datos
Segmento de
pila
Segmento
extra (datos)

CS

DS

SS

ES

(cid:127) Los programas manejan

diferentes áreas de
memoria:

Código (texto)
Datos
Pila
Heap

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

(cid:127) Estos registros apuntan a
dichas áreas de memoria

5/47

Arquitectura software x86-16bits
1. Organización interna

Registros de segmento:

(cid:127) Todas las direcciones son relativas a alguno de los

registros de segmento (por defecto)

• CS: la memoria de este segmento contiene instrucciones

DS: datos declarados por el programa

SS: es la pila

ES: datos extra; datos de cadenas

6/47

3

(cid:127)
(cid:127)
(cid:127)
Arquitectura software x86-16bits
1. Organización interna

15

0

OTROS REGISTROS

Estado
Puntero de
instrucción

Flags

IP

7/47

Arquitectura software x86-16bits
1. Organización interna

15

desbordamiento

O

D

I

T

S

Z

A

P

0

C

dirección

interrupción
trap (paso a paso)

signo

cero

acarreo auxiliar

REGISTRO DE ESTADO

paridad

acarreo

8/47

4

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
1. Organización interna

(cid:127) Acarreo:

 Es 1 si el resultado de una operación genera acarreo

(cid:127) Paridad:

 Es 1 si el resultado contiene un número par de bits a 1

(cid:127) Acarreo auxiliar:

 Es 1 si el resultado genera un acarreo en los 4 bits de

menor peso. Se usa en aritmética BCD

(cid:127) Cero:

 Es 1 si el resultado es cero

(cid:127) Signo:

 Copia el bit de mayor peso del resultado

(independientemente de la interpretación del resultado)

9/47

Arquitectura software x86-16bits
1. Organización interna

(cid:127) Trap:

 Si es 1 el procesador genera una interrupción de paso a

paso después de ejecutar cada instrucción

(cid:127)

Interrupción:
 Si es 1 las interrupciones serán reconocidas

(cid:127) Dirección:

 Si es 1 las operaciones con cadenas se realizan de las

posiciones altas a las bajas

10/47

5

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
1. Organización interna

(cid:127) Desbordamiento:

 Es 1 si el resultado es demasiado grande (o pequeño)
para los límites de representación con signo (en C-2)

OF

=

c

n

− ⊕

1

c



n

2

11/47

Arquitectura software x86-16bits
1. Organización interna

(cid:127) Flags de estado

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

 Acarreo, paridad, acarreo auxiliar, cero, signo y

desbordamiento
Describen el resultado
Se aplican a operaciones de tamaño byte (n=8) –ya sea

la parte alta o la baja– o palabra (n=16)

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Proporcionan códigos de condición por separado o en

conjunto

(cid:127) Flags de control

 Trap, interrupción y dirección

Afectan al modo de funcionamiento del procesador

12/47

6

Arquitectura software x86-16bits
1. Organización interna

13/47

Arquitectura software x86-16bits
2. Segmentación de memoria

(cid:127) El mapa de memoria que “ve” el x86-16bits NO es “plano”

(cid:127) Los registros de 16 bits sólo pueden direccionar

216 posiciones de memoria (65.635 posiciones = 64K)

(cid:127) ¿Cómo alcanzar un espacio de direcciones mayor?

(cid:127) El acceso a memoria se realiza en segmentos de 64K

14/47

7

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
2. Segmentación de memoria

(cid:127) La memoria está organizada en bytes (B)

(cid:127) La capacidad de direccionamiento es de 1MB (220 B)

(cid:127) La dirección completa se consigue mediante la

combinación de dos punteros: base y desplazamiento
(offset):

base:desplazamiento

(cid:127) La dirección física se calcula:

base x 16 + desplazamiento

15/47

Arquitectura software x86-16bits
2. Segmentación de memoria

Ejemplos:
(cid:127) La dirección 53C2:107A es:

53C20 h
+107A h
54C9A h

x16 (x10 h)

dirección física

(cid:127) La dirección B100:046C es:

B1000 h
+046C h
B146C h

x16 (x10 h)

dirección física

16/47

8

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
2. Segmentación de memoria

(cid:127) La misma dirección física puede ser accedida con

diferentes combinaciones base:desplazamiento

Ejemplo:

(cid:127) La dirección física 7A26B h puede ser:

7A26:000B
7A00:026B
751C:50AB

(cid:127) Problemas de seguridad
(cid:127) La base (segmento) apunta a párrafos (de 16 posiciones)

17/47

Arquitectura software x86-16bits
2. Segmentación de memoria

(cid:127) En ensamblador no se representan las direcciones

como base:desplazamiento aunque si lo admiten los
depuradores

(cid:127) Los desplazamientos llevan asociada una base por

defecto

(cid:127) Cuando es necesario especificar la base se hace de
manera simbólica (usando el nombre del registro de
segmento como prefijo de la instrucción)

18/47

9

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

base

offset

IP

SP

BP

BX

SI

DI

CS



no

prefijo

prefijo

prefijo

prefijo

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
2. Segmentación de memoria

SS

no



DS

no

no

por defecto

prefijo

ES

no

no

prefijo

prefijo

prefijo

por defecto

por defecto

prefijo

prefijo

prefijo

por defecto

por defecto

19/47

Arquitectura software x86-16bits
2. Segmentación de memoria

(cid:127) Las direcciones pueden ser:

 Near
 Far

(cid:127) Near : sólo el desplazamiento; la base toma el valor

en curso de la dada por defecto

(cid:127) Far : se requiere la especificación de la base y del

desplazamiento

20/47

10

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
2. Segmentación de memoria

21/47

Arquitectura software x86-16bits
2. Segmentación de memoria

22/47

11

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
3. Modos de direccionamiento

(cid:127) Determinan la ubicación de los operandos

(cid:127) Tres posibles ubicaciones:

Inmediatos (en la propia instrucción)

En registros

En memoria

(Implícitos)  no se identifican, son sobreentendidos

23/47

Arquitectura software x86-16bits
3. Modos de direccionamiento

(cid:127) Momento en el que se actualiza el modo de

direccionamiento:

Inmediatos  tiempo de ensamblado

En registros  tiempo de programación o compilación

En memoria

(cid:127) Absolutos  tiempo de carga

(cid:127) Relativos  tiempo de ejecución

interviene el SO

24/47

12

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
3. Modos de direccionamiento

(cid:127) Clasificación de estructura de computadores:

inmediato
directo

indirecto
implícito

absoluto

relativo

a registro
a memoria
a página base
a registro

base + desplazamiento
base + índice + desplazamiento
contador de programa
puntero de pila

25/47

Arquitectura software x86-16bits
3. Modos de direccionamiento

3.1. Inmediato

 Ejemplo: MOV AL,15h

DIRECCIÓN

MEMORIA INSTRUCCIÓN

DIRECCIÓN

MEMORIA INSTRUCCIÓN

8088/86

0000

0100

XX

IP

CS
DS
SS
ES

AX
BX
CX
DX

SP
BP
SI
DI

01000
01001
01002
01003

80
15
XX

MOV AL,15h

siguiente instrucción

8088/86

0002

0100

15

IP

CS
DS
SS
ES

AX
BX
CX
DX

SP
BP
SI
DI

01000
01001
01002
01003

80
15
XX

MOV AL,15h

siguiente instrucción

Antes de ejecutar la instrucción

Después de ejecutar la instrucción

26/47

13

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

z
e
p
ó
L
o
c
R



i


l

f

e
a
a
R
©

Arquitectura software x86-16bits
3. Modos de direccionamiento

3.2. Directo absoluto a registro

 Ejemplo: MOV AX,BX

DIRECCIÓN

MEMORIA INSTRUCCIÓN

DIRECCIÓN

MEMORIA INSTRUCCIÓN

8088/86

0000

0100

XXXX
7FA6

IP

CS
DS
SS
ES

AX
BX
CX
DX

SP
BP
SI
DI

01000
01001
01002
01003

8B
C3
XX

MOV AX,BX

siguiente instrucción

8088/86

0002

0100

7FA6
7FA6

IP

CS
DS
SS
ES

AX
BX
CX
DX

SP
BP
SI
DI

01000
01001
01002
01003

8B
C3
XX

MOV AX,BX

siguiente instrucción

Antes de ejecutar la instrucción

Después de ejecutar la instrucción

27/47

Arqu
  • Links de descarga
http://lwp-l.com/pdf8174

Comentarios de: Arquitectura software x86-16bits (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad