Vous êtes sur la page 1sur 18

UNIVERSIDAD DE CARTAGENA SIEMPRE A LA ALTURA DE LOS TIEMPOS

LENGUAJE DE PROGRAMACION ASSEMBLER

BARON CAICEDO SEBASTIAN FELIPE CONSUEGRA ARRIETA LUIS ENRIQUE

INGENIERIA DE SISTEMAS

SISTEMAS OPERATIVOS HUMBERTO CAICEDO

25-02-2014 CARTAGENA DE INDIAS D.T. C.

I!"#$%&''()! En el siguiente trabajo trataremos sobre la definicin del trmino *!+,-./,%$# este trmino es tomado del ingls assembler y se refiere a un tipo de programa informtico que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene cdigo mquina, ejecutable directamente por el microprocesador. El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los cdigos nemotcnicos que aparecen por su cdigo de programacin correspondiente en sistema binario para la plataforma que se eligi como destino en las opciones especficas del ensamblador. Podemos distinguir entre dos tipos de ensambladores:

E!+,-./,%$#*+ .0+('$+. on de muy bajo ni!el, y su tarea consiste bsicamente en ofrecer nombres simblicos a las distintas instrucciones, parmetros y cosas tales como los modos. E!+,-./,%$#*+ -$%&/,#*+ 12-.("+ o %* ,/"$ !(2*/. on ensambladores que aparecieron como respuesta a una nue!a arquitectura de procesadores de "# bits, muchos de ellos teniendo compatibilidad hacia atrs pudiendo trabajar con programas con estructuras de $% bits. &dems de reali'ar la misma tarea que los anteriores, permitiendo tambin el uso de macros, permiten utili'ar estructuras de programacin ms complejas propias de los lenguajes de alto ni!el.

L*!3&,4* %* *!+,-./,%$#. El lenguaje ensamblador, o assembler (assembly language en ingls), es un lenguaje de programacin de bajo ni!el para los computadores, microprocesadores, micro controladores y otros circuitos integrados programables. *mplementa una representacin simblica de los cdigos de mquina binarios y otras constantes necesarias para programar una arquitectura dada de +P, y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura legible por un programador. Esta representacin es usualmente definida por el fabricante de hard-are, y est basada en los mnemnicos que simboli'an los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras caractersticas del lenguaje. ,n lenguaje ensamblador es por lo tanto especfico de cierta arquitectura de computador fsica (o !irtual). Esto est en contraste con la mayora de los lenguajes de programacin de alto ni!el, que idealmente son porttiles. .el lenguaje de ensamblador podemos decir que tiene las siguientes caractersticas: El /nico lenguaje que entienden los microcontroladores es el cdigo mquina formado por ceros y unos del sistema binario. El lenguaje ensamblador e0presa las instrucciones de una forma ms natural al hombre a la !e' que muy cercana al microcontrolador, ya que cada una de esas instrucciones se corresponde con otra en cdigo mquina. El lenguaje ensamblador trabaja con nemnicos, que son grupos de caracteres alfanumricos que simboli'an las rdenes o tareas a reali'ar. 1a traduccin de los nemnicos a cdigo mquina entendible por el microcontrolador la lle!a a cabo un programa ensamblador. El programa escrito en lenguaje ensamblador se denomina cdigo fuente (2.asm). El programa ensamblador proporciona a partir de este fichero el correspondiente cdigo mquina, que suele tener la e0tensin 2.he0. El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje mquina, es decir, es un lenguaje de bajo ni!el. El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra mquina distinta. &l cambiar a una mquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.

1os programas hechos por un programador e0perto en lenguaje ensamblador son generalmente mucho ms rpidos y consumen menos recursos del sistema (memoria 3&4 y 354) que el programa equi!alente compilado desde un lenguaje de alto ni!el. &l programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan ms rpidamente y ocupan menos espacio que con lenguajes de alto ni!el. +on el lenguaje ensamblador se tiene un control muy preciso de las tareas reali'adas por un microprocesador por lo que se pueden crear segmentos de cdigo difciles y6o muy ineficientes de programar en un lenguaje de alto ni!el, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del +P, que generalmente no estn disponibles en los lenguajes de alto ni!el. 7ambin se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecucin.

1a imagen que se encuentra a continuacin e0plica el proceso mediante el cual el usuario le dicta instrucciones de funcionamiento a la mquina y como el programa ensamblador traduce a lenguaje nati!o de la mquina.

