Apuntes Lenguaje Ensamblador

5
 Clase 0.El Microprocesador y sus tipos. El microprocesador es un circuito integrado que utiliza tecnología electrónica de alta escala de integración en la escala de las micras, para realizar cálculos numéricos y operaciones lógicas. Además de la tecnología de Integración el microprocesador se puede clasificar por el tipo de instrucciones que utiliza para ejecutar los programas. Esta clasificación es: CI SC (complex instruc tion s et controll er) Set complejo de instrucciones de control. RI SC ( reduced instru ction set contr oller) Set reducido de instrucciones de control. VLIW ( very long instruction Word ) Instrucción de palabra muy larga.  ARM(Ad van ced RISC) RISC Avanzada Los microprocesadores se utilizan en la manufactura de las computadoras, estas se clasifican como: Nano computadoras. Este tipo de máquinas usan normalmente  ARM o microprocesadores  At om de alto rendimiento, ya que principalmente estas se usan en celulares o dispositivos móviles de comunicación o de manipulación de datos. Micro computadoras. Este tipo de computadoras utilizan microprocesadores de tipo CISC con versiones de uno a cuatro núcleos, debemos considerar que un microprocesador es solo un encapsulado, aunque a nivel de operación tenga más unidades de trabajo interna. Este se usa en aplicaciones Ofimáticas y en computadoras portables PC. Mini computadoras. Este tipo de computadora comienza a utilizar procesadores de tipo RISC (1 ,2,4) o puede usarse CISC igualmente en conjuntos de (1,2,4), esta se usan en equipos de datos y de diseño como estaciones de trabajo. Súper computadoras. Este tipo de máquinas usa variaciones de conexión, de diferentes medios para crear procesamiento que va de los cientos de millones de bits por segunda hasta los terabits por segundo, esto para simular condiciones del universo, física de partículas, etc. A pesar de su complejidad en esencia un microprocesador debe estar constituido por tres partes: 1) Unidad de Lógica y Aritmética 2) Conjunto o banco de registros 3) Registros de estado de bandera y control  Las características de un microprocesador pueden variar en tamaño unidades de trabajo y velocidad de r eloj, pero en esencia sus características son el tamaño de registro o números de bits que puede almacenar (palabra) y su capacidad de direccionamiento. El microprocesador utiliza a la memoria para ejecutar los programas, la memoria por su tipo de volatilidad se divide en ROM (memoria de solo lectura) esta convencionalmente se usa para almacenar las rutinas fijas de programa como Servicios en el Sistema Básico de Entrada y Salida (Basic Input Output System BIOS). La memoria RAM es de volatilidad alta, esto quiere decir que al interrumpir la energía e almacenamiento la información del programa desaparece y debe volver a cargarse. La estructura de un Pentium es: Sistema numérico base 2. Un sistema numérico base 2 utiliza como valor de base el número 2, por lo que para poder representar un número en esta bese es necesario realizar el siguiente procedimiento: 1) Tomar el número en base 10 como dividendo y comenzar a dividir este entre dos divisor sin obtener decimales (módulo 2), el residuo de esta división es el bit menos significativo LSB este es 1 o 0 2) El resultado que es el cociente se convierte en el nuevo dividendo y se vuelve a dividir entre dos en forma exhaustiva hasta que el cociente sea 1 que es el bit mas significativo, este siempre vale 1. 3) Se integra el número desde el último cociente que sale como 1 Más significativo hasta el menos significativo (el primero en salir). Por ejemplo: 47 10  a binario queda:

Transcript of Apuntes Lenguaje Ensamblador

5/14/2018 Apuntes Lenguaje Ensamblador - slidepdf.com

http://slidepdf.com/reader/full/apuntes-lenguaje-ensamblador 1/5

 

Clase 0.El Microprocesador y sus tipos.El microprocesador es un circuito integrado que utiliza

tecnología electrónica de alta escala de integración en la escala

de las micras, para realizar cálculos numéricos y operaciones

lógicas.

Además de la tecnología de Integración el microprocesador se

puede clasificar por el tipo de instrucciones que utiliza para

