Está en la página 1de 24

9.

Lenguajeensamblador
Lenguajemquina:unprogramaosecuenciade instruccionesvienedadoporunasecuenciadecdigos binarios. Lenguajeensamblador:secuencialgicadesentencias pertenecientesaalgunadelassiguientesclases: Unalneadecomentario. Unainstruccinejecutable. Unadirectivadeensamblado. Laescrituraenlenguajemquinaestediosayproclivea errores,ellenguajeensambladorfacilitalatareadela escriturasinperderlacercanaalamquina.
1

9.Lenguajeensamblador
Programaensamblador:traduceellenguajeensambladoral Programaensamblador: lenguajemquinadelaCPU

Programa fuente

ensamblador

Programa objeto lenguajemquina

lenguajeensamblador

9.Lenguajeensamblador
Elformatobsicodeunasentenciaenlenguajeensamblador es: EtiquetaOpcodeOperando(s)Comentario *Elcampoetiquetaesopcional *Opcodecontieneelmnemnicodelainstruccinola directivadeensamblador. *Operando(s),sonlosoperandos(1o2oninguno)dela instruccinodirectiva.Cuandohay2omsoperandos, estosseseparanporcomas. *Deformaopcional,elltimocampoeselcomentario.
3

9.Lenguajeensamblador
Directivas: son rdenes para el ensamblador y no tienen traduccinacdigomquina.Utilizaremos: ORG: Inicializaelcontadordeprogramaconelvalordeloperando. SinoseutilizaunadirectivaORG,seasumequeelPCvale 0. - Sintaxis: ORG valor - Ejemplo: ORG $400
4

9.Lenguajeensamblador

- EQU:

Asignaalsmbolocontenidoenelcampoetiquetaelvalordela expresinenelcampooperando. - Sintaxis: etiqueta EQU valor - Ejemplo: PI EQU 3.1416

9.Lenguajeensamblador
DC: Define constantes en memoria. Permite asignar valores numricos, tablas, caracteres o cadenas a variables de memoria. - 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

9.Lenguajeensamblador
Sintaxis:ETIQUETADC.tconst1,const2,..... Ejemplos:

9.Lenguajeensamblador
DS:

Seutilizaparareservarposicionesdememoria. Aadiendo.B, .Wo .L seindicaeltamaodecada elementoreservado.Sinoseindicanada,seasume tamaoW. Sintaxis:ETIQUETADS.tvalor Ejemplo: DS.B 256Reserva256bytesconsecutivosde memoria DS.L1Reservaunapalabralarga HolaDS2Reservadospalabrasapartirdela direccinasignadaporelensambladoraHola
8

10.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.Procesamientodeexcepciones
Clasificacin

10

10.Procesamientodeexcepciones

Cada excepcin tiene asociada un vector de excepcin almacenadoenunaposicinconcretadelamemoria. Un vector de excepcin es una direccin de memoria (puntero, doble palabra). Dicha direccin hace referencia a la posicin de memoria que ocupa la primera instruccin de la rutina de excepcin. Existenuntotalde 255 vectoresdeexcepcinalmacenadosenla tabladevectoresdeexcepcin situadaapartirdeladireccin $000000delaRAMyconuntamaototalde1Kbytes. Cada vector de excepcin de la tabla es identificado por el nmerodevectordeexcepcin,N (Nvarade0a255,byte).A partir de este N, el microprocesador determina la direccin de la RAM donde se encuentra el vector de excepcin realizando la operacin4*N. Los 64 primeros vectores estn preasignados (aunque pueden sobreescribirse),losrestantesquedanlibresparsuutilizacin. 11

10.Procesamientodeexcepciones
TABLADEVECTORESDEEXCEPCIN

12

10.Procesamientodeexcepciones
SECUENCIADEPROCESAMIENTO 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 excepcin por el MC68000 transcurre en una secuencia de pasos: 1.ElregistroSRsecopiaenunregistrointerno.Sedesactivael modotrazayseactivaelbitSporloqueelmicroprocesador entra en modo supervisor. Para excepciones asociadas a peticiones de interrupcin, o a RESET, se actualiza el valor delamscaradeinterrupcionesI2I0..

13

10.Procesamientodeexcepciones
2.Sedeterminaelnmerodevectordeexcepcinporlgicainterna, si es uno de los preasignados, o a partir de una bsqueda denominada "reconocimiento de interrupcin", si se trata de una interrupcindeusuario.Apartirdelnmerodevectorsegenerala direccindelvectordeexcepcin. 3. Se salvan, en la pila del supervisor (SSP), los contenidos del contadordeprogramaPCydelregistrodeestadoSR.Primerose guardaPCL,seguidodePCHySR.

4.SecargaenelregistroPCelcontenidodelvectordeexcepcin..
14

10.Procesamientodeexcepciones
Elmicroprocesadorejecuta,acontinuacin,lasinstruccionesdelarutinade excepcin, cuya ltima instruccin, RTE, permite recuperar de la pila SR, PCHyPCLyrestaurarlaejecucindesdeelpuntointerrumpido.

15

10.Procesamientodeexcepciones
TIPOSDEEXCEPCIN
Existen grupos de prioridad en las excepciones y, aunque su procesamiento se realiza de la forma genrica descrita anteriormente, las acciones que toma el MC68000 antes de dar comienzoadichoprocesamientosonligeramentediferentespara cadaunodeestosgrupos.

16

