Vous êtes sur la page 1sur 14

Universidad Tecnolgica

Introduccin a la Programacin

Trabajo Lenguaje Ensamblador

Nombre Alumnos: Carlos Pichaud Jos Gonzlez Nombre Profesor: Marcelo Soto Fecha: 25 de Junio del 2008

Lenguaje ensamblador Este lenguaje fue usado a !lia ente en el !asado !ara el desarrollo de soft"are# !ero actual ente s$lo se utiliza en contadas ocasiones# es!ecial ente cuando se re%uiere la ani!ulaci$n directa del hard"are o se !retenden rendi ientos inusuales de los e%ui!os& Im ortancia del lenguaje ensamblador 'a i !ortancia del lenguaje ensa (lador radica !rinci!al ente %ue se tra(aja directa ente con el icro!rocesador) !or lo cual se de(e de conocer el funciona iento interno de este# tiene la *entaja de %ue en el se !uede realizar cual%uier ti!o de !rogra as %ue en los lenguajes de alto ni*el no lo !ueden realizar& +tro !unto ser,a %ue los !rogra as en ensa (lador ocu!an es!acio en e oria& enos

!entajas del Ensamblador 'a !ri era raz$n !ara tra(ajar con ensa (lador es %ue !ro!orciona la o!ortunidad de conocer s a fondo la o!eraci$n de su PC# lo %ue !er ite el anera s consistente& desarrollo de soft"are de una

'a segunda raz$n es el control total de la PC %ue se tiene con el uso del is o& +tra raz$n es %ue los !rogra as de ensa (lador son co !actos - tienen s r!idos# s

a-or ca!acidad %ue los creados en otros lenguajes& Por

.lti o el ensa (lador !er ite una o!ti izaci$n ideal en los !rogra as tanto en su ta a/o co o en su ejecuci$n& "esventajas 0ie !o de !rogra aci$n&1 Co o es un lenguaje de (ajo ni*el re%uiere instrucciones !ara realizar el s is o !roceso# en co !araci$n con un lenguaje

de alto ni*el& Por otro lado# re%uiere de ejecuci$n& Progra as fuente grandes&1 Por las

s cuidado !or !arte del !rogra ador# s fuerte ente en la

!ues es !ro!enso a %ue los errores de l$gica se reflejen

is as razones %ue au enta el tie !o# s instrucciones

crecen los !rogra as fuentes) si !le ente re%ueri os dificulta el

