Apuntes Lenguaje Ensamblador
-
Upload
crismar-cris-mart -
Category
Documents
-
view
62 -
download
0
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