Lenguaje Ensamblador

24
1 9. Lenguaje ensamblador Lenguaje máquina: un programa o secuencia de instrucciones viene dado por una secuencia de códigos binarios. Lenguaje ensamblador: secuencia lógica de sentencias pertenecientes a alguna de las siguientes clases: - Una línea de comentario. - Una instrucción ejecutable. - Una directiva de ensamblado. La escritura en lenguaje máquina es tediosa y proclive a errores, el lenguaje ensamblador facilita la tarea de la escritura sin perder la cercanía a la máquina.

Transcript of Lenguaje Ensamblador

  • 19.Lenguajeensamblador

    Lenguajemquina:unprogramaosecuenciadeinstruccionesvienedadoporunasecuenciadecdigosbinarios.

    Lenguajeensamblador:secuencialgicadesentenciaspertenecientesaalgunadelassiguientesclases:

    Unalneadecomentario.Unainstruccinejecutable.Unadirectivadeensamblado.

    Laescrituraenlenguajemquinaestediosayprocliveaerrores,ellenguajeensambladorfacilitalatareadelaescriturasinperderlacercanaalamquina.

  • 29.Lenguajeensamblador

    Programaensamblador:Programaensamblador:traduceellenguajeensambladorallenguajemquinadelaCPU

    Programafuente

    Programaobjeto

    lenguajeensamblador lenguajemquina

    ensamblador

  • 39.Lenguajeensamblador

    Elformatobsicodeunasentenciaenlenguajeensambladores:

    EtiquetaOpcodeOperando(s)Comentario*Elcampoetiquetaesopcional*Opcodecontieneelmnemnicodelainstruccinoladirectivadeensamblador.

    *Operando(s),sonlosoperandos(1o2oninguno)delainstruccinodirectiva.Cuandohay2omsoperandos,estosseseparanporcomas.

    *Deformaopcional,elltimocampoeselcomentario.

  • 49.Lenguajeensamblador

    Directivas: son rdenes para el ensamblador y no tienentraduccinacdigomquina.Utilizaremos:

    ORG:

    Inicializaelcontadordeprogramaconelvalordeloperando.SinoseutilizaunadirectivaORG,seasumequeelPCvale0.

    - Sintaxis: ORG valor

    - Ejemplo: ORG $400

  • 59.Lenguajeensamblador

    - EQU:

    Asignaalsmbolocontenidoenelcampoetiquetaelvalordelaexpresinenelcampooperando.

    - Sintaxis: etiqueta EQU valor

    - Ejemplo: PI EQU 3.1416

  • 69.Lenguajeensamblador

    DC:

    Define constantes en memoria. Permite asignar valoresnumricos, tablas, caracteres o cadenas a variables dememoria.

    - Aadiendo .B, .W o .L se indica el tamao de la constante. Si no se indica nada, se asume tamao W.

    - Se pueden asignar hasta 256 bytes de datos en una nica directiva

  • 79.Lenguajeensamblador

    Sintaxis:ETIQUETADC.tconst1,const2,.....

    Ejemplos:

  • 89.LenguajeensambladorDS:

    Seutilizaparareservarposicionesdememoria.

    Aadiendo.B, .Wo .L se indicael tamaodecadaelementoreservado.Sinoseindicanada,seasumetamaoW.

    Sintaxis:ETIQUETADS.tvalor

    Ejemplo:DS.B 256Reserva256bytesconsecutivosdememoria

    DS.L1Reservaunapalabralarga

    HolaDS2ReservadospalabrasapartirdeladireccinasignadaporelensambladoraHola

  • 910.Procesamientodeexcepciones

    Las excepciones permiten interrumpir la ejecucin normal de una secuencia de instrucciones para pasar a atender, de forma inmediata, la situacin particular que las genera.

    Se clasifican en internas o externas segn el origen de la situacin particular.

  • 10

    10.Procesamientodeexcepciones

    Clasificacin

  • 11

    10.Procesamientodeexcepciones

    Cada excepcin tiene asociada un vector de excepcinalmacenadoenunaposicinconcretadelamemoria.

    Un vector de excepcin es una direccin de memoria (puntero,doble palabra).Dicha direccin hace referencia a la posicin dememoria que ocupa la primera instruccin de la rutina deexcepcin.

    Existenuntotalde255vectoresdeexcepcinalmacenadosenlatabladevectoresdeexcepcinsituadaapartirdeladireccin$000000delaRAMyconuntamaototalde1Kbytes.

    Cada vector de excepcin de la tabla es identificado por elnmerodevectordeexcepcin,N(Nvarade0a255,byte).ApartirdeesteN,elmicroprocesadordetermina ladireccinde laRAM donde se encuentra el vector de excepcin realizando laoperacin4*N.

    Los 64 primeros vectores estn preasignados (aunque puedensobreescribirse),losrestantesquedanlibresparsuutilizacin.

  • 12

    10.Procesamientodeexcepciones

    TABLADEVECTORESDEEXCEPCIN

  • 13

    10.Procesamientodeexcepciones

    Laatencindeunaexcepcindebecubrir:Atencininmediataalaexcepcin,coninterrupcin,incluso,si

    laprioridadesalta,delainstruccinencurso.Labifurcacinaladireccincorrectadecomienzodelarutina

    deserviciodelaexcepcin. El retorno correcto a la secuencia de instrucciones

    interrumpida,unavezfinalizadalarutinadeservicio.Para conseguir estos objetivos, el procesamiento de una

    excepcinporelMC68000 transcurreenunasecuenciade pasos:

    1.ElregistroSRsecopiaenunregistrointerno.SedesactivaelmodotrazayseactivaelbitSporloqueelmicroprocesadorentra en modo supervisor. Para excepciones asociadas apeticiones de interrupcin, o aRESET, seactualizael valordelamscaradeinterrupcionesI2I0..

    SECUENCIADEPROCESAMIENTO

  • 14

    10.Procesamientodeexcepciones

    2.Sedeterminaelnmerodevectordeexcepcinporlgicainterna,si es uno de los preasignados, o a partir de una bsquedadenominada "reconocimiento de interrupcin", si se trata de unainterrupcindeusuario.Apartirdelnmerodevectorsegeneraladireccindelvectordeexcepcin.

    3. Se salvan, en la pila del supervisor (SSP), los contenidos delcontadordeprogramaPCydelregistrodeestadoSR.PrimeroseguardaPCL,seguidodePCHySR.

    4.SecargaenelregistroPCelcontenidodelvectordeexcepcin..

  • 15

    10.ProcesamientodeexcepcionesElmicroprocesadorejecuta,acontinuacin,lasinstruccionesdelarutinadeexcepcin, cuya ltima instruccin, RTE, permite recuperar de la pila SR,PCHyPCLyrestaurarlaejecucindesdeelpuntointerrumpido.

  • 16

    10.Procesamientodeexcepciones

    TIPOSDEEXCEPCIN

    Existen grupos de prioridad en las excepciones y, aunque suprocesamiento se realiza de la forma genrica descritaanteriormente, las accionesque tomaelMC68000antes de darcomienzoadichoprocesamientosonligeramentediferentesparacadaunodeestosgrupos.

  • 17

    10.Procesamientodeexcepciones

    El procesamiento de las excepciones generadas internamentesigueelesquemageneraldescritoenelapartadodesecuenciadeprocesamientodeexcepcin,salvoenelcasodeerrordedireccin.Errordedireccin(N=3)

    Se produce cuando el MC68000 intenta a acceder a unapalabraoaunapalabralargaconunadireccinimpar.

    En la pila se guardan, adems de los registros PC y SR,informacin adicional que ayude a la rutina de excepcin aidentificarlacausadelerror.

    EXCEPCIONESINTERNAS

  • 18

    10.Procesamientodeexcepciones

    Instruccinilegal(N=4)Ocurrecuandoalbuscarlaprimerapalabradeunainstruccin,

    encuentraquenocontieneningunodeloscdigosdeoperacinvlidosdesurepertoriodeinstrucciones.

    LaejecucindelainstruccinILLEGALtieneelmismoefecto.Instruccindeemulacin(N=10yN=11)

    Estos cdigos de operacin han sido reservados para extender eljuegodeinstruccionesdelMC68000medianteemulacin.

    Ocurre si los cdigos de operacin encontrados son lascombinaciones1010o1111.Paracadaunodeellossebifurcaalosvectores10u11respectivamente.

    Violacindeprivilegio(N=8)Seproducecuandoseintentaejecutarunainstruccinreservadaal

    modosupervisorconelbitS=0,esdecir,enmodousuario.

  • 19

    10.ProcesamientodeexcepcionesDivisinporcero(N=5)

    SeproducesiseintentautilizarundivisorigualaceroconlasinstruccionesDIVUoDIVS.

    Traza(N=9)Elmodotraza(pasoapaso)seactivacuandoseponea1elbitTdel

    registrodeestadoSR.Elprocesadorgeneraunaexcepcindespusdecadainstruccin.

    InstruccinTRAP(N=3247)El formatoesTRAP#numero_trap.Connumero_trap unenterode4

    bits(0al15).ElnmerodeTRAPidentificaunodelos16vectoresdeexcepcinasignadosaestainstruccin.

    Proporcionaunavaparaaccederarutinasgenricasalmacenadaslamemoria no volatil (llamadas a la BIOS) o en la implementacin depuntosderuptura.

  • 20

    10.Procesamientodeexcepciones

    InstruccinTRAPV(N=7) Situada inmediatamente despus de una instruccinaritmtica susceptible de producir desbordamiento (quepueda poner el cdigo de condicin V=1), produce unaexcepcinencasodequeseproduzcaesehecho.

    InstruccinCHK(N=6)Comparaelcontenidodeunregistroconunlmitesuperioralmacenadoenun lugarespecificado.Sielcontenidodelregistrosuperadicholmite,seproducelaexcepcin.

  • 21

    10.Procesamientodeexcepciones

    RESET(N=0y1)SedacuandoseactivaelterminaldeRESET.UnaexcepcinporRESETpersigueunfindiferentealrestodelaexcepciones,inicializarelsistema,portanto:a)No tienesentidoguardar losvaloresdelPCyelSRen lapilaporquenosedeseavolverarecuperarlos.

    b)SecargaunvalorinicialenelregistroSSP(vector0)ademsdelPC(vector1).

    c)SeinicializaelregistroSRdelaformasiguiente:1)SedesactivaelmodotrazaT=0.2)Seactivaelmodosupervisor:S=13)Seenmascarantodoslosnivelesdeprioridaddeinterrupcin:I2I0=111

    EXCEPCIONESEXTERNAS

  • 22

    10.Procesamientodeexcepciones

    ERRORDEBUS(N=2)Ocurrecuandoseactivalaentrada#BERR.Elprocesamientoes idnticoal deerrordedireccinsalvoporelvectordeinterrupcin.

    Si #BERR se activa nuevamente cuando se procesa laexcepcin de error de bus (doble error de bus) el 68000para.En tal situacin, slo unRESETpermite reanudar laejecucindeinstrucciones.

  • 23

    10.Procesamientodeexcepciones

    INTERRUPCIONES Se producenmediante la activacin de los terminales #IPL20 que

    codifican el nivel de peticin (desde nivel 0, ausencia de peticin,hastanivel7,mximaprioridadoNMI).

    Unainterrupcinseatiendesisuniveldepeticinsuperaalfijadoenlamscarade interrupcin(bits I20delregistroSR),exceptoparaelnivel7,quesiempreseatender.

    Si el MC68000 acepta una interrupcin, se desencadenan losmismosprocesosquelosdescritosparalasexcepciones,salvoqueel nmero del vector de excepcin se obtiene mediante un cicloespecialdelectura(ciclodereconocimientodeinterrupciones)yquelosbitsdemscaraseactualizanalnivelpeticionario.

    El ciclo de reconocimiento de interrupcin es un ciclo especial delecturaenelquelassalidasFC2,FC1,FC0estntodasa1,yporlosbits A3,A2,A1 del bus de direcciones se muestra el nivel deinterrupcinquelaCPUvaaprocesar.

  • 24

    10.Procesamientodeexcepciones-Apartirdeaqupuedenpasarvariascosas:

    1)Seactiva laentrada#VPAqueidentificaquela interrupcinfuesolicitada por un perifrico sncrono. En tal caso, elmicroprocesador utiliza el autovector asociado al nivel deinterrupcinactual.2) Se activa la entrada #DTACK. En este caso, el perifrico,ademsdeactivaresaseal,hacolocado,enelbusdedatosunbytequecontieneunnmerodevectordeexcepcin.Estenmerodevectordebeestarcomprendidoentre64255,constituyendolosvectoresdeexcepcindeusuario.3)Seactiva laentrada#DTACKperose recibe,comonmerodevector,el$F.Estodalugaralainterrupcinnoinicializada.4)Seactiva la entrada#BERR, o sea, no se ha recibido ningnvector de interrupcin. Esto provoca la generacin de lainterrupcin esprea, que tiene, como nmero de vector deexcepcin,el24.