Top Banner
ARITMÉTICA PARA COMPUTADORAS ITCR – SSC I Semestre 2012
53

Aritmética PARA COMPUTADORAS

Jan 02, 2016

Download

Documents

blaine-arnold

Aritmética PARA COMPUTADORAS. ITCR – SSC I Semestre 2012. La semana anterior…. Aspectos introductorios sobre Aritmética de Computadores: Representación: Signo – Magnitud Complemento a uno Complemento a dos Operaciones : Suma , Resta y multiplicación. ¿Y la tarea…?. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Aritmética  PARA COMPUTADORAS

ARITMÉTICA PARA COMPUTADORASITCR – SSC

I Semestre 2012

Page 2: Aritmética  PARA COMPUTADORAS

2

La semana anterior…

Aspectos introductorios sobre Aritmética de Computadores: Representación:

Signo – Magnitud Complemento a uno Complemento a dos

Operaciones: Suma, Resta y multiplicación

Page 3: Aritmética  PARA COMPUTADORAS

3

¿Y la tarea…?

¿Porqué razón en la representación mediante complemento a uno se invierten los bits?

Page 4: Aritmética  PARA COMPUTADORAS

4

Complemento a uno, ¿ventaja?

Page 5: Aritmética  PARA COMPUTADORAS

5

Complemento a uno, ¿ventaja?

Page 6: Aritmética  PARA COMPUTADORAS

6

Complemento a uno, ¿Problemas?

Page 7: Aritmética  PARA COMPUTADORAS

7

Complemento a uno, ¿Desventajas?

Page 8: Aritmética  PARA COMPUTADORAS

8

Prueba Corta #3

1. Realizar las siguientes operaciones aritméticasa) 10111 + 11110b) 1101.010 + 101.010c) 1010010101.1111 + 111100.00011d) 1101 - 1100e) 111010.01100 - 1111.00001 f) 100111 * 1001 g) 11.101 * 1.01

Page 9: Aritmética  PARA COMPUTADORAS

9

Operaciones aritméticas (división), representación de números de punto flotante)

Aritmética para Computadoras

Page 10: Aritmética  PARA COMPUTADORAS

10

División Binaria

En esta operación binaria los elementos son el dividendo y divisor. Como en la división decimal de enteros, un residuo es posible cuando un entero binario se divide por otro.

Procedimiento:

Se toma el mismo número de cifras en el dividendo que las que tiene el divisor, si no alcanza se toma una más.

Se resta, se baja la siguiente cifra y se sigue el mismo procedimiento

Page 11: Aritmética  PARA COMPUTADORAS

11

División Binaria

Así mismo, la división de fracciones binarias se maneja de la misma manera que la división de fracciones decimales; comprobémoslo revisando para ello el algoritmo:

• Desplazar el punto binario, tanto en el

dividendo como en el divisor, hasta que el divisor sea un número entero.

• Cuando el número de cifras fraccionarias del divisor es mayor que las del dividendo, es necesario agregar a este último los ceros que se precisen.

• Luego, se determina si el número de cifras del divisor es igual o menor que el número de dígitos de la izquierda del dividendo. Si así sucede, se escribe un (1) en el cociente y el divisor se resta de esos dígitos, y a este residuo se le agrega la cifra siguiente del dividendo. Si, por el contrario, el divisor es superior a los dígitos

Ejemplo:

10.01 ÷ 1.1

Page 12: Aritmética  PARA COMPUTADORAS

12

División de números binarios sin signo

Page 13: Aritmética  PARA COMPUTADORAS

13

División Binaria

Ejercicios: Efectuar las divisiones siguientes:

a) 1111 ÷ 101

b) 1011 ÷ 11

c) 101.1011 ÷ 1.11

Page 14: Aritmética  PARA COMPUTADORAS

14

Números Reales

Números con fracciones Podrían representarse en binario puro

¿Dónde está el punto binario? ¿Fijo?

Muy limitado ¿Moviéndolo?

¿Cómo sabemos dónde está?

Page 15: Aritmética  PARA COMPUTADORAS

15

Punto Flotante

+/- .mantisa x El punto está fijo entre el bit de signo y el

cuerpo de la mantisa El exponente indica la posición del punto

Page 16: Aritmética  PARA COMPUTADORAS

16

Ejemplos de Punto Flotante

Page 17: Aritmética  PARA COMPUTADORAS

17

Signos para Punto Flotante

La mantisa se guarda en complemento a 2 Los exponentes son sesgados, un valor fijo

o sesgo se resta a ese campo para conseguir el exponente verdadero Ejemplo. Sesgo =128 Tenemos un campo exponente de 8 bits Rango de valores puros es de 0-255 Le restamos 128 para obtener el valor correcto Rango -128 a +127

Page 18: Aritmética  PARA COMPUTADORAS

18

Normalización

Los números PF usualmente están normalizados

El exponente se ajusta que el bit más significativo de la mantisa es 1

Como siempre es 1 no se requiere almacenarlo La notación científica donde los números

están normalizados para tener un sólo dígito antes del punto decimal