ejecutar los programas. Esta clasificación es:

CISC (complex instruction set controller) Set complejo de

instrucciones de control.

RISC (reduced instruction set controller) Set

reducido de instrucciones de control.

VLIW ( very long instruction Word ) Instrucción de palabra

muy larga.

ARM(Advanced RISC) RISC Avanzada

Los microprocesadores se utilizan en la manufactura de las

computadoras, estas se clasifican como:

Nano computadoras. Este tipo de máquinas usan

normalmente ARM o microprocesadores Atom de alto

rendimiento, ya que principalmente estas se usan en celulares o

dispositivos móviles de comunicación o de manipulación de

datos.

Micro computadoras. Este tipo de computadoras utilizan

microprocesadores de tipo CISC con versiones de uno a

cuatro núcleos, debemos considerar que un microprocesador es

solo un encapsulado, aunque a nivel de operación tenga más

unidades de trabajo interna. Este se usa en aplicaciones

Ofimáticas y en computadoras portables PC.

Mini computadoras. Este tipo de computadora comienza a

utilizar procesadores de tipo RISC (1 ,2,4) o puede usarse CISC

igualmente en conjuntos de (1,2,4), esta se usan en equipos de

datos y de diseño como estaciones de trabajo.

Súper computadoras. Este tipo de máquinas usa variaciones

de conexión, de diferentes medios para crear procesamiento que

va de los cientos de millones de bits por segunda hasta los

terabits por segundo, esto para simular condiciones del universo,

física de partículas, etc.

A pesar de su complejidad en esencia un microprocesador debe

estar constituido por tres partes:

1) Unidad de Lógica y Aritmética

2) Conjunto o banco de registros

3) Registros de estado de bandera y control 

Las características de un microprocesador pueden varia

tamaño unidades de trabajo y velocidad de reloj, pero en ese

sus características son el tamaño de registro o números de

que puede almacenar (palabra) y su capacidad

direccionamiento. El microprocesador utiliza a la memoria

ejecutar los programas, la memoria por su tipo de volatilida

divide en ROM (memoria de solo lectura)

convencionalmente se usa para almacenar las rutinas fijas

programa como Servicios en el Sistema Básico de EntradSalida (Basic Input Output System BIOS). La memoria

RAM es de volatilidad alta, esto quiere decir que al interrump

energía e almacenamiento la información del progr

desaparece y debe volver a cargarse. La estructura de

Pentium es:

Sistema numérico base 2.

Un sistema numérico base 2 utiliza como valor de bas

número 2, por lo que para poder representar un número en

bese es necesario realizar el siguiente procedimiento:

1)  Tomar el número en base 10 como dividend

comenzar a dividir este entre dos divisor sin obtedecimales (módulo 2), el residuo de esta división e

bit menos significativo LSB este es 1 o 0

2)  El resultado que es el cociente se convierte en el nu

dividendo y se vuelve a dividir entre dos en forma

exhaustiva hasta que el cociente sea 1 que es el bit 

significativo, este siempre vale 1.

3)  Se integra el número desde el último cociente que s

como 1 Más significativo hasta el menos significativo

primero en salir). Por ejemplo: 4710 a binario queda

5/14/2018 Apuntes Lenguaje Ensamblador - slidepdf.com

http://slidepdf.com/reader/full/apuntes-lenguaje-ensamblador 2/5

 

Sistema numérico.Un sistema numérico es la forma de representar una cantidad

siguiendo un conjunto de símbolos, estos a su vez tienen dos

valores, uno es el valor absoluto, que representa su magnitud y

su valor relativo que expresa su magnitud por el lugar que

ocupa. Un sistema numérico se conforma por el grupo de

números usados como base para contar, por ejemplo el sistema

base 10 usa diez números 0,1,2,3,4,5,6,7,8,9 estos

combinándose representan diferentes cantidades. El sistema

usa un número como base de cuenta para base 10 es este

número. Toda magnitud se representa tomando el número base

y su posición de la derecha hacía la izquierda. Cada espacio

que ocupa un número esta caracterizado por un valor

equivalente a su magnitud y una potencia a la que la base se

