PDF de programación - Lenguaje ensamblador

Imágen de pdf Lenguaje ensamblador

Lenguaje ensambladorgráfica de visualizaciones

Publicado el 27 de Agosto del 2019
1.126 visualizaciones desde el 27 de Agosto del 2019
668,8 KB
18 paginas
Creado hace 7a (24/08/2016)
Lenguaje ensamblador





© Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la

Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción,

puesta a disposición del público y en general cualquier otra forma de explotación de toda o parte

de la misma.



La utilización no autorizada de esta obra, así como los perjuicios ocasionados en los derechos de

propiedad intelectual e industrial de la Universidad Europea de Madrid, S.L.U., darán lugar al
ejercicio de las acciones que legalmente le correspondan y, en su caso, a las responsabilidades

que de dicho ejercicio se deriven.




Lenguaje ensamblador



Contenido



Presentación ........................................................................................................................ 4

Código máquina ................................................................................................................... 6

Ensamblador ........................................................................................................................ 8

Modos de direccionamiento ............................................................................................. 10

Tipos y formatos de instrucciones ..................................................................................... 14

Modelo de ejecución ......................................................................................................... 15

RISC vs CISC ........................................................................................................................ 16

Resumen ............................................................................................................................ 18



© Universidad Europea de Madrid. Todos los derechos reservados.

3



Lenguaje ensamblador



Presentación



En este recurso se va a estudiar el ensamblador, un lenguaje de programación de bajo nivel y muy

dependiente del microprocesador con el que se trabaje.

Al ser un lenguaje de muy bajo nivel, está muy relacionado con el hardware y la arquitectura del

microprocesador. Por eso, el estudio del lenguaje ensamblador y del microprocesador va de la mano.

Lo ligado que el ensamblador está al microprocesador es, a la vez, su punto fuerte y su debilidad. Esta

característica hace que programar en ensamblador genere un código muy óptimo y eficiente, teniendo el

programador la decisión de todo. Por el contrario, aprender ensamblador para un microprocesador no

asegura que se pueda programar para otra familia de procesadores, ya que el lenguaje y sus

características cambian.

Para estos contenidos se ha decidido utilizar familia de microcontroladores Atmel “ATMega” como

hardware de estudio, por su ensamblador simple, mapa de memoria único, arquitectura fácil y por su

bajo coste. Todas estas características facilitan que el alumno tenga su propio microprocesador para hacer

las prácticas.



Atmel “ATMega”

Este microcontrolador es el que monta la mayor parte de las placas Arduino, desde el Arduino Uno, hasta

el Mega, pasando por el micro, nano, 101, Arduino pro, Yun, Duemilanove, Leonardo, Diecimila, lilypad y

demás versiones compatibles (a excepción del Arduino zero, que lleva un ARM-32bits).



© Universidad Europea de Madrid. Todos los derechos reservados.

4



Lenguaje ensamblador



Para los ejemplos se usa el Genuino Uno como base. Pero serán compatibles con cualquier Arduino con

pequeñas variaciones.

A continuación, se pasa a describir de manera genérica qué es el lenguaje ensamblador.

Objetivos

Los objetivos que se pretenden alcanzar en este tema son los siguientes:



Introducir la programación ensamblador analizando sus conceptos desde un punto de vista

teórico sin ligarlo a un microprocesador en concreto.



Comprender el concepto de programa así como la secuencia básica de ejecución del mismo.

 Diferenciar y analizar los distintos tipos de direccionamientos.



Conocer

los distintos modelos de ejecución que originan

las diversas tecnologías de

microprocesadores.



© Universidad Europea de Madrid. Todos los derechos reservados.

5



Lenguaje ensamblador



Código máquina

Un computador es una máquina diseñada para ejecutar programas, solo sabe ejecutar programas y

siempre tiene que estar ejecutando algún programa. Esto implica que nunca se detiene, siempre está en

ejecución.

Un programa no es más que una secuencia de instrucciones simples, indivisibles que realizan una única

operación. Pero, para poder ejecutar estas instrucciones exige que tanto estas como los datos que se

necesiten, residan en la memoria principal. Dado que el componente que ejecuta las instrucciones es el

microprocesador, surge una necesidad directa para que estas instrucciones se ejecuten. Tienen que viajar

desde la memora al microprocesador, y una vez ahí, tienen que almacenarse temporalmente para poder

ejecutarlas completamente.