I!+"#&''($!*+ 5 ')%(3$ 6&*!"* .el cdigo fuente y las instrucciones del programa de ensamblador hay que resaltar las siguientes caractersticas de la sinta0is Est compuesto por una sucesin de lneas de te0to. +ada lnea puede estructurarse en hasta cuatro campos o columnas separadas por uno o ms espacios o tabulaciones entre s.

1a sinta0is de las instrucciones es la siguiente:

Etiqueta 5pcode 5perando(s) +omentario 7eniendo en cuenta el ejemplo anterior que muestra la estructura de una lnea de cdigo fuente en ensamblador se resaltan las siguientes recomendaciones al momento de escribir en un lenguaje de ensamblador El campo *"(7&*", es opcional O8'$%* contiene el mnemnico de la instruccin o la directi!a de ensamblador. O8*#,!%$9+:, son los operandos ($ o # o ninguno) de la instruccin o directi!a. +ua ndo hay # o ms operandos, estos se separan por comas. .e forma opcional, el /ltimo campo es el '$-*!",#($.

P,#"*+ %* /, +(!",;(+ %*/ /*!3&,4* %* *!+,-./,%$# C,-8$ %* *"(7&*",+. E0presiones alfanumricas escogidas por el usuario para identificar una determinada lnea. 7odas las etiquetas tienen asignado el !alor de la posicin de memoria en la que se encuentra el cdigo al que acompa8an.

C,-8$ %* ')%(3$. +orresponde al nemnico de una instruccin, de una directi!a o de una llamada a macro. En el lenguaje de ensamblador e0isten " tipos de instrucciones principales: I!+"#&''($!*+< son aquellos nemnicos que son con!ertidos por el ensamblador en cdigo mquina que puede ejecutar el n/cleo del microcontrolador. En la gama media (P*+$%000) cada nemnico se con!ierte en una palabra en la memoria de programa D(#*'"(2,+< Pseudoinstrucciones que controlan el proceso de ensamblado del programa, pero no son parte del cdigo. on indicaciones al programa ensamblador de cmo tiene que generar el cdigo mquina M,'#$+< ecuencia de nemnicos que pueden insertarse en el cdigo fuente del ensamblador de una manera abre!iada mediante una simple llamada.

C,-8$ %* $8*#,!%$+ 5 %,"$+. +ontiene los operandos que precisa el nemnico utili'ado. eg/n el cdigo, puede haber dos, uno o ning/n operando. El ensamblador 4P& 4 (distribuido por 4icrochip) soporta los sistemas de numeracin decimal, he0adecimal, octal, binario y & +**. 1os nemnicos que tengan una constante como operando debern incluirla respetando la sinta0is que se indica a continuacin.

C,-8$ %* '$-*!",#($+. .entro de una lnea, todo lo que se encuentre a continuacin de un punto y coma (9) ser ignorado.

P#(-*#$+ 8,+$+ *! */ /*!3&,4* %* 8#$3#,-,'()! %* *!+,-./,%$# En el lenguaje de programacin de ensamblador de deben seguir una serie de pasos a dar para poder generar cdigo fuente: $.: ;uego de *nstrucciones #.: .irecti!as y 4acros ".: 5rgani'acin de la 4emoria interna: Programa .atos

.el juego de instrucciones para programar en lenguaje de ensamblador tenemos que, es un juego reducido de "< instrucciones muy simples. Procesador 3* + 1a mayora de las instrucciones se ejecuta en = ciclos de reloj9 los saltos y llamadas a subprogramas se ejecutan en > (no se apro!echa pipeline). 7odas las instrucciones tienen la misma longitud en la gama media: $= bits. Por lo tanto el clculo del tiempo de ejecucin y de lo que ocupa un programa resulta simple las instrucciones se pueden clasificar atendiendo a dos criterios: $.) ?ormato. #.) ?uncionalidad. 1a imagen a continuacin describe el juego de instrucciones seg/n su formato

CICLO DE INSTRUCCION ,n ciclo de instruccin es el tiempo que se tarda en ejecutar una instruccin (sal!o las instrucciones de salto) en el microcontrolador. En los P*+$%, un ciclo de instruccin dura = ciclos de reloj. En una primera etapa, la instruccin es trada a la +P,. Esto lle!a un ciclo de instruccin 7+@. En la segunda etapa se ejecuta la instruccin. Esto lle!a otro 7+@.

Ao obstante, debido al solapamiento (pipelining entubado) de traer la instruccin actual y ejecucin de la instruccin pre!ia, una instruccin se trae y otra se ejecuta cada 7+@.