encuentra elevada; por ejemplo 23572

potencia 4 3 2 1 0

Valor de

base10 10 10 10 10

Magnitud 10,000 1,000 100 10 1

2*10,000 3*1,000 5*100 7*10 2*1

Totalizando 20,000+3,000+500+70+2=23572 

Todo sistema numérico se establece como:

nXp+1+nX5 +nX4+ nX3+n X2 + nX1+ nX0

X= base del sistema

n=número perteneciente a la base

p=potencia según su posición inicia en cero

Conversión de Binarios a Decimal.El sistema binario o base 2 utiliza como número de base el

cero y el uno y sigue la regla de los sistemas numéricos. Un

número presentado en base dos se indica al poner un subíndice

dos en la parte inferior derecha del número indicando la base.

Para saber su valor en base diez es necesario ver los unos que

tiene el número y ver su magnitud relativa con las potencias debase 2 empezando desde la derecha hacía la izquierda. Por

ejemplo:

Sistemas Numéricos.La cuantificación de la información se empezó a realizar con

una unidad llamada Hartley en honor a R.V. Hartley la cual

era una unidad de tipo logarítmica para la información en

donde utilizó la notación logaritmo de base 10 pero después

dado lo anteriormente mencionado se tuvo que pasar a un

sistema de logaritmo de base2.

N= 1/(log102)= 3.32

Cuando se necesita un logaritmo de base 2 solo se multipli

el coeficiente anterior por el logaritmo de base 10 y se obtie

la cuantificación en logaritmo de base 2. Para cuantificar el

valor necesitamos.

Por ejemplo si tenemos 8 valores

Bits= log2N=3.3219 log 8=3 bits

Para 16 valores

Bits= log2N=3.3219 log 16=4 bits

Sistemas de Numeración.Los sistemas de numeración se basan en que toda cantidad

puede ser representada por un conjunto de valores; los

números usan valores relativos y valores absolutos.

El valor absoluto de un número especifica la cuantificació

cantidad a representar.

El valor relativo de un número es por el lugar que ocupa (

ponderación o potencia por su posición).

Un sistema de potencia utiliza para cuantificar un valor

conjunto de valores a los que les llamamos base. Por ejem

en el sistema base 10 solo se usan lo números del 0 al 9, esistema base 2 se utilizan el 0 y el 1. Para poder representa

número en una base debemos realizar un proceso de divi

exhaustiva entre el número base.

El proceso es sencillo el número a convertir se coloca co

divisor

1) El divisor se divide entre 2 sin residuo (a esto se le lla

modulo2), este primer residuo se le denomina Bit Me

Significativo LSB(Least sigificative Bit) 

2) El cociente resultante se vuelve el nuevo dividendo y

hace la operación conservando los residuos ya que e

integraran el número binario.

3) El proceso se realiza hasta que el cociente sea igual a 1

suceder esto el cociente uno obtenido será el bit

significativo Bit Más Significativo MSB(More Significa

Bit) 

4) El número se integra desde el MSB hacía el LSB 

5/14/2018 Apuntes Lenguaje Ensamblador - slidepdf.com

http://slidepdf.com/reader/full/apuntes-lenguaje-ensamblador 3/5

 

Para convertir un sistema numérico a otro debemos saber la

base numérica de representación para ubicar la ponderación

de cada elemento de la base. Todas las bases numéricas usan

una representación de potencias como se ve

Xn+1+ Xn+X7+X6 +X 5+ X4 X3 + X2 + X1 +X0

Donde X es el 0 o 1 la potencia es n Por ejemplo si tenemos

10102=1x2

3

+0x2

2

+1x2

1

+0x2

0

=8+0+2+0=10

Ejemplo 2100110102=1x27+0x26 +0x25 +1x24+

1x23+0x22+0x22+1x21+0x20=128+16+8+2=154

Clase 3??

Clase 4.El Lenguaje Ensamblador.El lenguaje ensamblador se utiliza para codificar programas

usando en un lenguaje simple que no utilice el lenguaje de la

máquina, en este se utilizan los registros del microprocesador.