Por tanto, la secuencia básica de ejecución de cualquier programa se compone de los siguientes pasos,

que se repiten sucesivamente.



Lectura

Se lee una instrucción o sentencia del programa de la memoria principal.

Interpretación

La unidad de control (uno de los componentes que están dentro del microprocesador) interpreta la

instrucción leída.

Ejecución

Bajo las órdenes de la unidad de control se ejecuta la instrucción, por ejemplo, pidiendo a la ALU

(Unidad Aritmética Lógica) que realice una operación de suma.



Pero recordemos:



Los computadores no son capaces de interpretar directamente un lenguaje de alto nivel. Por el

contrario, solamente "entienden" un lenguaje muy restringido, que se denomina lenguaje

máquina.

 Además, ¿qué se puede guardar en la memoria? Bits, por tanto, números y solo números.

Uniendo estas dos afirmaciones se llega a las conclusiones de que el programa se guarda en la memoria

como números y de que el lenguaje que ejecuta un ordenador es “código máquina”.



El código máquina es la codificación numérica de tareas o acciones que el microprocesador puede

ejecutar. Se puede considerar como el más “simple” (que no fácil) lenguaje en el que se puede

programar un ordenador. Este lenguaje es muy sencillo y se compone de una serie de instrucciones

máquina, cuyo conjunto constituye el llamado juego de instrucciones.



6


© Universidad Europea de Madrid. Todos los derechos reservados.


Lenguaje ensamblador



Juego de instrucciones



Instrucción 7E. Representa la operación A ← M(HL). La instrucción ”7E” (en

hexadecimal) perteneciente al microprocesador Z80, esta

instrucción



transfiere al registro “A” el contenido de la posición de memoria cuya dirección

está almacenada en la pareja de registros [H,L].



Instrucción 3A3353. Representa la operación M(0x5333) ← A. Instrucción del

Z80 que transfiere a la posición de memoria principal “0x5333” el contenido

del registro “A”.



Instrucción 3C47. Representa la operación R4 ← R4*R7. Instrucción del IBM

370 que multiplica el contenido de los registros R4 y R7, almacenando el

resultado en R4.



© Universidad Europea de Madrid. Todos los derechos reservados.

7



Lenguaje ensamblador



Ensamblador

Llegados a este punto, tenemos la verdad más dura para el

programador a bajo nivel. Si queremos programar un

ordenador, sin

intervención de software

intermedio

(compiladores) tenemos que generar nuestro programa como

una secuencia de ceros y unos inmensa, sin estructura (no

hay funciones, objetos, variables, etc.). Para colmo, el

lenguaje máquina es diferente para cada tipo o familia de

computadores, lo que provoca una incompatibilidad entre

ellos.

Esta es una forma muy engorrosa de escribir programas y de

manejar

información. Por

esto,

emplearemos una

simplificación de esta notación binaria, utilizando notación

hexadecimal o notación simbólica tipo ensamblador para

poder hacer códigos más legibles, de acuerdo al estándar del

IEEE: “Microprocessor Assembly Language Standard IEEE

694”.

¿Qué es Ensamblador?

El ensamblador lo podemos definir como un lenguaje de

programación, como todo lenguaje de programación, está

acompañado de un software que permite convertir de este lenguaje a código máquina.

Pero, más que un lenguaje de programación, es una colección de nemotécnicos que permiten escribir

código de una manera más legible por el ser humano. Además, a diferencia del código máquina que solo

permite el binario, el ensamblador permite escribir números en decimal, hexadecimal, octal y por

supuesto binario.

En la imagen podemos apreciar la diferencia de lectura de un fragmento de programa escrito en código

máquina, frente al mismo código escrito en ensamblador del Intel 286.

Retomando los ejemplos del caso anterior:



Instrucción C. Máquina

Ensamblador

Interpretación

7E

3A3353

3C47



ld A, [H:L]

Load A con el contenido apuntado por H,L

str [0x5333], A

Almacenar en @5333 el contenido de A

mul R4, R7

Multiplicar R4 con R7 y almacenarlo en R4



© Universidad Europea de Madrid. Todos los derechos reservados.

8



Lenguaje ensamblador



Características de las instrucciones en ensamblador

Las instrucciones en ensamblador suelen cumplir las siguientes características:









Ca
  • Links de descarga
http://lwp-l.com/pdf16499

Comentarios de: Lenguaje ensamblador (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