10.Procesamientodeexcepciones
EXCEPCIONESINTERNAS El procesamiento de las excepciones generadas internamente sigue el esquema general descritoenelapartadode secuenciade procesamientodeexcepcin,salvoenelcasodeerrordedireccin. Errordedireccin(N=3) Se produce cuando el MC68000 intenta a acceder a una palabraoaunapalabralargaconunadireccinimpar. En la pila se guardan, adems de los registros PC y SR, informacin adicional que ayude a la rutina de excepcin a identificarlacausadelerror.

17

10.Procesamientodeexcepciones
Instruccinilegal(N=4) Ocurrecuandoalbuscarlaprimerapalabradeunainstruccin, encuentraquenocontieneningunodeloscdigosdeoperacin vlidosdesurepertoriodeinstrucciones. LaejecucindelainstruccinILLEGALtieneelmismoefecto. Instruccindeemulacin(N=10yN=11) Estos cdigos de operacin han sido reservados para extender el juegodeinstruccionesdelMC68000medianteemulacin. Ocurre si los cdigos de operacin encontrados son las combinaciones1010o1111.Paracadaunodeellossebifurcaalos vectores10u11respectivamente. Violacindeprivilegio(N=8) Seproducecuandoseintentaejecutarunainstruccinreservadaal modosupervisorconelbitS=0,esdecir,enmodousuario.
18

10.Procesamientodeexcepciones
Divisinporcero(N=5) Seproducesiseintentautilizarundivisorigualaceroconlas instruccionesDIVUoDIVS. Traza(N=9) Elmodotraza(pasoapaso)seactivacuandoseponea1elbitTdel registrodeestadoSR. Elprocesadorgeneraunaexcepcindespusdecadainstruccin. InstruccinTRAP(N=3247) El formato es TRAP #numero_trap. Con numero_trap un entero de 4 bits(0al15).ElnmerodeTRAPidentificaunodelos16vectoresde excepcinasignadosaestainstruccin. Proporcionaunavaparaaccederarutinasgenricasalmacenadasla memoria no volatil (llamadas a la BIOS) o en la implementacin de puntosderuptura.

19

10.Procesamientodeexcepciones

InstruccinTRAPV(N=7) Situada inmediatamente despus de una instruccin aritmtica susceptible de producir desbordamiento (que pueda poner el cdigo de condicin V=1), produce una excepcinencasodequeseproduzcaesehecho. InstruccinCHK(N=6) Comparaelcontenidodeunregistroconunlmitesuperior almacenado en un lugar especificado. Si el contenido del registrosuperadicholmite,seproducelaexcepcin.

20

10.Procesamientodeexcepciones
EXCEPCIONESEXTERNAS
RESET(N=0y1) SedacuandoseactivaelterminaldeRESET. UnaexcepcinporRESETpersigueunfindiferentealrestodela excepciones,inicializarelsistema,portanto: a) No tiene sentido guardar los valores del PC y el SR en la pilaporquenosedeseavolverarecuperarlos. b)SecargaunvalorinicialenelregistroSSP(vector0) ademsdelPC(vector1). c)SeinicializaelregistroSRdelaformasiguiente: 1)SedesactivaelmodotrazaT=0. 2)Seactivaelmodosupervisor:S=1 3)Seenmascarantodoslosnivelesdeprioridadde interrupcin:I2I0=111
21

10.Procesamientodeexcepciones

ERRORDEBUS(N=2) Ocurrecuandoseactivalaentrada#BERR. El procesamiento es idntico al de error de direccin salvo porelvectordeinterrupcin. Si #BERR se activa nuevamente cuando se procesa la excepcin de error de bus (doble error de bus) el 68000 para. En tal situacin, slo un RESET permite reanudar la ejecucindeinstrucciones.

22

10.Procesamientodeexcepciones
INTERRUPCIONES Se producen mediante la activacin de los terminales #IPL20 que codifican el nivel de peticin (desde nivel 0, ausencia de peticin, hastanivel7,mximaprioridadoNMI). Unainterrupcinseatiendesisuniveldepeticinsuperaalfijadoen lamscaradeinterrupcin(bitsI20delregistroSR),exceptopara elnivel7,quesiempreseatender. Si el MC68000 acepta una interrupcin, se desencadenan los mismosprocesosquelosdescritosparalasexcepciones,salvoque el nmero del vector de excepcin se obtiene mediante un ciclo especialdelectura(ciclodereconocimientodeinterrupciones)y quelosbitsdemscaraseactualizanalnivelpeticionario. El ciclo de reconocimiento de interrupcin es un ciclo especial de lecturaenelquelassalidasFC2,FC1,FC0estntodasa1,yporlos bits A3,A2,A1 del bus de direcciones se muestra el nivel de interrupcinquelaCPUvaaprocesar.
23

10.Procesamientodeexcepciones
-Apartirdeaqupuedenpasarvariascosas: 1)Seactivalaentrada#VPAqueidentificaquelainterrupcinfue solicitada por un perifrico sncrono. En tal caso, el microprocesador utiliza el autovector asociado al nivel de interrupcinactual. 2) Se activa la entrada #DTACK. En este caso, el perifrico, adems de activar esa seal, ha colocado, en el bus de datos un bytequecontieneunnmerodevectordeexcepcin.Estenmero devectordebeestarcomprendidoentre64255,constituyendolos vectoresdeexcepcindeusuario. 3) Se activa la entrada #DTACK pero se recibe, como nmero de vector,el$F.Estodalugaralainterrupcinnoinicializada. 4) Se activa la entrada #BERR, o sea, no se ha recibido ningn vector de interrupcin. Esto provoca la generacin de la interrupcin esprea, que tiene, como nmero de vector de 24 excepcin,el24.

También podría gustarte