Los microprocesadores utilizan un estándar que parte del

microprocesador 8086Estas CPU desde el punto de vista de laprogramación son iguales. Ellas fueron las CPUs usadas en las

primeras PC.

Ellos usan varios registros AX, BX, CX, DX, SI, DI, BP, SP, CS,

DS, SS, ES, IP, FLAG. Ellas solo soportan hasta 1 Megabyte de

memoria y solo opera en modo real.

El microprocesador 8085 que se estudia tiene los registros A, B,

C, D, E, H, L El propósito de estos registros es general, o sea se

pueden usar indistintamente para hacer operaciones; las

operaciones se encuentran codificadas en  NPI (notaciónpolaca invertida) esto es que se debe leer de izquierda a derecha.

El microprocesador utiliza un registro llamado Acumulador A,

este se utiliza para realizar las operaciones de envío y recepción

de datos hacía otros registros o la memoria. Así mismo pararealizar las operaciones aritméticas y lógicas. Esto es debido a la

forma de su conexión interna, como se ve en el diagrama.

Estas se pueden comprender mejor al dividirlas en 4 tipos

1) Operaciones de Transferencia

2) Operaciones de Lógica y aritmética

3) Operaciones salto Incondicional y condicional

4) Operaciones Especiales

Las operaciones de Transferencia tienen como propósito cambiar

información entre dos registros, o la memoria y un registro. A estasoperaciones se les denomina también operaciones dedireccionamiento. Existen varios tipos de direccionamiento aunquepara este caso solo usaremos

a) Inmediato. Este permite inicializar un valor en un registro, el vse carga desde la memoria, siendo este valor una parte d

instrucción.Esta instrucción se escribemvi  R x,xxh (hexadecimal)

Por ejemplo mmover el valor 5 al registro Bmvi B,05h B=05h

b) Directo. Este normalmente es entre dos registros microprocesador, ya que hay registros que no pueden ser ocuppara usarse para almacenar valores durante un largo periodo, po

que es conveniente moverlos a otro registro. Un registro tienetiempo de acceso más rápido (leer o almacenar) que una direcciómemoria. Por ejemplo mover del registro A hacía el registro B.

mov A,B

c) Indirecto. En esta forma se utiliza un conjunto deregistros (H&L)para crear una dirección de 16 bits dememoria, para escribir o leer un dato. En este se debe

hacer uso del registro Acumulador para enviar orecibir el contenido de la memoria direccionado porH&L.Por ejemplo para enviar a la localidad 01 el valor 22h:

mvi L,01hmvi H,00h

mvi A,12h ;dato a mandarmov M,A ;cargar la localidad 01:con 12Por ejemplo para cargar la localidad 06 con elcontenido del acumulador:

mvi L,06h ;leer la localidad 06 al acumuladormvi h,00h

mov a,m ;Si localidad 06=08h entonces A=08h

Clase 5.Elementos Periféricos.La computadora tiene un conjunto de elementos (organización

la computadora) para comunicar entradas y salidas de sus

procesos. Para poder realizar esta tarea la computadora utiliza

elementos conectados al canal de direcciones, datos y control,

la misma memoria utiliza, por lo que los dispositivos periféric

se acceden usando una dirección de memoria, estas seestandarizan para hacer que los dispositivos internos puedan s

fácilmente reconocidos y puedan trabajar de manera que no se

interfieran uno con otro. Por ejemplo

Podemos observar que existe un valor o valores (rango) de

configuración, estos sirven para indicar en donde se colocan la

entradas o salidas del dispositivo según sea el caso. Por ejemp

para el teclado que manejaremos esta tiene una sola entrada. E

se debe configurar siguiendo los siguientes pasos.

1) Seleccionar el icono de teclado para mostrar el tec

virtual

5/14/2018 Apuntes Lenguaje Ensamblador - slidepdf.com

http://slidepdf.com/reader/full/apuntes-lenguaje-ensamblador 4/5

 

2) Posteriormente el teclado virtual se muestra así:

3) Se oprime el botón de Cambiar, para escoger una dirección de

entrada del buffer del teclado, escribiremos en este caso 08h y