Page 19: Aritmética  PARA COMPUTADORAS

19

Rangos de PF

Para un número de 32 bits Exponente de 8 bits

Precisión El efecto de cambiar 1sb (bit menos

significativo) de la mantisa Aproximadamente 6 posiciones decimales

Page 20: Aritmética  PARA COMPUTADORAS

20

Números Representables

Page 21: Aritmética  PARA COMPUTADORAS

21

Introducción al Lenguaje Ensamblador (8086)

Lenguaje Ensamblador

Page 22: Aritmética  PARA COMPUTADORAS

22

ARCHIVOS FUENTES, OBJETOS Y EJECUTABLES

Son necesarias 3 herramientas para escribir programas en lenguaje ensamblador: Un editor de textos para hacer los archivos

fuentes, El MASM (o alguna otra versión de

ensamblador; por ejemplo TASM) que sirve para generar archivos objetos a partir de los archivos fuentes,

y el LINK para combinar uno o mas archivos objetos hacia un archivo ejecutable que puede ser ejecutado por DOS.

Page 23: Aritmética  PARA COMPUTADORAS

23

ARCHIVOS FUENTES, OBJETOS Y EJECUTABLES

Después de que se crea un programa fuente en MASM, este debe ser almacenado en un archivo. Este es referido como archivo fuente, que es un archivo de texto que contiene enunciados en lenguaje ensamblador, cada uno de estos termina con los caracteres CR y LF (Retorno de carro y salto de línea).

Generalmente los nombres de los archivos fuentes tienen la extensión ASM.

Page 24: Aritmética  PARA COMPUTADORAS

24

ARCHIVOS FUENTES, OBJETOS Y EJECUTABLES

El resultado de ensamblar un archivo fuente es un archivo binario con el código maquina y las instrucciones para el encadenador (LINK).

Este archivo es llamado archivo objeto y tiene la extensión por defecto OBJ.

Uno o mas archivos objeto son combinados por el encadenador para formar un programa ejecutable, el cual tiene la extensión por defecto EXE.

Page 25: Aritmética  PARA COMPUTADORAS

25

ARQUITECTURA DEL 8086 El 8086 es un circuito integrado (CI) que

posee unos 29.000 transistores NMOS, lo que supone unas 9.000 puertas lógicas. Está montado en una placa de silicio sobre una cápsula de cerámica con 40 pines.

De los 40 pines, 20 están dedicados a la tarea de especificar la dirección de memoria, por tanto, existe la posibilidad de direccionar 220 posiciones de memoria (bytes), lo que equivale a 1Mb de memoria principal.

Page 26: Aritmética  PARA COMPUTADORAS

26

ARQUITECTURA DEL 8086

El 8086 se divide en dos unidades lógicas: una unidad de ejecución (EU) y una unidad de interfaz del bus (BIU). El papel de la EU es ejecutar instrucciones, mientras que la BIU envía instrucciones y datos a la EU.

La EU posee una unidad aritmético-lógica, una unidad de control y 10 registros.

Permite ejecutar las instrucciones, realizando todas las operaciones aritméticas, lógicas y de control necesarias.

Page 27: Aritmética  PARA COMPUTADORAS

27

ARQUITECTURA DEL 8086

La BIU tiene tres elementos fundamentales: la unidad de control del bus, la cola de instrucciones y los registros de segmento. La BIU controla el bus externo que comunica el procesador con la memoria y los distintos dispositivos de E/S. Los registros de segmento controlan el direccionamiento y permiten gestionar hasta 1 MB de memoria principal.

La BIU accede a la memoria para recuperar las instrucciones que son almacenadas en la cola de instrucciones constituida por 6 bytes (4 bytes para el 8088).

Mientras la BIU busca las instrucciones, la EU ejecuta las instrucciones que va recogiendo de la cola, es decir, la BIU y la EU trabajan en paralelo.

Page 28: Aritmética  PARA COMPUTADORAS

28

Page 29: Aritmética  PARA COMPUTADORAS

29

REGISTROS DEL 8086/88

Los registros del procesador tienen como misión fundamental almacenar las posiciones de memoria que van a sufrir repetidas manipulaciones, ya que los accesos a memoria son mucho más lentos que los accesos a los registros.

El 8086 dispone de 14 registros de 16 bits que se emplean para controlar la ejecución de instrucciones, direccionar la memoria y proporcionar capacidad aritmética y lógica.

Cada registro puede almacenar datos o direcciones de memoria. Los registros son direccionables por medio de un nombre.

Page 30: Aritmética  PARA COMPUTADORAS

30

REGISTROS DEL 8086/88

Por convención los bits de un registro se numeran de derecha a izquierda:

Page 31: Aritmética  PARA COMPUTADORAS

31

REGISTROS DEL 8086/88

Los diferentes registros del 8086 se clasifican en: Registros de propósito general o de datos, Registros de segmento, Registro apuntador de instrucciones (IP), Registros apuntadores (SP y BP), Registros índice (SI y DI) y Registro de banderas, FLAGS o registro de

estado (FL).

Page 32: Aritmética  PARA COMPUTADORAS

32

