lenguaje ensamblador
Post on 26-Nov-2015
16 Views
Preview:
TRANSCRIPT
-
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.
top related