daremos ENTER así el teclado virtual guarda en esa dirección su

entrada (la tecla oprimida del teclado virtual)

4) El teclado virtual para ser leído se debe usar la instrucción

in<dirección de memoria asociada> pasa los valores de sus

teclas virtuales en valor ASCCI al registro A el acumulador.

5) El código a utilizar debe ser el siguiente:.org 0

in 08h

hlt

6) Oprimamos la tecla virtual “0”7) Ejecute el botón a pasos y observe el registro A

Dispositivos de Salida. Para este ejercicio usaremos el decodificador de 7 segmentos

como pantalla de datos. Un decodificador de segmentos usa un

led(foco), para pintar una figura (número o letra) un 1 lo

enciende, un 0 lo apaga. La relación byte del segmento; bits del

registro

7 6 5 4 3 2 1 0

. C D E G B A F

Al igual que el teclado cada segmento tiene una dirección, por lo

que es necesario configurar este, por default este tiene la

dirección 00h. Existen 8 display’s formando un rango de salida

desde 00 hasta 07h.

Cada dirección es un segmento empezando desde el más a la

izquierda 00h , hasta el más a la derecha 07h, por jempo este

programa prende es segmento 02 con el valor 3. Para esto

usaremos la instrucción

Out <dirección>

Esta envía el dato almacenado en el registro A acumulador a

dirección apuntada

.org 0

mvi a,6eh

out 02h

hlt

Manejo de Operaciones aritméticas y control de flujoEl lenguaje Ensamblador utiliza aritmética sencilla para explic

el funcionamiento de procesos de control de los programas; engeneral ensamblador busca que en los cálculos resulte cero o

valores negativos debido a el microprocesador puede detectar

estas operaciones. Las operaciones binarias utilizan la suma de

bits uno a uno. Por ejemplo la suma se hace uno a uno (Bit a b

Usando los bits de palabra del micro que son 19910 Pero si se

suma el bit de acarreo y se considera su valor de 256 tenemos

que es el valor correcto de esta operación. El bit de acarreo no

avisa cuando se rebasa el límite de palabra de un

microprocesador. Este siempre se toma como el bit más

significativo, no siempre se activa. En el caso del ensamblador

hacen las sumas bajo la regla de que la suma se hace  entre dos

operandos y el resultado se guarda en el registro Acumulador A

Existen la suma inmediata ADI que suma un valor inmediato

contra el dato del acumulador. Ejemplo

ADI 09h

Así mismo existe la suma entre registros, estos deben estar

previamente inicializados con un valor. Por ejemplo A=03 B=ADD B A=07

Para el caso de la resta tenemos que esta es en sí una suma e

un número simétrico. Para crear números negativos realiza

procedimiento llamado complemento a dos, este proceso perm

crear un número simétrico, este tiene la misma distancia cont

cero. Este proceso divide el rango de los números enteros

microprocesador entre dos, creando un bit de identificación

signo para realizar las sumas debemos considerar el número

bits que maneja el microprocesador.

Se crea un círculo donde hacía la izquierda del cero se tienen l

números negativos y a la derecha los positivos el bit de signo e

bit más significativo mostrado en rojo.

5/14/2018 Apuntes Lenguaje Ensamblador - slidepdf.com

http://slidepdf.com/reader/full/apuntes-lenguaje-ensamblador 5/5

 

 

El procedimiento de complemento a 2 de un número

1) Pasar los bits que tiene valor cero a uno y los bits que

están con valor uno a cero (complemento a uno)

2) Sumar uno al resultado del complemento a uno (para

desplazar la posición del cero como número positivo). Se siguen

las reglas de la suma

Por ejemplo: el 1 a -1 si el número es de 4 bits. Los espacios a laizquierda se deben llenar con cero, de acuerdo con el número de

bits que se manejan.

La resta se crea usando una suma. Existen dos operaciones base

SUI que es la resta inmediata, el SUB que es la resta de registros.

Ejemplo de operaciones

.ORG 00h 00h

3Eh 0Ah

D6h 02h

47h

3Eh 09h

C6h 03h

90h

76h