Pudiera haber un ciclo de instruccin de retardo si el resultado de ejecutar la instruccin anterior modifica el contenido del +ontador de Programa (Ej: B575 +&11). Esto implica suspender el entubado (pipelining) de las instrucciones durante un ciclo para que la instruccin a donde se salta se traiga a la +P,.

E/ 4&*3$ %* (!+"#&''($!*+< SEG=N SU FUNCIONALIDAD

LAS CLAVES DEL JUEGO DE INSTRUCCIONES

D(#*'"(2,+ %* MPASM on aquellas instrucciones que controlan el proceso de ensamblado del programa, pero no son parte del mismo (tambin se conocen como pseudo:instrucciones), hay ms de <C directi!as reconocidas por 4P& 4. Entre las ms usadas se encuentran:

END< E+ /, >!(', %(#*'"(2, $./(3,"$#(,. I!%(', ,/ *!+,-./,%$# %)!%* %*.* %*"*!*# */ 8#$'*+$. D*.* '$/$',#+* *! /, >/"(-, /?!*, %*/ 8#$3#,-,. @*"(7&*",A EQU @*;8#*+()!A< E/ 2,/$# @*;8#*+()!A *+ ,+(3!,%$ , @*"(7&*",A. E+",+ %(#*'"(2,+ +* +&*/*! '$/$',# ,/ 8#(!'(8($ %*/ 8#$3#,-, 5 B,.("&,/-*!"* +* &+,! 8,#, %*6(!(# '$!+",!"*+ 5 %(#*''($!*+ %* -*-$#(,. C@*"(7&*",AD ORG @*;8#*+()!A< L,+ (!+"#&''($!*+ %*/ ')%(3$ 6&*!"* 7&* +(3&*! , *+", %(#*'"(2, +* *!+,-./,! , 8,#"(# %* /, 8$+('()! (!%(',%, 8$# @*;8#*+()!A. EECONFIG @*;8#*+()!A CF @*;8#*+()!A F ... F @*;8#*+()!AD<P*#-("* (!%(',# /, '$!6(3&#,'()! */*3(%, 8,#, /, 3#,.,'()! %*/ PIC. E4*-8/$< EECONFIG ECPEOFF F EGDTEOFF F EHTEOSC

LIST PI1JFKLL< I!%(', */ "(8$ %* -('#$'$!"#$/,%$# &"(/(M,%$. INCLUDE @81JFKLL.(!'A $ INCLUDE 81JFKLL.(!'< I!'/&5* *! */ 8#$3#,-, &! 6('B*#$ %$!%* +* %*6(!*! /,+ *"(7&*",+ '$! /,+ 7&* +* !$-.#, , /$+ %(6*#*!"*+ #*3(+"#$+ 5 +&+ .("+. E+"* 6('B*#$ +* *!'&*!"#, *! */ %(#*'"$#($ 8#(!'(8,/ %*/ 8#$3#,-, *!+,-./,%$#. P&*%* &+,#+* *+", %(#*'"(2, 8,#, (!'/&(# '&,/7&(*# $"#$ 6('B*#$ 9NO4$O E/ 6('B*#$ %* (!'/&+()! !$ 8&*%* "*#-(!,# '$! &!, %(#*'"(2, END:. DT @*;8#1A CP @*;8#2AP ... P @*;8#NAD G*!*#, &!, (!+"#&''()! #*"/Q 8$# ',%, *;8#*+()! 7&* (!'/&5, /, %(#*'"(2,. S( /, *;8#*+()! *+ %*/ "(8$ ',%*!,P +* 3*!*#,#0 &!, (!+"#&''()! #*"/Q 8$# ',%, ',#0'"*# %* /, -(+-,. L(+",%$ '$-8/*"$ %* %(#*'"(2,+ MPASM

O#3,!(M,'()! (!"*#!, %* /, -*-$#(, 8#(!'(8,/. ,na memoria principal se compone de un conjunto de celdas bsicas dotadas de una determinada organi'acin. +ada celda soporta un bit de informacin. 1os bits se agrupan en unidades direccionables denominadas palabras. 1a longitud de palabra la determina el n/mero de bits que la componen y constituye la resolucin de la memoria (mnima cantidad de informacin direccionable). 1a longitud de palabra suele oscilar desde > bits (byte) hasta %= bits. +ada celda bsica es un dispositi!o fsico con dos estados estables (o semi:estables) con capacidad para cambiar el estado (escritura) y determinar su !alor (lectura). &unque en los primeros computadores se utili'aron los materiales magnticos como soporte de las celdas de memoria principal (memorias de ferritas, de pelcula delgada, etc.) en la actualidad slo se utili'an los materiales semiconductores. .entro de las memorias electrnicas de semiconductor podemos distinguir dos grandes grupos: 1as estticas ( 3&4: tatic 3andom &ccess 4emory) y las dinmicas (.3&4: .ynamic 3andom &ccess 4emory). 1as estticas utili'an el principio de biestabilidad que se consigue con dos puertas in!ersoras (A&A. A53) realimentadas, mientras que las dinmicas apro!echan la carga o ausencia de carga de un peque8o condensador creado en un material semiconductor. .ebido a la descarga natural que sufren las celdas cargadas, las memorias dinmicas necesitan un sistema de refresco que peridicamente : y antes que la carga elctrica del condensador se haga indetectable : recargue las celdas que se encuentran en estado de carga. .esde un punto de !ista conceptual y con independencia de la tecnologa, consideraremos la celda bsica de memoria como un bloque con tres lneas de entrada (entrada dato, seleccin y lectura6escritura) y una de salida (salida dato). 1a celda slo opera (lectura escritura) cuando la seleccin est acti!a.

O#3,!(M,'()! (!"*#!, %* /, -*-$#(,< 1as celdas de memoria se disponen en el interior de un chip atendiendo a dos organi'aciones principales: la organi'acin por palabras, tambin denominada #., y la organi'acin por bits, tambin denominada # D . o ".. O#3,!(M,'()! 2D< Es la organi'acin ms sencilla que responde al esquema mostrado en la siguiente figura:

1as celdas forman una matri' de #n filas y m columnas, siendo #n el n/mero de palabras del chip y m el n/mero de bits de cada palabra. +ada fila es seleccionada por la decodificacin de una configuracin diferente de los n bits de direccin. Esta organi'acin tiene el incon!eniente que el selector (decodificador) de palabras crece e0ponencialmente con el tama8o de la memoria. *gual le ocurre al n/mero de entradas (fan:in) de las puertas 53 que generan la salida de datos. E4*-8/$ En la siguiente figura se muestra la organi'acin #. de un chip de memoria con = palabras de = bits:

O#3,!(M,'()! 1D< En lugar de una /nica seleccin (decodificador) de #n salidas en esta organi'acin se utili'an dos decodificadores de #n6# operando en coincidencia. 1as lneas de direccin se reparten entre los dos decodificadores. Para una configuracin dada de las lneas de direccin se selecciona un /nico bit de la matri'. Por ello se la denomina tambin organi'acin por bits.

E4*-8/$<

En esta organi'acin se necesitan !arias matrices de celdas bsicas, tantas como bits deba tener la palabra de memoria, actuando sobre ellas en paralelo los circuitos de decodificacin:

E4*-8/$ %* &! 8#$3#,-, *+'#("$ *! /*!3&,4* %* *!+,-./,%$#

CONCLUSION P$%*-$+ '$!'/&(# 7&* */ /*!3&,4* ,++*-./*# $ *!+,-./,%$# !$+ 8*#-("* *+",./*'*# &!, #*/,'()! %(#*'", *!"#* */ &+&,#($ 5 /, -07&(!,P -*%(,!"* */ &+$ %* /,+ B*##,-(*!",+ '$!$'(%,+ '$-$ 8#$3#,-,+ %* *!+,-./,%$#P /$+ '&,/*+ , "#,2R+ %* &!, +(!",;(+ *+8*'(6(', 6,'(/(",! /, '$-&!(','()! %* )#%*!*+ 5 *2(",! /, ',+( (-8$+(./* /,.$# %* 8#$3#,-,# *! /*!3&,4* .(!,#($ /,+ (!+"#&''($!*+ 8,#, /, -07&(!,.

REFERENCIAS 1. .a!id alomon ($EE"). Assemblers and Loaders 2. &ns-ers.com. Fassembly language: .efinition and 4uch 4ore from &ns-ers.comG. +onsultado el $E:C%:#CC>.

". http:66---.unio!iedo.es6ate6alberto67E4&"Ensamblador.pdf . +onsultado el #=:C#: #C$=. 4. Principles of +omputer &rchitecture (P5+&) H &3+7ools computadora !irtual disponible para descarga y ejecucin del cdigo, acceso el #= de agosto de #CC<

Vous aimerez peut-être aussi