REGISTROS DEL 8086/88

Page 33: Aritmética  PARA COMPUTADORAS

33

Registros de propósito general Se utilizan para cálculo y

almacenamiento de propósito general. Los programas leen datos de memoria y

los dejan en estos registros, ejecutan operaciones sobre ellos, y guardan los resultados en memoria. Hay cuatro registros de propósito general que, aparte de ser usados a voluntad por el programador, tienen fines específicos

Page 34: Aritmética  PARA COMPUTADORAS

34

Registros de propósito general

Page 35: Aritmética  PARA COMPUTADORAS

35

Registros de propósito general Los registros de propósito general se pueden

direccionar como una palabra o como un byte. El byte de la izquierda es la parte alta y el byte de

la derecha es la parte baja:

Siguiendo esta nomenclatura, es posible referirse a cada uno de los dos bytes, byte de orden alto o más significativo y byte de orden bajo o menos significativo, de cada uno de estos registros. Por ejemplo: AH es el byte más significativo del registro

AX, mientras que AL es el byte menos significativo.

Page 36: Aritmética  PARA COMPUTADORAS

36

Registros de Segmento

Los registros de segmento son registros de 16 bits que constituyen la implementación física de la arquitectura segmentada del 8086

Page 37: Aritmética  PARA COMPUTADORAS

37

Registro Apuntador de Instrucciones (IP)

Se trata de un registro de 16 bits que contiene el desplazamiento de la dirección de la siguiente instrucción que se ejecutará.

Está asociado con el registro CS en el sentido de que IP indica el desplazamiento de la siguiente instrucción a ejecutar dentro del segmento de código determinado por CS:

Page 38: Aritmética  PARA COMPUTADORAS

38

Registros Apuntadores (SP y BP) Los registros apuntadores están

asociados al registro de segmento SS y permiten acceder a los datos almacenados en la pila:

Page 39: Aritmética  PARA COMPUTADORAS

39

Registros Índice (SI y DI)

Los registros índice se utilizan fundamentalmente en operaciones con cadenas y para direccionamiento indexado:

Page 40: Aritmética  PARA COMPUTADORAS

40

Registro de banderas, FLAGS, o registro de estado (FL).

Es un registro de 16 bits, pero sólo se utilizan nueve de ellos. Sirven para indicar el estado actual de la máquina y el resultado del procesamiento.

La mayor parte de las instrucciones de comparación y aritméticas modifican este registro.

Algunas instrucciones pueden realizar pruebas sobre este registro para determinar la acción siguiente.

Page 41: Aritmética  PARA COMPUTADORAS

41

Registro de banderas, FLAGS, o registro de estado (FL).

Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condición que reflejan los resultados de las operaciones del programa; los bits 8 al 10 son indicadores de control que, modificados por el programador, sirven para controlar ciertos modos de procesamiento, y el resto no se utilizan.

Page 42: Aritmética  PARA COMPUTADORAS

42

Registro de banderas, FLAGS, o registro de estado (FL).

Page 43: Aritmética  PARA COMPUTADORAS

43

«Nuestro primer programa»

.model tiny

.data msg db “Ejecutable DOS .COM 16-bit",13,10,“Hola Mundo!",13,10,"$" ; El string finaliza con “$”, este es un comentario.code

.startup ; Inicio del programamov dx,offset msg ; Obtiene la dir del mensaje y lo coloca

en dxmov ah,9 ; Función 09h en AH significa “escribir

el string int 21h ; en la salida estándar“ Llama la interupción para ; DOS (DOS function call)

mov ax, 0C07h ; Función 0Ch = "FLUSH BUFFER AND READ STANDARD INPUT"

int 21h.exit

end

Page 44: Aritmética  PARA COMPUTADORAS

44

DIRECTIVAS DEL ENSAMBLADOR. El lenguaje ensamblador permite usar

diferentes enunciados que sirven para controlar la forma en que un programa se ensambla y lista.

Estos enunciados reciben el nombre de directivas. Se caracterizan porque sólo tienen influencia durante el proceso de ensamblado, pero no generan código ejecutable alguno.

Page 45: Aritmética  PARA COMPUTADORAS

45

DIRECTIVAS DEL ENSAMBLADOR. Directivas para listar : PAGE y TITLE.

Page 46: Aritmética  PARA COMPUTADORAS

46

Directiva .MODEL

Page 47: Aritmética  PARA COMPUTADORAS

47

Directiva .DATA

Page 48: Aritmética  PARA COMPUTADORAS

48

Directiva .CODE

Page 49: Aritmética  PARA COMPUTADORAS

49

Directiva .STACK

Page 50: Aritmética  PARA COMPUTADORAS

50

Directiva END

Page 51: Aritmética  PARA COMPUTADORAS

51

Directivas para definición de datos

El ensamblador permite definir elementos para datos de diferentes longitudes de acuerdo con un conjunto de directivas específicas para ello.

El formato general es el siguiente:

Page 52: Aritmética  PARA COMPUTADORAS

52

Directivas para definición de datos

Page 53: Aritmética  PARA COMPUTADORAS

53

FIN