!ri iti*as !ara descri(ir !rocesos e%ui*alentes& Esto es una des*entaja !or%ue anteni iento de los !rogra as# - nue*a ente reduce la !roducti*idad de los !rogra adores& Peligro de afectar recursos ines!erada ente &1 2ue todo error %ue !oda os co eter# o todo riesgo %ue !oda os tener# !ode os afectar los recursos de la a%uina# !rogra ar en este lenguaje lo s co .n %ue !ueda !asar es %ue la %uina se (lo%uee o se reinicialize& Por%ue con este lenguaje es !erfecta ente !osi(le 3- sencillo4 realizar secuencias de instrucciones in*lidas# %ue nor al ente no a!arecen al usar un lenguaje de alto ni*el& 5alta de !orta(ilidad&1 Por%ue !ara cada %uina e6iste un lenguaje %uina - luego lle*ar los ensa (lador) !or ello# e*idente ente no es una selecci$n a!ro!iada de lenguaje cuando desea os codificar en una !rogra as a otros siste as o!erati*os o Caractersticas

odelos de co !utadoras&

Progra ar en lenguaje ensa (lador es dif,cil de a!render# entender# leer# escri(ir# de!urar lenguajes co !ilados& antener# !or eso surgi$ la necesidad de los

7 !esar de !erder rendi iento en un !roceso de co !ilaci$n# en la actualidad la a-or,a de las co !utadoras son suficiente ente r!idas& ucho tie !o& s El lenguaje ensa (lador no es !orta(le& Progra ar en lenguaje ensa (lador lle*a 'os !rogra as hechos en lenguaje ensa (lador son general ente r!idos& 7l !rogra ar cuidadosa ente en lenguaje ensa (lador se !ueden crear !rogra as de 5 a 80 *eces de alto ni*el& s r!idos %ue con lenguajes

'os !rogra as hechos en lenguaje ensa (lador general ente ocu!an enos es!acio& 9n (uen !rogra a en lenguaje ensa (lador !uede

ocu!ar casi la ni*el&

itad de es!acio %ue su contra!arte en lenguaje de alto

Con el lenguaje ensa (lador se !ueden crear seg entos de c$digo i !osi(les de for ar en un lenguaje de alto ni*el&

Ensambladores 9n ensa (lador crea c$digo o(jeto traduciendo instrucciones ne $nicas a

c$digos o!erati*os e inter!retando los no (res si ($licos !ara direcciones de e oria - otras entidades& El uso de referencias si ($licas es una caracter,stica (sica de los ensa (ladores# e*itando tediosos clculos direcciona iento anual des!us de cada odificaci$n del !rogra a& 'a acros# a-or,a de los ensa (ladores ta (in inclu-en facilidades !ara crear en lugar de utilizar su(rutinas& 'os ensa (ladores son !or lo general dcada de 8:50& 'os ensa (ladores s fciles de !rogra ar %ue los odernos# es!ecial ente !ara 6i o la eficiencia de

a fin de generar series de instrucciones cortas %ue se ejecutan en tie !o real#

co !iladores de lenguajes de alto ni*el# - han estado dis!oni(les desde la ar%uitecturas (asadas en ;<SC# co o !or eje !lo M<PS# SP7;C - P71;<SC o!ti izan las instrucciones !ara e6!lotar al seg entaci$n del CP9& 'os ensa (ladores de alto ni*el ofrecen !osi(ilidades de a(stracci$n %ue inclu-en=

Control a*anzado de estructuras& Procedi ientos de alto ni*el# declaraci$n de funciones& 0i!os de datos %ue inclu-en estructuras# registros# uniones# clases conjuntos& Sofisticado !rocesa iento de acros&

Lenguaje 9n !rogra a escrito en lenguaje ensa (lador consiste en una serie de instrucciones %ue corres!onden al flujo de $rdenes ejecuta(les %ue !ueden ser cargadas en la %uina=

e oria de una co !utadora& Por eje !lo# un !rocesador 68>

!uede ejecutar la siguiente instrucci$n (inaria co o se e6!resa en c$digo de

?inario= 80880000 08800008 3@e6adeci al= 06(0>84 s fcil de

'a re!resentaci$n e%ui*alente en lenguaje ensa (lador es recordar=

M+A al# 0>8h

Esta instrucci$n significa=

Mue*a el *alor he6adeci al >8 3:B deci al4 al registro CalC& ne $nico C o*C es un cdigo de operacin u Co!codeC# elegido !or los

El

dise/adores de la colecci$n de instrucciones !ara a(re*iar C o*eC 3 o*er4& El o!code es seguido !or una lista de argu entos o parmetros# co !letando una instrucci$n de ensa (lador t,!ica& 'a transfor aci$n del lenguaje ensa (lador en c$digo %uina la realiza un

!rogra a ensa (lador# - la traducci$n in*ersa la !uede efectuar un desensa (lador& 7 diferencia de los lenguajes de alto ni*el# a%u, hausual ente una corres!ondencia 8 a 8 entre las instrucciones si !les del ensa (lador - el lenguaje de c$digo de %uina %uina& Sin e (argo# en algunos casos# un ensa (lador !uede !ro*eer C!seudo instruccionesC %ue se e6!anden en un s e6tenso a fin de !ro*eer la funcionalidad necesaria& %uina condicional co o Csi D a-or o igual Por eje !lo# !ara un c$digo

%ueC # un ensa (lador !uede utilizar una !seudoinstrucci$n al gru!o Chaga si enor %ueC # - Csi E 0C so(re el resultado de la condici$n anterior& 'os

ensa (ladores

s co !letos ta (in !ro*een un rico lenguaje de

acros

%ue se utiliza !ara generar c$digo

s co !lejo - secuencias de datos& %uina# - en

Cada ar%uitectura de co !utadoras tiene su !ro!io lenguaje de

consecuencia su !ro!io lenguaje ensa (lador& 'os ordenadores difieren en el ti!o - n. ero de o!eraciones %ue so!ortan) ta (in !ueden tener diferente cantidad de registros# - distinta re!resentaci$n de los ti!os de datos en e oria& 7un%ue la esencial ente las a-or,a de las co !utadoras son ca!aces de cu !lir is as funciones# la for a en %ue lo hacen difiere - los

res!ecti*os lenguajes ensa (ladores reflejan tal diferencia& Pueden e6istir .lti!les conjuntos de ne $nicos o sinta6is de lenguaje

ensa (lador !ara un alternati*a

is o conjunto de instrucciones# instanciados

t,!ica ente en diferentes !rogra as ensa (lador& En estos casos# la s !o!ular es la !ro*ista !or los fa(ricantes# - usada en los anuales del !rogra a&

Cdigo mquina (o lenguaje de mquina) El lenguaje de %uina est for ado !or instrucciones sencillas# %ue

1de!endiendo de la estructura del !rocesador1 !ueden es!ecificar=

;egistros es!ec,ficos !ara o!eraciones arit ticas# direcciona iento o control de funciones& Posiciones de e oria es!ec,ficas 3offset4&

Modos de direcciona iento usados !ara inter!retar o!erandos&

'as o!eraciones

s co !lejas se realizan co (inando estas instrucciones ediante

sencillas# %ue !ueden ser ejecutadas secuencial ente o instrucciones de control de flujo&

'as o!eraciones dis!oni(les en la inclu-e=

a-or,a de los conjuntos de instrucciones

o*er
o o

llenar un registro con un *alor constante o*er datos de una !osici$n de *ice*ersa e oria a un registro o

escri(ir - leer datos de dis!ositi*os su ar# restar# ulti!licar o di*idir los *alores de dos registros#

co !utar
o

colocando el resultado en uno de ellos o en otro registro


o

realizar o!eraciones (inarias# inclu-endo o!eraciones l$gicas 37FGH+;HD+;HF+04 co !arar *alores entre registros 3 a-or# enor# igual4

afectar el flujo del !rogra a


o o o

saltar a otra !osici$n en el !rogra a - ejecutar instrucciones all, saltar si se cu !len ciertas condiciones 3<54 saltar a otra !osici$n# !ero guardar el !unto de salida !ara retornar 3C7''# lla ada a su(rutinas4

7lgunas co !utadoras inclu-en instrucciones co !lejas dentro de sus ca!acidades& 9na sola instrucci$n co !leja hace lo is o %ue en otras co !utadoras !uede re%uerir una larga serie de instrucciones# !or eje !lo=

sal*ar *arios registros en la !ila de una sola *ez o*er grandes (lo%ues de ra,z cuadrada 4 e oria o!eraciones arit ticas co !lejas o de !unto flotante 3seno# coseno#

El ni*el de lenguaje ensa (lador tiene as!ectos i !ortantes de los ni*eles de icroar%uitectura# en los cuales se encuentra 3<S7 - siste a o!erati*o4 estos dos se utilizan !ara la traducci$n en lugar de la inter!retaci$n& 7lgunas caracter,sticas del lenguaje se descri(en a continuaci$n 'os !rogra as %ue sir*en !ara traducir alg.n !rogra a !ara el usuario se lla a traductores# el

lenguaje en %ue esta escrito el !rogra a original se lla a lenguaje fuente# el lenguaje original %ue sea odificado se lla a lenguaje o(jeto&

Se usa la traducci$n cuando se cuenta con un !rocesador 3-a sea hard"are o un inter!rete4 !ara el lenguaje o(jeto !ero no !ara el lenguaje fuente# Si la traducci$n se realiza correcta ente# la ejecuci$n del !rogra a traducido dar e6acta ente los is os resultados %ue ha(r,a dado la ejecuci$n del !rogra a fuente& @a- dos diferencias entre traducci$n e inter!retaci$n# en la traducci$n no se ejecuta directa ente el !rogra a original# en el lenguaje fuente se con*ierte en un !rogra a e%ui*alente lla ado !rogra a o(jeto o !rogra a (inario ejecuta(le - este funciona solo cuando se ha aca(ado la traducci$n& El c$digo %uina# un si !le !atr$n de (its# es hecho legi(le ree !lazando ne $nicos& Se in*ent$ !ara o ento ten,an

valores crudos !or s, (olos deno inados

facilitar la tarea de los !ri eros !rogra adores %ue hasta ese

%ue escri(ir directa ente en c$digo (inario& <nicial ente el c$digo de ceros unos 3el !rogra a4 de(,a introducirse en una tarjeta !erforada& 'a !osici$n ocu!ada !or cada !unto e%ui*al,a a un C8C o a un C0C seg.n hu(iera o no una !erforaci$n& 'o cual su!on,a una for a casi idntica en la %ue ho- se escri(en los datos (inaros en so!ortes tales co o los CGs - GAGs& Mientras %ue una co !utadora reconoce la instrucci$n de 80880000 08800008 !ara los !rogra adores de icro!rocesadores 68> es ucho s fcil %uina <71I2

reconocer dicha instrucci$n e !leando lenguaje ensa (lador = o*( 06>8#Jal 3%ue significa o*er el *alor he6adeci al >8 3:B deci al4 al registro KalK&4 %uina se transfor a en una .nica instrucci$n en

Cada instrucci$n de la c$digo si ($lico& Pero ade s# !ara

ejorar la legi(ilidad del !rogra a# el c$digo si ($lico

introduce instrucciones adicionales# %ue no corres!onden a ninguna instrucci$n

de la

%uina - %ue !ro!orcionan infor aci$n& Se lla an

C!seudoinstruccionesC& El c$digo si ($lico !uede !arecer de dif,cil acceso# !ero es recordar e inter!retar %ue el (inario o el he6adeci al& 'os lenguajes si ($licos no resuel*en definiti*a ente el !ro(le a de c$ o !rogra ar un ordenador de la ha- %ue conocer a fondo el dis!one# la estructura de la anera s sencilla !osi(le& Para utilizarlos# uchas cosas u- ligado al s& icro!rocesador !ara %ue %uina en %ue *an a icro!rocesador# los registros de tra(ajo de %ue e oria# s fcil de

7de s# el lenguaje ensa (lador est ejecutarse&

sea !osi(le escri(ir !rogra as inde!endientes de la

Este cdigo simblico no !uede ser ejecutado directa ente !or un ordenador# !or lo %ue es !reciso traducirlo !re*ia ente& Pero la traducci$n es un !roceso ecnico - re!etiti*o# %ue se !resta a su realizaci$n !or un !rogra a de ordenador& 'os !rogra as %ue traducen c$digo si ($lico al lenguaje de %uina se

lla an ensa (ladores 3Casse (lerC# en ingls4# !or%ue son ca!aces de ensa (lar el !rogra a traducido a !artir de *arias !iezas# !rocedi ientos o su(rutinas a c$digo (inario 3C8C - C0C4 %ue entiende el !rocesador&

#elacin entre el cdigo binario $ el lenguaje ensamblador En el c$digo (inario se utilizan ceros - unos# ensa (lador es una colecci$n de s, (olos ientras %ue el lenguaje ne $nicos %ue re!resentan=

o!eraciones# no (res si ($licos# o!eradores - s, (olos es!eciales& 'a relaci$n entre estos dos lenguajes ser,a %ue el (inario es el lenguaje %ue la %uina entiende - el ensa (lador se acerca Manejo de la El as lenguaje de esta&

e oria= Girecciona iento 3interno - e6terno4 e oria de!ende de %ue !rocesador tenga la encionan los siguientes= %uina# entre

anejo de la

los cuales a continuaci$n se

Me oria de Progra a Me oria E6terna de Gatos Me oria <nterna de Gatos ;egistros de 5unciones Es!eciales Me oria de ?it& El es!acio de la Me oria de Progra a contiene todas las instrucciones# datos# ta(las - cadenas de caracteres 3strings4 usadas en los !rogra as& Esta e oria se direcciona !rinci!al ente usando el registro de 8> (its lla ado Gata Pointer& El ta a/o datos %ue no ca(en en la 6i o de la Me oria de Progra a es de >L M(-tes& e oria interna del Micro!rocesador& Esta e oria 'a Me oria E6terna de Gatos contiene todas las *aria(les - estructuras de se direcciona !rinci!al ente !or el registro de 8> (its Gata Pointer # aun%ue ta (in se !uede direccionar un (anco de Me oria E6terna de Gatos de 25> (-tes usando los dos !ri eros registros de !ro!$sito general & El es!acio de Me oria <nterna de Gatos funcional ente es la datos e oria de s i !ortante# -a %ue ah, es donde residen cuatro (ancos de registros e oria direcciona(le !or (it - todas las *aria(les - estructuras de 6i o de la

de !ro!$sito general) la !ila o stacN del !rogra a) 828 (its de los 25> (its de un rea de datos o!eradas directa ente !or el !rogra a& El ta a/o Me oria <nterna de Gatos es de 25> (-tes& Contiene un es!acio !ara los deno inados ;egistros de 5unciones Es!eciales destinado !ara los !uertos de entradaHsalida# te !orizadores - !uerto serie del circuito integrado& Estos registros inclu-en al StacN Pointer) al registro de la !ala(ra de estado del !rogra a - al 7cu ulador& 'a cantidad ;egistros de 5unciones Es!eciales es 828& 0odos los ;egistros de 5unciones Es!eciales tienen direcciones a-ores a odo de 82B - se u(ican en los 828 (-tes su!eriores de la Me oria <nterna de Gatos& Estas dos reas de la Me oria <nterna de Gatos se diferencian !or el direcciona iento usado !ara accesarlas& 'os ;egistros de 5unciones Es!eciales solo se !ueden accesar usando el Girecto# odo de direcciona iento <ndirecto& Por otra !arte# el es!acio de Me oria de ?it se usa !ara al acenar *aria(les odo de direcciona iento ientras %ue los 828 (-tes su!eriores solo se !ueden accesar con el 6i a de

(anderas de un (it& El ta a/o

6i o de la Me oria de ?it es de 25> (its# 828

de los (its co !arten su es!acio con 8> (-tes del es!acio de la Me oria <nterna de Gatos - los otros 828 (its lo hacen con los ;egistros de 5unciones Es!eciales& Ejemplos de lenguaje ensamblador Ejem lo % El siguiente es un eje !lo del !rogra a clsico Hola mundo escrito !ara la ar%uitectura de !rocesador 68> 3(ajo el siste a o!erati*o G+S4& & odel s all &stacN &data Cadena8 G? K@ola Mundo&OK &code !rogra a= o* a6# Pdata o* ds# a6 o* d6# offset Cadena8 o* ah# : int 28h end !rogra a

Ejem lo & 9na selecci$n de instrucciones !ara una co !utadora *irtual4 con las corres!ondientes direcciones de e oria en las %ue se u(icarn las instrucciones& Estas direcciones F+ son estticas& Cada instrucci$n se aco !a/a del c$digo ensa (lador generado 3c$digo o(jeto4 %ue coincide con la ar%uitectura de co !utador *irtual# o conjunto de instrucciones <S7&

"ir' Eti(ueta

Instruccin &(egin &org 20L8

)digo objeto

aQstart 20L8 20>L

&e%u I000 ld length#J (e done 00000080 80000000 00000000 00000880

20>8

addcc Jr8#1L#Jr8

80000080 80000000 08888888 88888800

20B2

addcc Jr8#Jr2#JrL 80008000 80000000 08000000 00000080

20B>

ld JrL#Jr5

88008080 00000008 00000000 00000000

2080

(a loo!

00080000 80888888 88888888 88888088

208L

addcc JrI#Jr5#JrI 80000880 80000000 88000000 00000808

2088 done=

j !l Jr85RL#Jr0

80000008 88000088 88800000 00000800

2092 length=

20

00000000 00000000 00000000 00080800

2096 address= aQstart &org aQstart I000 a=SHtt

00000000 00000000 00008088 80888000

)onclusin El lenguaje ensamblador es un ti!o de lenguaje de (ajo ni*el utilizado !ara escri(ir !rogra as infor ticos# - constitu-e la re!resentaci$n c$digo un !rogra ador& s directa del %uina es!ec,fico !ara cada ar%uitectura de co !utadoras legi(le !or

Introduccin En este tra(ajo se dar a conocer en %ue consiste el siste a ensa (lador sus *entajas - des*entajas sus caracter,sticas - la i !ortancia de este&

Vous aimerez peut-être aussi