Академический Документы
Профессиональный Документы
Культура Документы
Programacindesistemas.
MODULO1.ESTRUCTURADELACOMPUTADORA
Introduccin:Esteeselprimercursodesoftwaredesistemasenelqueseconocernlosprincipios
bsicos de una computadora para conocer como se deben de disear los programas que
controlarnyrecibirndatosenunsistemadecomputocuyoobjetivoesprocesarinformacin,de
estecursosedesprendenlossistemasoperativosdeunacomputadora,parapoderlograrestoes
necesario primero conocer como esta formada una computadora, se mostraran las dos
arquitecturasdecomputadorasqueexisten,comosonelmodelodeVonNewmannyHarvard,el
proceso de ejecucin de programas y as como las diversas modalidades y mecanismos de
ensamblado,cargayMacroprocesamiento.
Durante el curso se utilizara como elemento de estudio el Microcontrolador MC68HC12 de
FREESCALEparaelcualseanalizarasumodelodeprogramacin,considerandoquesiseconoceun
Microcontroladorsermssencilloemigraracualquierotro.
1.1ArquitecturadevonNewmann.
Laarquitecturadecomputadoraseseldiseoconceptualylaestructuraoperacionalfundamental
de un sistema de computadora. Es decir, es un modelo y una descripcin funcional de los
requerimientos y las implementaciones de diseo para varias partes de una computadora, con
especial inters en la forma en que la unidad central de proceso (CPU) trabaja internamente y
accedealasdireccionesdememoria.
Tambinsueledefinirsecomolaformadeseleccionareinterconectarcomponentesdehardware
paracrearcomputadorassegnlosrequerimientosdefuncionalidad,rendimientoycosto.
En la actualidad existen dos arquitecturas de computadoras bsicas ampliamente utilizadas, la
arquitecturadeVonNewmannylaarquitecturadeHarvard.
LaarquitecturadevonNeumannesunafamiliadearquitecturasdecomputadorasqueutilizanel
mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a
diferenciadelaarquitecturaHarvard).
Lamayoradecomputadorasmodernasestnbasadasenestaarquitectura,aunquepuedenincluir
otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos
externoscomoratn,teclado,etc).
Losordenadoresconestaarquitecturaconstandecincopartes:LaunidadaritmticolgicaoALU,
la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que
proporcionaunmediodetransportedelosdatosentrelasdistintaspartes.
Pg.1de29
ElbloquequecontienelosREGISTROS,laALUylaUNIDADDECONTROLenrealidadrepresentaa
todoelCPU.Lamemoriatienedosreasprincipalesladedatos;endondesealmacenarantodas
lasvariablesquerequieranlosprogramasyladecdigoendondesealmacenaelprogramaque
ejecutaralacomputadoraensi.
EltrminoArquitecturaHarvardoriginalmentesereferaalasarquitecturasdecomputadorasque
utilizabandispositivosdealmacenamientofsicamenteseparadosparalasinstruccionesyparalos
datos(enoposicinalaArquitecturadevonNeumann).Eltrminoprovienedelacomputadora
Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en
interruptores.
Todaslascomputadorasconstanprincipalmentededospartes,laCPUqueprocesalosdatos,yla
memoria que guarda los datos. Cuando hablamos de memoria manejamos dos parmetros, los
datos en s, y el lugar donde se encuentran almacenados (o direccin). Los dos son importantes
paralaCPU,puesmuchasinstruccionesfrecuentessetraducenaalgoascomo"Tomalosdatosde
stadireccinyadelosalosdatosdestaotradireccin",sinsaberenrealidadquesloque
contienenlosdatos.
En los ltimos aos la velocidad de las CPUs ha aumentado mucho en comparacin a la de las
memorias con las que trabaja, as que se debe poner mucha atencin en reducir el nmero de
veces que se accede a ella para mantener el rendimiento. Si, por ejemplo, cada instruccin
ejecutadaenlaCPUrequiereunaccesoalamemoria,nosegananadaincrementandolavelocidad
delaCPUesteproblemaesconocidocomo'limitacindememoria'.
Se puede fabricar memoria mucho ms rpida, pero a costa de un precio muy alto. La solucin,
portanto,esproporcionarunapequeacantidaddememoriamuyrpidaconocidaconelnombre
de cach. Mientras los datos que necesita el procesador estn en la cach, el rendimiento ser
mucho mayor que si la cach tiene que obtener primero los datos de la memoria principal. La
optimizacindelacachesuntemamuyimportantedecaraaldiseodecomputadoras.
Pg.2de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
La arquitectura Harvard ofrece una solucin particular a este problema. Las instrucciones y los
datos se almacenan en cachs separadas para mejorar el rendimiento. Por otro lado, tiene el
inconvenientedetenerquedividirlacantidaddecachentrelosdos,porloquefuncionamejor
slocuandolafrecuencia delecturadeinstruccionesydedatos esaproximadamentelamisma.
EstaarquitecturasueleutilizarseenDSPs,oprocesadordesealdigital,usadoshabitualmenteen
productosparaprocesamientodeaudioyvideo.
1.1.1ConceptodeCPU
Launidadcentraldeprocesamiento,oCPU(porelacrnimoeninglsCentralProcessingUnit),o,
simplemente, el procesador, es el componente en una computadora digital que interpreta las
instrucciones y procesa los datos contenidos en los programas de la computadora. Las CPU
proporcionan la caracterstica fundamental de la computadora digital (la programabilidad) y son
unodeloscomponentesnecesariosencontradosenlascomputadorasdecualquiertiempo,junto
con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como
microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los
aos1970,losmicroprocesadoresdeunsolochiphanreemplazadocasitotalmentetodoslostipos
deCPU,yhoyenda,eltrmino"CPU"esaplicadousualmenteatodoslosmicroprocesadores.
Laexpresin"unidadcentraldeproceso"es,entrminosgenerales,unadescripcindeunacierta
clase de mquinas de lgica que pueden ejecutar complejos programas de computadora. Esta
amplia definicin puede fcilmente ser aplicada a muchos de los primeros ordenadores que
existieronmuchoantesqueeltrmino"CPU"estuvieraenampliouso.Sinembargo,eltrminoen
smismoysuacrnimohanestadoenusoenlaindustriadelainformticaporlomenosdesdeel
principio de los aos 1960. La forma, el diseo y la implementacin de las CPU ha cambiado
drsticamente desde los primeros ejemplos, pero su operacin fundamental ha permanecido
bastantesimilar.
Las primeras CPU fueron diseadas a la medida como parte de una computadora ms grande,
generalmente una computadora nica en su especie. Sin embargo, este costoso mtodo de
disearlosCPUalamedida,paraunaaplicacinparticular,hadesaparecidoengranparteyseha
sustituido por el desarrollo de clases de procesadores baratos y estandarizados adaptados para
unoomuchospropsitos.Estatendenciadeestandarizacincomenzgeneralmenteenlaerade
los transistores discretos, computadoras centrales, y microcomputadoras, y fue acelerada
rpidamente con la popularizacin del circuito integrado (IC), ste ha permitido que sean
diseados y fabricados CPU ms complejos en espacios pequeos (en la orden de milmetros).
TantolaminiaturizacincomolaestandarizacindelosCPUhanaumentadolapresenciadeestos
dispositivosdigitalesenlavidamodernamuchomsalldelasaplicacioneslimitadasdemquinas
de computacin dedicadas. Los microprocesadores modernos aparecen en todo, desde
automviles, televisores, neveras, calculadoras, aviones, hasta telfonos mviles o celulares,
juguetes,entreotros.
1.1.2ConceptodeMEMORIA
La memoria de un ordenador se puede definir como los circuitos que permiten almacenar y
recuperarlainformacin.Enunsentidomsamplio,puedereferirsetambinasistemasexternos
dealmacenamiento,comolasunidadesdediscoodecinta.
Hoy en da se requiere cada vez ms memoria para poder utilizar complejos programas y para
gestionarcomplejasredesdecomputadores.
Pg.3de29
Elementosquelacomponen
Una memoria vista desde el exterior, tiene la estructura mostrada en la figura de arriba. Para
efectuar una lectura se deposita en el bus de direcciones la direccin de la palabra de memoria
quesedesealeeryentoncesseactivalasealdelectura(R);despusdeciertotiempo(tiempode
latencia delamemoria),enelbusdedatosaparecerelcontenidodeladireccin buscada.Por
otraparte,pararealizarunaescriturasedepositaenelbusdedatoslainformacinquesedesea
escribir y en el bus de direcciones la direccin donde deseamos escribirla, entonces se activa la
seal de escritura (W), pasado el tiempo de latencia, la memoria escribir la informacin en la
direccin deseada. Internamente la memoria tiene un registro de direccin (MAR, memory
addressregister),unregistrobufferdememoriaoregistrodedatos(MB,memorybuffer,oMDR,
memory data register) y, un decodificador como se ve en la figura de abajo. Esta forma de
estructurarlamemoriasellamaorganizacinlinealodeunadimensin.Enlafiguracadalneade
palabraactivatodaslasclulasdememoriaquecorrespondenalamismapalabra.
Pg.4de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
Comoveamosenlasarquitecturasdecomputadoraspodemosclasificarlasmemoriasdeacuerdo
a su uso dentro de la computadora en memoria de programa y memoria de datos, esta
clasificacin es muy importante en la arquitectura de Harvard ya que esta usa lneas exclusivas
paracadaunadeestasmemorias,enlaarquitecturadeVONNEWMANNestaseparacinnoestan
evidenteyaqueelCPUnodiferenciaentreunamemoriayotra.Sinembargo,enunordenadorhay
unajerarquadememoriasatendiendoaltiempodeaccesoyalacapacidadquenormalmenteson
factorescontrapuestosporrazoneseconmicasyenmuchoscasostambinfsicas.Comenzando
desdeelprocesadoralexterior,esdecirenordencrecientedetiempodeaccesoycapacidad,se
puedeestablecerlasiguientejerarqua:
Registros de procesador: Estos registros interaccionan continuamente con la CPU (porque
forman parte de ella). Los registros tienen un tiempo de acceso muy pequeo y una capacidad
mnima,normalmenteigualalapalabradelprocesador(1a8bytes).
Registrosintermedios:Constituyenunpasointermedioentreelprocesadorylamemoria,tienen
untiempodeaccesomuybreveymuypocacapacidad.
Memoriascach:Sonmemoriasdepequeacapacidad.Normalmenteunapequeafraccinde
lamemoriaprincipalypequeotiempodeacceso.EsteniveldememoriasecolocaentrelaCPUy
lamemoriacentral.Hacealgunosaosesteniveleraexclusivodelosordenadoresgrandespero
Pg.5de29
actualmentetodoslosordenadoresloincorporan.Dentrodelamemoriacachpuedehaber,asu
vez, dos niveles denominados cach on chip, memoria cach dentro del circuito integrado, y
cachonboard,memoriacachenlaplacadecircuitoimpresoperofueradelcircuitointegrado,
evidentemente,porrazonesfsicas,laprimeraesmuchomsrpidaquelasegunda.
En el caso de la Arquitectura Harvard Las instrucciones y los datos se almacenan en cachs
separadasparamejorarelrendimiento.Porotrolado,tieneelinconvenientedetenerquedividir
lacantidaddecachentrelosdos,porloquefuncionamejorslocuandolafrecuenciadelectura
deinstruccionesydedatosesaproximadamentelamisma.
Memoriacentraloprincipal:Enestenivelresidenlosprogramasylosdatos.LaCPUleeyescribe
datosenlaunqueconmenosfrecuenciaqueenlosnivelesanteriores.Tieneuntiempodeacceso
relativamente rpido y gran capacidad. He aqu uno de los inconvenientes de la arquitectura de
Harvard,enellaestamemoriaprincipaltambinsedividirenmemoriadeprogramaymemoria
dedatos.
Extensionesdememoriacentral:Sonmemoriasdelamismanaturalezaquelamemoriacentral
queamplansucapacidaddeformamodular.Eltiempodesimilar,alosumounpocomayor,alde
lamemoriacentralysucapacidadpuedeseralgunasvecesmayor.EnlemodelodeHarvard,esta
extensinsolosepuedehacerenmemoriadedatos.
Memorias de masas o auxiliares: Son memorias que residen en dispositivos externos al
ordenador,enellassearchivanprogramasydatosparasuusoposterior.Tambinseusanestas
memorias para apoyo de la memoria central en caso de que sta sea insuficiente (memoria
virtual). Estas memorias suelen tener gran capacidad pero pueden llegar a tener un tiempo de
accesomuylento.Dentrodeellastambinsepuedenestablecervariosnivelesdejerarqua.
Clasificacindememoriassemiconductorasdeaccesoaleatorio
Lasmemoriasseclasifican,porlatecnologaempleaday,ademssegnlaformaenquesepuede
modificarsucontenido,Aesterespecto,lasmemoriasseclasificanendosgrandesgrupos:
1)MemoriasRAM:Sonmemoriasenlasquesepuedeleeryescribir,sibiensunombre(Random
accessmemory)norepresentacorrectamenteestehecho.Porsutecnologapuedenserdeferritas
(yaendesuso)oelectrnicas.Dentrodestasltimashaymemoriasestticas(SRAM,staticRAM),
cuyacluladememoriaestbasadaenunbiestable,ymemoriasdinmicas(DRAM,dinamicRAM,
enlasquelacluladememoriaesunpequeocondensadorcuyacargarepresentalainformacin
almacenada. Las memorias dinmicas necesitan circuitos adicionales de refresco ya que los
condensadorestienenmuypocacapacidady,atravsdelasfugas,lainformacinpuedeperderse,
porotraparte,sondelecturadestructiva.
2)MemoriasROM(Read0nlyMemory):Sonmemoriasenlasqueslosepuedeleer.Puedenser:
a)ROMprogramadaspormscara,cuyainformacinsegrabaenfbricaynosepuedemodificar.
Pg.6de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
b)PROM,oROMprogramableunasolavez.
c) EPROM (erasable PROM) o RPROM (reprogramable ROM), cuyo contenido puede borrarse
medianterayosultravioletaspararegrabarlas.
d) EAROM (electrically alterable ROM) o EEROM (electrically erasable ROM), que son memorias
queestenlafronteraentrelasRAMylasROMyaquesucontenidopuederegrabarsepormedios
elctricos, estas se diferencian de las RAM en que no son voltiles. En ocasiones a este tipo de
memoriastambinselasdenominaNYRAM(novoltilRAM).
e) Memoria FLASH, denominada as por la velocidad con la que puede reprogramarse, utilizan
tecnologa de borrado elctrico al igual que las EEPROM. Las memorias flash pueden borrare
enterasenunoscuantossegundos,muchomsrpidoquelasEPROM.
BsicamentelasmemoriasROMsebasanenunamatrizdediodoscuyauninsepuededestruir
aplicandosobreellaunasobretensin(usualmentecomprendidaente12.5y40v.).Defbricala
memoria sale con 1's en todas sus posiciones, para grabarla se rompen las uniones en que se
quieranponer0's.Estaformaderealizarlagrabacinsedenominatcnicadelosfusibles.
1.1.3ConceptodeBUS
En Arquitectura de computadoras, el bus es un sistema digital que transfiere datos entre los
componentesdeuncomputadoroentrecomputadores.Estnformadosporcablesopistasenun
circuitoimpreso,dispositivoscomoresistenciasycondensadoresademsdecircuitosintegrados.
LafuncindelBusesladepermitirlaconexinlgicaentredistintossubsistemasdeunsistema
digital, enviando datos entre dispositivos de distintos rdenes: desde dentro de los mismos
circuitosintegrados,hastaequiposdigitalescompletosqueformanpartedesupercomputadoras.
La mayora buses estn basados en conductores metlicos por los cuales se trasmiten seales
elctricasquesonenviadasyrecibidasconlaayudadeintegradosqueposeenunainterfazdelbus
dadoyseencargandemanejarlassealesyentregarlascomodatostiles.Lassealesdigitales
quesetrasmitensondedatos,dedireccionesosealesdecontrol.
Los buses definen su capacidad de acuerdo a la frecuencia mxima de envi y al ancho de los
datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta
frecuencia, el ancho de datos debe ser pequeo. Esto se debe a que la interferencia entre las
seales(crosstalk)yladificultaddesincronizarlas,crecenconlafrecuencia,demaneraqueunbus
conpocassealesesmenossusceptibleaesosproblemasypuedefuncionaraaltavelocidad.
Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA
quepermitenqueundispositivoperifricoaccedaaunaCPUoalamemoriausandoelmnimode
recursos.
Hay3clasesdebuses:
Pg.7de29
bus de datos, por el que circulan, como el nombre indica, los datos que se transfieren
entre los diferentes dispositivos de entrada, salida y almacenamiento, gobernadas por
otrosdispositivoscomoloscontroladoresPCI.
y bus de control, Gobierna el uso y acceso a las lneas de datos y de direcciones. Como
estas lneas estn compartidas por todos los componentes tiene que proveerse de
determinadosmecanismosquecontrolensuutilizacin.Lassealesdecontroltransmiten
tantordenescomoinformacindetemporizacinentrelosmdulosdelsistema.
1.2Estructuralgicadelprocesador
La operacin fundamental de la mayora de los CPU, es ejecutar una secuencia de instrucciones
almacenadasllamadas"programa".Elprogramaesrepresentadoporunaseriedenmerosquese
mantienen enuna cierta clasede memoriade computador.Haycuatropasosquecasi todoslos
CPU de EckertMauchly usan en su operacin: fetch, decode, execute, y writeback, (leer,
decodificar,ejecutar,yescribir).
DiagramamostrandocomoesdecodificadaunainstruccindelMIPS32.(MIPSTechnologies2005)
El primer paso, leer (fetch), implica el recuperar una instruccin, (que es representada por un
nmeroounasecuenciadenmeros),delamemoriadeprograma.Lalocalizacinenlamemoria
delprogramaesdeterminadaporuncontadordeprograma(PC),quealmacenaunnmeroque
identificalaposicinactualenelprograma.Enotraspalabras,elcontadordeprogramaindicaal
CPU,ellugardelainstruccinenelprogramaactual.Despusdequeseleeunainstruccin,elPC
esincrementadoporlalongituddelapalabradeinstruccinentrminosdeunidadesdememoria.
Pg.8de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
Frecuentementelainstruccinaserledadebeser recuperadadememoriarelativamentelenta,
haciendo detener al CPU mientras espera que la instruccin sea retornada. Este problema es
tratadoenprocesadoresmodernosengranparteporloscachsylasarquitecturaspipeline.
La instruccin que el CPU lee desde la memoria es usada para determinar qu deber hacer el
CPU.Enelpasodedecodificacin,lainstruccinesdivididaenpartesquetienensignificadopara
otrasporcionesdelCPU.Lamaneraenqueelvalordelainstruccinnumricaesinterpretadoest
definidaporlaarquitecturadelconjuntodeinstrucciones(elISA)delCPU.Amenudo,ungrupode
nmerosenlainstruccin,llamadoopcode,indicaquoperacinrealizar.Laspartesrestantesdel
nmerousualmenteproporcionaninformacinrequeridaparaesainstruccin,comoporejemplo,
operandos para una operacin de adicin. Tales operandos se pueden dar como un valor
constante (llamado valor inmediato), o como un lugar para localizar un valor, que segn lo
determinadoporalgnmododedireccin,puedeserunregistroounadireccindememoria.En
diseos ms viejos las porciones del CPU responsables de decodificar la instruccin eran
dispositivos de hardware fijos. Sin embargo, en CPUs e ISAs ms abstractos y complicados, es
frecuentementeusadounmicroprogramaparaasistirentraducirinstruccionesenvariasseales
de configuracin para el CPU. Este microprograma es a veces re escribible de tal manera que
puede ser modificado para cambiar la manera en que el CPU decodifica instrucciones incluso
despusdequehayasidofabricado.
DiagramadebloquesdeunCPUsimple
Despusdelospasosdelecturaydecodificacin,esllevadoacaboelpasodelaejecucindela
instruccin.Duranteestepaso,variasporcionesdelCPUsonconectadasdetalmaneraqueellas
puedenrealizarlaoperacindeseada.Si,porejemplo,unaoperacindeadicinfuesolicitada,una
unidadaritmticolgica(ALU)serconectadaaunconjuntodeentradasyunconjuntodesalidas.
Lasentradasproporcionanlosnmerosasersumados,ylassalidascontendrnlasumafinal.El
ALUcontienelacircuiterapararealizaroperacionessimplesdearitmticaylgicaenlasentradas,
Pg.9de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
Programarenlenguajeensambladorllevamuchotiempo.
Los programas hechos en lenguaje ensamblador son generalmente ms rpidos. Al programar
cuidadosamente en lenguaje ensamblador se pueden crear programas de 5 a 100 veces ms
rpidosqueconlenguajesdealtonivel.
Los programas hechos en lenguaje ensamblador generalmente ocupan menos espacio. Un buen
programaenlenguajeensambladorpuedeocuparcasilamitaddeespacioquesucontrapartidaen
lenguajedealtonivel.
Con el lenguaje ensamblador se pueden crear segmentos de cdigo imposibles de formar en un
lenguajedealtonivel.
Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que
corresponden al flujo de rdenes ejecutables que pueden ser cargadas en la memoria de una
computadora. Por ejemplo, un microcontrolador hc12 puede ejecutar la siguiente instruccin
binariacomoseexpresaencdigodemquina:
Binario:1000011001100001(Hexadecimal:0x8661)
Larepresentacinequivalenteenlenguajeensambladoresmsfcilderecordar:
ldaa#$61
Estainstruccinsignifica:
Asignaelvalorhexadecimal61(97decimal)alregistro"A".
esencialmentelasmismasfunciones,laformaenquelohacendifiereylosrespectivoslenguajes
ensambladorreflejantaldiferencia.
Pueden existir mltiples conjuntos de mnemnicos o sintaxis de lenguaje ensamblador para un
mismoconjuntodeinstrucciones,instanciadostpicamenteendiferentesprogramasensamblador.
En estos casos, la alternativa ms popular es la provista por los fabricantes, y usada en los
manualesdelprograma.
El cdigo mquina, o lenguaje de mquina, est formado por instrucciones sencillas, que
dependiendodelaestructuradelprocesadorpuedenespecificar:
Posicionesdememoriaespecficas(offset).
Modosdedireccionamientousadosparainterpretaroperandos.
Lasoperacionesmscomplejasserealizancombinandoestasinstruccionessencillas,quepueden
serejecutadassecuencialmenteomedianteinstruccionesdecontroldeflujo.
Lasoperacionesdisponiblesenlamayoradelosconjuntosdeinstruccionesincluye:
mover
o
llenarunregistroconunvalorconstante
moverdatosdeunaposicindememoriaaunregistrooviceversa
escribiryleerdatosdedispositivos
computar
o
realizaroperacionesbinarias,incluyendooperacioneslgicas(AND/OR/XOR/NOT)
compararvaloresentreregistros(mayor,menor,igual)
afectarelflujodelprograma
o
saltaraotraposicinenelprogramayejecutarinstruccionesall
saltarsisecumplenciertascondiciones(IF)
saltaraotraposicin,peroguardarelpuntodesalidapararetornar(CALL,llamada
asubrutinas)
Pg.12de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
Algunas computadoras incluyen instrucciones complejas dentro de sus capacidades. Una sola
instruccincomplejahacelomismoqueenotrascomputadoraspuederequerirunalargaseriede
instrucciones,porejemplo:
salvarvariosregistrosenlapiladeunasolavez
movergrandesbloquesdememoria
operacionesaritmticascomplejasodepuntoflotante(seno,coseno,razcuadrada)
Elniveldelenguajeensambladortieneaspectosimportantesdelosnivelesdemicroarquitectura,
en los cuales se encuentra (ISA y sistema operativo) estos dos se utilizan para la traduccin en
lugar de la interpretacin. Algunas caractersticas del lenguaje se describen a continuacin Los
programas que sirven para traducir algn programa para el usuario se llama traductores, el
lenguajeenqueestaescritoelprogramaoriginalsellamalenguajefuente,ellenguajeoriginalque
seamodificadosellamalenguajeobjeto.
Seusalatraduccincuandosecuentaconunprocesador(yaseahardwareouninterprete)parael
lenguaje objeto pero no para el lenguaje fuente, Si la traduccin se realiza correctamente, la
ejecucin del programa traducido dar exactamente los mismos resultados que habra dado la
ejecucin del programa fuente. Hay dos diferencias entre traduccin e interpretacin, en la
traduccinnoseejecutadirectamenteelprogramaoriginal,enellenguajefuenteseconvierteen
unprogramaequivalentellamadoprogramaobjetooprogramabinarioejecutableyestefunciona
solocuandosehaacabadolatraduccin.
El cdigo mquina, un simple patrn de bits, es hecho legible reemplazando valores crudos por
smbolos denominados mnemnicos. Se invent para facilitar la tarea de los primeros
programadores que hasta ese momento tenan que escribir directamente en cdigo binario.
Inicialmenteelcdigodecerosyunos(elprograma)debaintroducirseenunatarjetaperforada.
La posicin ocupada por cada punto equivala a un "1" o a un "0" segn hubiera o no una
perforacin.Locualsuponaunaformacasiidnticaenlaquehoyseescribenlosdatosbinarosen
soportestalescomolosCDsyDVDs.
Mientrasqueunacomputadorareconocelainstruccindemquina8661H
1000011001100001
para los programadores de microprocesadores HC12 es mucho ms fcil reconocer dicha
instruccinempleandolenguajeensamblador:
ldaa#$61
Cadainstruccindelamquinasetransformaenunanicainstruccinencdigosimblico.
Pg.13de29
Peroadems,paramejorarlalegibilidaddelprograma,elcdigosimblicointroduceinstrucciones
adicionales, que no corresponden a ninguna instruccin de la mquina y que proporcionan
informacin.Sellaman"pseudoinstrucciones".
Elcdigosimblicopuedeparecerdedifcilacceso,peroesmsfcilderecordareinterpretarque
elbinariooelhexadecimal.
Los lenguajes simblicos no resuelven definitivamente el problema de cmo programar un
ordenador de la manera ms sencilla posible. Para utilizarlos, hay que conocer a fondo el
microprocesador,losregistrosdetrabajodequedispone,laestructuradelamemoria,ymuchas
cosasms.
Adems, el lenguaje ensamblador est muy ligado al microprocesador para que sea posible
escribirprogramasindependientesdelamquinaenquevanaejecutarse.
Este cdigo simblico no puede ser ejecutado directamente por un ordenador, por lo que es
preciso traducirlo previamente. Pero la traduccin es un proceso mecnico y repetitivo, que se
prestaasurealizacinporunprogramadeordenador.
Los programas que traducen cdigo simblico al lenguaje de mquina se llaman ensambladores
("assembler", en ingls), porque son capaces de ensamblar el programa traducido a partir de
variaspiezas,procedimientososubrutinasacdigobinario("1"y"0")queentiendeelprocesador.
1.4Conjuntoderegistrosymodelodeprogramacin.
Un modelo de programacin provee un marco abstracto en el que entender la sintaxis de los
lenguajes concretos que siguen el modelo, y representa la semntica del mismo, as como una
filosofadeusodedichasemntica.
Como ya se menciono anteriormente, el lenguaje ensamblador es especfico para cada
microprocesador o Microcontrolador, nosotros estudiaremos el modelo de programacin del
CPU12deFREESCALE.Sumodelodeprogramacinincluyelosregistrosinternosquepermitenla
manipulacindedatos,elconjuntoderegistros,losmodosdedireccionamientoyelconjuntode
instrucciones.
1.4.1Conceptosdemodelodeprogramacin
EsunaCPUdealtavelocidadde16bits.SumodelodeprogramacinesidnticoaldelMC68HC11.
Surepertoriodeinstruccionesenunsuperconjuntodelde68HC11
Registros
Losregistrosdisponiblessonlossiguientes:
Pg.14de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
AcumuladoresA,ByD
LosacumuladoresAyBsonregistrosgeneralesde8bits
Salvo en contadas instrucciones, son equivalentes. La suma (ABA), resta (SBA) y comparacin
(CBA)entreellossloesenunadireccin.ElajusteaBCD(DAA)sloesposibleenelacumulador
A.
UnidosformanelacumuladorD=A:B
RegistrosndicesXeY
Registrosde16bitsusadosparalosnumerososdireccionamientosindexados.
Punterodepila(SP)
Registrode16bitsquepermitemantenerunapiladelsistemaqueseactualizaautomticamente
almeterysacardatos.
Crece hacia abajo en memoria (RAM). SP en cada momento contienen la direccin del primer B
librepordebajodelacabeza.
DebehacerseapuntaramemoriaRAMaliniciarseelsistema.
Se utiliza para: llamadas a subrutinas, guardar estado en interrupciones, salvar datos
temporalmente,etc.
Contadordeprograma(PC)
Registrode16bitsquecontieneladireccindelasiguienteinstruccinaejecutar.
Pg.15de29
Registrodecdigosdecondicin(CCR)
Registrode8bitsquecontienedistintosindicadores(banderines)(flags):
Decontroldelsistema:
S
InhibicindelainstruccinSTOP:1seejecutacomoNOP,0sedetieneCPU
X
Inhibicindeinterrupcionesnoenmascarables(lnea
):1nosepermiten,0sepermiten
I
Inhibicindeinterrupcionesenmascarables:1nosepermiten,0sepermiten
deresultadosaritmticos:
H
medioacarreo:usadoparaajustarresultadotrassumacondatosenBCD
N
negativo:sielbitmssignificativoesta1=>datonegativosiestrepresentadoencomplemento
a2.
Z
cero:resultadoes0
V
overflow:desbordamientodeunaoperacinsilosdatosestnencomplementoa2
C
acarreo: desbordamiento de una operacin si los datos son sin signo. Tambin se utiliza en las
operacionesdedesplazamientoyrotacin.
Existeninstruccionesdesaltocondicionalquepermitencomprobarlascondiciones<, ,
O paradatossinsignoyconsigno.
, ,
LamayoradelasinstruccionesmodificanelCCR.Lasexcepcionesestnenlasinstruccionesde:
meterysacardelapila,transferenciaseintercambios.
Pg.16de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
Inherente
Implcito
Por Registro
Inmediato
Directo
Modos
Direcc.
HC12
Extendido
Relativo
8 bits
9 bits
16 bits
Con desplazamiento consistente de 5, 9 y 16 bits
Con desplazamiento consistente del acumulador
Con pre / pos incremento /decremento
Indexado
Indirecto
LosmodosdedireccionamientosonlapolticaaseguirporelMicrocontroladoromicroprocesador
alahoradebuscarunoperandoexternoalainstruccinquevaaprocesar,esdecir,encontrarla
posicin de memoria donde se encuentra el operando. Dicha direccin la denominaremos, de
ahoraenadelante,EA(EffectiveAddres,DireccinEfectiva).Excepcionalmente,elmodoinherente
notienenoperandosexternos,esdecir,notienenlosdatosdeloperandoenmemoria,sinoque
se encuentra en los registros de la CPU (Inherente Implcito) o incluido en el contexto de la
instruccin(Inherenteporregistro).
Elmicrocontrolador68HC12soportalossiguientesmodosdedireccionamiento:
Pg.17de29
Mododedireccionamiento
Formatofuente
Abreviacin
Inherente
INST
INH
INST#opr8i
Inmediato
INM
INST#opr16i
Directo
INSTopr8a
DIR
Extendido
INSTopr16a
EXT
INSTrel8
Relativo
REL
INSTrel16
Indexadode5bits
INSToprx5,xysp
IDX
Indexadode9bits
INSToprx9,xysp
IDX1
Indexadode16bits
INSToprx16,xysp
IDX2
Indexadodeacumulador
INSTabd,xysp
IDX
Indexadodepreincremento
INSToprx3,+xys
IDX
Pg.18de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
Indexadodepredecremento
Indexadodepostincremento
Indexadodepostdecremento
Indexadoindirectode16bits
Indexado
indirecto
de
INSToprx3,xys
IDX
INSToprx3,xys+
IDX
INSToprx3,xys
IDX
INST[oprx16,xysp]
[IDX2]
acumulador
INST[D,xysp]
[D,IDX]
1.4.2Direccionamientossimples.(Inherente,Inmediato,DirectoyExtendido)
Direccionamientoinherente(INH)
Lasinstruccionesdeestetiponotienenunadireccinefectivaporquenoguardandatosenuna
direccindememoria,solousanlamemoriaparaobtenerelcdigomaquina.
Existen2tiposdedireccionamientosinherentes,losimplcitosquenorequierenoperandos:
CONLOC
COP
<etiqueta>
INST
;datosenlainstruccin
COPeb<etiqueta>
tfr
A,B
X,S
ElcualdicequesecambieloquecontengaelregistroXenelregistroS.
Direccionamientoinmediato(INM)
Se usa cuando se especifica que se quiere asignar especficamente un valor, el cual puede ser
tanto de 8 bits como de 16 bits. La EA se encuentra inmediatamente despus del cdigo de
operacin.
CONLOC
COPii
<etiqueta>
INST #opr8i
CONLOC
COPjjkk
<etiqueta>
INST #opr16i
Con0opr8i255paraelde8bits,y0opr16i65535paraelde16bits.Dondeiiesiguala
opr8ienformatohexadecimalen1byte(completandoconceroasuizquierdadesernecesario),y
jjkkesopr16ienformatohexadecimalcompletadoa2bytes.
Por ejemplo, para el siguiente fragmento de programa que se encarga de sumar el nmero 30
hexadecimal con el 20 tambin en hexadecimal, el cdigo maquina se calculara de la siguiente
manera:
000087
clra
00008630
ldaa
#$30 ;IMM,EA=0001H
00028B20
0004CE0000
ldx
;INH,noexisteEA
#$00 ;IMM,EA=0005H
Direccionamientodirecto(DIR)
Eloperandoindicaladireccindememoriadedondeseleereldato,peroladireccindebeestar
enlapaginacero(entre0000Hy00FFH).LaEA=00dd.
CONLOC
COPdd
<etiqueta>
INST
opr8a
Donde 0 opr8a 255. Con dd=opr8a en formato hexadecimal de 1 byte. Suponiendo que
deseamosconocerelcdigomaquinadelsiguienteextractodeprogramaqueseencargadesumar
2nmeros,tenemos:
000087
Pg.20de29
clra
;EAnoexiste
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
00018680
ldaa
$80
;EA=0080H
00038B81
adda $81
;EA=0081H
00055A82
staa
;EA=0082H
$82
Direccionamientoextendido(EXT)
Igual que en el direccionamiento directo el operando especifica la direccin de memoria, con la
diferenciadequesepuedeespecificarcualquierdireccindememoria.LaEA=hhll.
CONLOCCOPhhll
<etiqueta>
INST
opr16a
Con0opr16a65535.Dondehhll=opr16enformatohexadecimalen2bytes.
1.4.3DireccionamientoRelativode8bits
Hayalgunosmodosdedireccionamientoenquesehaceusodeunapropiedadmuygeneralizada
de los programas denominada localidad de referencia, esta propiedad consiste en que las
direccionesreferenciadasporlosprogramasnosuelenalejarsemuchounasdeotrasy,portanto,
suelen estar concentradas en una parte de la memoria. Estas consideraciones nos llevan a la
conclusindequenoesnecesarioutilizartodoslosbitsdeladireccindememoriaenelcampo
deoperando,bastautilizarlosbitsprecisosparacubrirlapartedememoriadondeestnincluidas
las direcciones a las que el programa hace referencia. Esto puede hacerse tomando corno
referenciaunpuntodelamemoriaytomandocomocampodeoperandoladiferenciaentreese
punto y la direccin efectiva del operando. La direccin que se toma como punto de referencia
puederesidirenunregistrodelaCPUy,portanto,sumandoelcontenidodeeseregistroconel
campodeoperandoobtendremosladireccinefectiva.Hayvariosdireccionamientosbasadosen
estatcnicaquerecibendiferentesnombresdependiendodeculseaelregistroenelqueradica
la direccin tomada como referencia. Todos ellos podran catalogarse como direccionamientos
relativosaunregistro.
Eldireccionamientodenominadohabitualmenterelativotomacomovalordereferenciaelregistro
contador de programa. Cuando se usa este modo de direccionamiento, el campo de operando
consisteenunnmero(normalmenteconsigno)queexpresaladiferenciaentreladireccindel
datoyladireccinsiguientealainstruccinencurso(contenidaenelcontadordeprograma).Siel
campo de operando, llamado en este caso desplazamiento u offset, es positivo el operando
residirenunadireccinposterioraladelainstruccinysiesnegativo,enunadireccinanterior.
Este modo de direccionamiento es usado muy frecuentemente en programas cuyo cdigo deba
serindependientedelaposicindememoriadondeestnsituados(programasrelocalizables)ya
que el desplazamiento es independiente de la localizacin del programa. Tambin se usa con
muchafrecuenciaeninstruccionesdebifurcacin.
LaEAesrelativaalvalordelPC,sonsaltoscuyadireccindedestinoestarantesodespusdelPC.
Enelrelativode8bitsla direccinefectivaestar 128posicionesantesdel PCo127posiciones
Pg.21de29
despusyseespecificaeneloperandopormedioderel8(EA=rel8).EA=PC+rrendonderresun
numerode8bitsconsigno,masadelanteseexplicacomocalcularlo.
Direccionamientorelativo(REL)
Soninstruccionesdesaltocondicional.
CONLOCCOPrr
<etiqueta>
INST
rel8
CONLOCCOPebrr
<etiqueta>
INST
abdxys,rel9
CONLOCCOPqqrr
<etiqueta>
INST
rel16
DadoqueelPCeselregistroqueespecificaladireccindememoriadelasiguienteinstruccin,
entoncespodemosconsiderarque:
PC=CONLOC+N_bytes
EndondeN_byteseselnmerodebytesquetieneelcdigomaquinadelainstruccin,ovistode
otraformaladireccindememoriadelainstruccinsiguiente(CONLOC_siguiente).
Entonces:
PC=CONLOC_siguiente.
Ycomo:
EA=PC+rr
PerotambinEA=rel8,sustituyendotenemos
rel8=CONLOC_siguiente+rr
sidespejamospararr:
rr=rel8CONLOC_siguiente
Recordemosquerel8eseloperandodelainstruccinyque128rr127.Ademsrresunsolo
byte.
1.4.4DireccionamientoRelativode16bits
Donde32768qqrr32767.
Enestecasoladireccinefectivaesrelativaalcontadordelprogramaysecalculadelasiguiente
manera:
EA=PC+qqrr
Pg.22de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
Con:
qqrr=rel16CONLOC_siguiente
Porejemplo,siquisiramoscalcularelcdigomaquinadelsiguienteprogramaqueseencargade
convertirundgitoounaletradelaAalaF(solomaysculas)asuvalorenASCII,tendramos:
0000
ORG
$4000
4000 9600
ldaa
$00
4002 8000
suba
#$30
4004 8130
cmpa #$11
4006 18250002
lblo
OTRO
400A 8007
suba
$80
400C 580
OTRO staa
$80
400E 20E0
bra
$4000
4010
END
Elrelativode9bitsporcalcularsedeacuerdoalvalordecadabitseexplicaraposteriormente.
1.4.5DireccionamientoIndexado.
En este modo de direccionamiento, la direccin del operando tambin se calcula sumando un
registro de la CPU al campo de operando, este registro es un registro especfico para este uso
llamado registro ndice. En los ordenadores con organizacin de registros generales, el registro
ndicepuedesercualquieradelosregistrosdelaCPU.Enlosordenadoresenqueelcontadorde
programaesconsideradocomounregistrodeusogeneralelmodorelativoesuncasoparticular
deldireccionamientoindexado.Alacantidadquehayquesumaralregistrondiceparaconseguir
la direccin del operando tambin se le llama desplazamiento u offset. Este modo de
direccionamientoesespecialmentetilparaeldireccionamientodevectoresymatricesenbucles
yaque,sisequierendireccionarelementosconsecutivosdelvectoromatriz,bastamantenerenel
desplazamiento la direccin del primer elemento e ir incrementando el registro ndice. Tambin
sirveparaaccederdeformarelativaaelementosdevectorescercanosaunodado,paraello,se
cargaladireccindelelementodereferenciaenelregistrondiceydespusseaccedemediante
direccionamiento indexado, con el desplazamiento adecuado, al anterior, al siguiente, etc., esto
mismotambinesaplicableapilas,enque,enocasiones,hayqueaccederadatoscercanos,por
encimaopordebajo,aldatosealadoporalgnapuntador.Unaconsecuenciadetodoestoesuna
modalidad de direccionamiento indexado de que disponen algunos ordenadores, denominada
autoindexacin,quehacequeelregistrondiceseaincrementadoodecrementadoeneltamao
deloperandoantesodespusdeaccederalmismo.Losordenadoresqueposeenautoindexacin
Pg.23de29
incorporanlosmodosdedireccionamientodescritosenlosdosapartadossiguientes.Enalgunos
ordenadores existen variantes del direccionamiento indexado en que se obtiene la direccin del
operandosumandoelcontenidodevariosregistrosconeldesplazamiento,estopuedeservirpara
especificar el comienzo de un vector mediante un desplazamiento respecto a un registro y el
elementodelvectormedianteunregistrondice.
En este direccionamiento la direccin del dato de la instruccin se obtiene sumando el primer
operando al contenido de un registro ndice que puede ser X, Y, SP o PC especificado en el
segundooperando.EA=ri+desplazamiento,endonderiesunodelosregistrosndice.
Direccionamientoindexadocondesplazamientoconstante
Enestedireccionamientoeldesplazamiento(primeroperando)esunnumeroconstantede5,9o
16bits.
CONLOCCOPxb
<etiqueta>
INST
oprx5,xysp
CONLOCCOPxbff
<etiqueta>
INST
oprx9,xysp
CONLOCCOPxbeeff <etiqueta>
INST
oprx16,xysp
Donde16oprx515,256oprx9255y0oprx1665535;
elpostbytexbseobtienedelasiguientemaneraparaelmodode5bits:
xb=rr0nnnnncomonumerobinario.
Nodebemosdeconfundirestarrconlaobtenidaparaelmododedireccionamientorelativo,aqu
larresunnumerobinariodedosbitsqueserefierealregistrondicequesesealaeneloperando
yquepuedeser:
x
00
01
sp
10
pc
11
Y nnnnn se refiere a oprx5, completados a 5 bits. Una vez que se tienen todos los datos y se
sustituyenenlaformulasetomanlos4bitsmssignificativosysetransformanasuequivalente
en formato hexadecimal, lo mismo se hace con los 4 bits menos significativos, los 2 dgitos
hexadecimalessejuntanyellosrepresentanelpostbytexb.
Paralosmodosindizadosde9y16bitselpostbytexbseobtieneconlaformula:
xb=111rr0zsbinario
Pg.24de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
Zes0paraelmodode9bitsy1paraelmodode16bits;ses0paraelmodode16bitsyparael
modode9bitsesigualalbitdesignodelarepresentacinbinariadeoprx9.
Paraelmodoindizadode9bits,ffserefierealarepresentacinen1bytehexadecimalesdelos8
bitsmenossignificativosdeoprx9;yparaelmodoindizadode16bitseeeslarepresentacinen1
bytedelos8bitsmssignificativosdeoprx16yfflarepresentacinenhexadecimaldelos8bits
menossignificativosdelmismooprx16.
Heaquunejemplo:
0000
ORG
$4300
4300 CE0800
ldx
#$0800
4303 6900
LIMPIAclr
0,x
4305 08
inx
4306 8E0900
cpx
#$0900
4309 25F8
blo
LIMPIA
430B 3D
rts
430C
END
Direccionamientoindexadocondesplazamientodelacumulador
Enestedireccionamientoeldesplazamientoesunodelosregistrosacumuladores(A,BoD).EA=
ri+acumulador.
CONLOCCOPxb
<etiqueta>
INST
abd,xysp
Dondeelpostbytexbsecalculaconlasiguientefrmula:
xb=111rr1aatambinenbinario.
Elacumuladoreselquenosvaadaraa,yaquesiesteeselacumuladorA,aaseriguala00,sipor
otraparteeselacumuladorBser01yporultimosisetratadelacumuladorD,aaser10.
Veamospuesunejemplo,elcualconvierteunnmerohexadecimalasurepresentacinenBCD:
0000
ORG
$0E43
0E43 CE0E4E
ldx
#TABLA
0E46 9600
OTRO ldaa
0E48 840F
$00
anda #$0F
Pg.25de29
0E4A A6E4
ldaa
A,X
0E4C 20F8
bra
OTRO
0E4E
TABLA DB
%0000,%0001,$02,$03
0E52 04050607
DB
$04,$05,$06,$07
0E56 08091011
DB
$08,$09,$10,$11
0E5A 12131415
DB
$12,$13,$14,$15
0E5E
END
00010203
Indexadoconpre/postincremento/decremento
Enestedireccionamientoadiferenciadelosdemsindexadosladireccinefectivaseobtienesolo
delcontenidodelregistrondiceperoestevalorsecalculadespusdeincrementarodecrementar
elcontenidodelregistrondice,sisetratadepreincrementoodecrementorespectivamente.Sise
trata de post incremento o decremento, primero se calcula la direccin efectiva y luego se
incrementa o decrementa el registro ndice. El valor en que va a ser incrementado o
decrementadoelregistrondiceseespecificaenelprimeroperandoypuedeserunvalorentre1y
8.
CONLOCCOPxb
<etiqueta>
INST
oprx3,+xys;preincremento
CONLOCCOPxb
<etiqueta>
INST
oprx3,xys;predecremento
CONLOCCOPxb
<etiqueta>
INST
oprx3,xys+;postincremento
CONLOCCOPxb
<etiqueta>
INST
oprx3,xys;postdecremento
Esos son los formatos para el pre incremento, pre decremento, post incremento y post
decremento respectivamente, donde 1 oprx3 8. Donde el post byte xb se obtiene con la
formula:
xb=rr1pnnnnbinariocomotodoslosxb
Como ya hemos visto, rr depende del registro ndice al cual se haga referencia en el mismo
operando;pes0paraprey1parapost,yporultimonnnnrepresentaoprx31,sisetratadeun
incrementoooprx3paradecrementoenunformatode4bits.
Estoseapreciamejorenelsiguienteejemplo:
0000
0E00CE0800
Pg.26de29
ORG
$E00
ldx
#$0800
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
0E036930
LIMPIAclr
1,x+
0E058E0900
cpx
#$0900
0E0825F9
blo
LIMPIA
0E0A3D
rts
0E0B
END
1.4.6DireccionamientoIndirecto
DireccionamientoIndirectoporRegistro
Estedireccionamientoutilizaelcontenidoderegistrosinternoscomounadireccindememoria.
La direccin efectiva es igual al contenido del registro ndice, este registro trabaja como
apuntador, en el HC12 se puede obtener con el direccionamiento indexado de desplazamiento
constantede5bitshaciendoeldesplazamientoiguala0.
DireccionamientoIndirectoporMemoria.
Enesteotrodireccionamientoindirectoesunalocalidaddememorialaquecontendrelvalorde
la direccin efectiva, dentro de la memoria se encuentra el apuntador a otra direccin de
memoria,enelcasodelHC12existecombinadoconeldireccionamientoindexado.
Direccionamientoindexadoindirecto
Existen2tiposdedireccionamientoindexadoindirecto,elde16bits:
Direccionamientoindexadoindirectode16bitsdedesplazamientoconstante
Estemododedireccionamientoindexadoaadealos16bitsdelainstruccindedesplazamientoa
la base del registro ndice para formar la direccin de la localidad de memoria que contiene un
puntero a la memoria afectada por la instruccin. La instruccin misma no es al puntero a la
direccin de memoria la que acta, mejor dicho a la localidad de memoria del puntero a la
direccinaactuar.
CONLOCCOPxbeeff <etiqueta>
INST
[oprx16,xysp]
Dondexbsepuedeobtenerconestafrmula:
xb=111rr011binario
Yenlacualrrserefierealregistrondice;yeeffesoprx16representadoen2bytes.
YtambinexisteeldireccionamientoindexadoindirectodelacumuladorD:
Pg.27de29
EstedireccionamientoindexadoaadeelvalorenelacumuladorDalvalorenlabasedelregistro
ndiceparaformarladireccindememoriaquecontieneelpunterodelalocalidaddememoria
afectadaporlainstruccin.
<etiqueta>
INST
[D,xysp]
Yparaelcualsecalculasucdigomaquinaas:
COP
xb
[D,xysp]
Dondexbvienedelasiguientefrmula:
111rr111
Enlacual(ycomohemosvistoanteriormente)elpostbytexbvienedadoporelregistrondice.
1.4.7Otrosdireccionamientos
DireccionamientosMltiples
COPddmmBCLRopr8a,msk8DIR
hhllmmopr16a,msk8EXT
xbmmoprx0_xysp,msk8IDX
xbffmmoprx9_xysp,msk8IDX1
xbefffoprx16_xysp,msk8IDX2
COPddmmrrBRCLRopr8a,msk8,rel8
hhllmmropr16a,msk8,rel8
xbmmrroprx0_xysp,msk8,rel8
xbffmmrroprx9_xysp,msk8,rel8
xbefffrroprx16_xysp,msk8,rel8
COPiihhllMOVB#opr8i,opr16aINMEXT
xbii#opr8i,oprx0_xyspINMIDX
hhllhhllopr16a,opr16aEXTEXT
Pg.28de29
Recopiladopor:Ing.ValentnMartnezLpez.
Programacindesistemas.
xbhhllopr16a,oprx0_xyspEXTIDX
xbhhlloprx0_xysp,opr16aIDXEXT
xbxboprx0_xysp,oprx0_xypsIDXIDX
COPjjkkhhllMOVW#opr16ii,opr16i
Ej:
<Etiqueta>BCLR$01,$10
4D0110<Etiqueta>BCLR$01,$10
<Etiqueta>BRCLR$01,$10,OTRO
5510 4F0110EC.............<Etiqueta>BRCLR$01,$10,OTRO
5514................................TABSIMOTRO$5500
5500H
5514H=
FFECH
Pg.29de29