You are on page 1of 9

Mster Univ.

Prevencin de Riesgos Laborales

Infrmese

100% ONLINE

ConceptosBasicos
Informacinenlascomputadoras.
Unidadesdeinformacin
Sistemasnumricos
Convertirnmerosbinariosadecimales
Convertirnmerosdecimalesabinarios
SistemaHexadecimal
Mtodosderepresentacindedatosenunacomputadora.
CdigoASCII
MtodoBCD
Representacindepuntoflotante
Trabajandoconellenguajeensamblador.
Procesodecreacindeunprograma
RegistrosdelaUCP
Laestructuradelensamblador
Nuestroprimerprograma
Guardarycargarlosprogramas
Condiciones,ciclosybifurcaciones
Interrupciones

Unidadesdeinformacin
ParaquelaPCpuedaprocesarlainformacinesnecesarioquestaseencuentreenceldasespecialesllamadasregistros.
Losregistrossonconjuntosde8o16flipflops(basculadoresobiestables).
Unflipflopesundispositivocapazdealmacenardosnivelesdevoltaje,unobajo,regularmentede0.5voltsyotroalto
comunmentede5volts.Elnivelbajodeenergaenelflipflopseinterpretacomoapagadoo0,yelnivelaltocomoprendido
o1.Aestosestadosselesconoceusualmentecomobits,quesonlaunidadmaspequeadeinformacinenunacomputadora.
Aungrupode16bitsseleconocecomopalabra,unapalabrapuedeserdivididaengruposde8bitsllamadosbytes,yalos
gruposde4bitslesllamamosnibbles.
Sistemasnumricos
Elsistemanumricoqueutilizamosadiarioeselsistemadecimal,peroestesistemanoesconvenienteparalasmquinas
debidoaquelainformacinsemanejacodificadaenformadebitsprendidosoapagadosestaformadecodificacinnoslleva
alanecesidaddeconocerelclculoposicionalquenospermitaexpresarunnmeroencualquierbasequelonecesitemos.
Esposiblerepresentarunnmerodeterminadoencualquierbasemediantelasiguienteformula:
Dondeneslaposicindeldgitoempezandodederechaaizquierdaynumerandoapartirdecero.Deseldgitosobreelcual
operamosyBeslabasenumricaempleada.
Convertirnmerosbinariosadecimales
Trabajandoenellenguajeensambladornosencontramosconlanecesidaddeconvertirnmerosdelsistemabinario,queesel
empleadoporlascomputadoras,alsistemadecimalutilizadoporlaspersonas.
Elsistemabinarioestbasadoenunicamentedoscondicionesoestados,yaseaencendido(1)oapagado(0),porlotantosu
baseesdos.
Paralaconversinpodemosutilizarlaformuladevalorposicional:

Porejemplo,sitenemoselnumerobinario10011,tomamosdederechaaizquierdacadadgitoylomultiplicamosporlabase
elevadaalanuevaposicinqueocupan:
Binario:11001
Decimal:1*2^0+1*2^1+0*2^2+0*2^3+1*2^4
=1+2+0+0+16=19decimal.
Elcaracter^esutilizadoencomputacincomosmbolodepotenciacinyelcaracter*seusapararepresentarla
multiplicacin.
Convertirnmerosdecimalesabinarios
Existenvariosmtodosdeconversindenmerosdecimalesabinariosaqusoloseanalizaruno.Naturalmenteesmucho
masfcilunaconversinconunacalculadoracientfica,peronosiempresecuentaconella,asqueesconvenienteconocer
porlomenosunaformamanualparahacerlo.
Elmtodoqueseexplicarutilizaladivisinsucesivaentredos,guardandoelresiduocomodgitobinarioyelresultado
comolasiguientecantidadadividir.
Tomemoscomoejemploelnmero43decimal.
43/2=21ysuresiduoes1
21/2=10ysuresiduoes1
10/2=5ysuresiduoes0
5/2=2ysuresiduoes1
2/2=1ysuresiduoes0
1/2=0ysuresiduoes1
Armandoelnmerodeabajohaciaarribatenemosqueelresultadoenbinarioes101011
Sistemahexadecimal
Enlabasehexadecimaltenemos16dgitosquevandel0al9ydelaletraAhastalaF(estasletrasrepresentanlosnmeros
del10al15).Porlotanto,contamos0,1,2,3,4,5,6,7,8,9,A,B,C,D,EyF.
Laconversinentrenumeracinbinariayhexadecimalessencilla.Loprimeroquesehaceparaunaconversindeunnmero
binarioahexadecimalesdividirloengruposde4bits,empezandodederechaaizquierda.Encasodequeelltimogrupo(el
quequedemasalaizquierda)seamenorde4bitsserellenanlosfaltantesconceros.
Tomandocomoejemploelnmerobinario101011lodividimosengruposde4bitsynosqueda:
101011
Rellenandoconceroselltimogrupo(eldelaizquierda):
00101011
Despustomamoscadagrupocomounnmeroindependienteyconsideramossuvalorendecimal:
0010=21011=11
Perocomonopodemosrepresentarestenmerohexadecimalcomo211porqueseraunerror,tenemosquesustituirtodoslos
valoresmayoresa9porsurespectivarepresentacinenhexadecimal,conloqueobtenemos:
2BH(DondelaHrepresentalabasehexadecimal)
Paraconvertirunnmerodehexadecimalabinariosoloesnecesarioinvertirestospasos:setomaelprimerdgito
hexadecimalyseconvierteabinario,yluegoelsegundo,yassucesivamentehastacompletarelnmero.
CdigoASCII
ASCIIgeneralmentesepronuncia"aski",esunacrnimodeAmericanStandardCodeforInformationInterchange.

Estecdigoasignaalasletrasdelalfabeto,alosdgitosdecimalesdel0al9yavariossmbolosadicionalesunnmero
binariode7bits(ponindoseelbit8ensuestadodeapagadoo0).
Deestaformacadaletra,dgitoocaracterespecialocupaunbyteenlamemoriadelacomputadora.
Podemosobservarqueestemtododerepresentacindedatosesmuyineficienteenelaspectonumrico,yaqueenformato
binarionosbastaunsolobytepararepresentarnumerosde0a255,encambioconelcdigoASCIIunbytepuederepresentar
unicamenteundgito.
Debidoaestaineficiencia,elcdigoASCIIesprincipalmenteutilizadoenlamemoriapararepresentartexto.
MetodoBCD
BCDesunacrnimodeBinaryCodedDecimal.
Enestanotacinseutilizangruposde4bitspararepresentarcadadgitodecimaldel0al9.Conestemtodopodemos
representardosdgitosporbytedeinformacin.
AncuandoestemtodoesmuchomasprcticopararepresentacindenmerosenlamemoriaencomparacinalASCII,
todavasequedapordebajodelbinario,yaqueconunbyteenelmtodoBCDsolopodemosrepresentardgitosdel0al99,
encambio,enformatobinariopodemosrepresentartodoslosdgitosdesde0hasta255.
Esteformatoesutilizadoprincipalmentepararepresentarnmerosmuygrandesenaplicacionesmercantilesyaquefacilita
lasoperacionesconlosmismosevitandoerroresderedondeo.
Representacindepuntoflotante
Estarepresentacinestabasadaenlanotacincientfica,estoes,representarunnmeroendospartes:sumantisaysu
exponente.
Poniendocomoejemploelnmero1234000,podemosrepresentarlocomo1.123*10^6,enestaltimanotacinelexponente
nosindicaelnmerodeespaciosquehayquemoverelespaciohacialaderechaparaobtenerelresultadooriginal.
Encasodequeelexponentefueranegativonosestaraindicandoelnmerodeespaciosquehayquerecorrerelpunto
decimalhacialaizquierdaparaobtenereloriginal.
Procesodecreacindeunprograma
Paralacreacindeunprogramaesnecesarioseguircincopasos:Diseodelalgoritmo,codificacindelmismo,sutraduccin
alenguajemquina,lapruebadelprogramayladepuracin.
Enlaetapadediseoseplanteaelproblemaaresolveryseproponelamejorsolucin,creandodiagramasesquemticos
utilizadosparaelmejorplanteamientodelasolucin.
Lacodificacindelprogramaconsisteenescribirelprogramaenalgnlenguajedeprogramacinenestecasoespecficoen
ensamblador,tomandocomobaselasolucinpropuestaenelpasoanterior.
Latraduccinallenguajemquinaeslacreacindelprogramaobjeto,estoes,elprogramaescritocomounasecuenciade
cerosyunosquepuedaserinterpretadoporelprocesador.
Lapruebadelprogramaconsisteenverificarqueelprogramafuncionesinerrores,osea,quehagaloquetienequehacer.
Laltimaetapaeslaeliminacindelasfallasdetectadasenelprogramadurantelafasedeprueba.Lacorreccindeunafalla
normalmenterequierelarepeticindelospasoscomenzandodesdeelprimerooelsegundo.
Paracrearunprogramaenensambladorexistendosopciones,laprimeraesutilizarelMASM(MacroAssembler,de
Microsoft),ylasegundaesutilizareldebugger,enestaprimeraseccinutilizaremosesteltimoyaqueseencuentraen
cualquierPCconelsistemaoperativoMSDOS,locualloponealalcancedecualquierusuarioquetengaaccesoauna
mquinaconestascaracteristicas.
Debugsolopuedecreararchivosconextensin.COM,yporlascaractersticasdeestetipodeprogramasnopuedenser
mayoresde64kb,ademsdebencomenzareneldesplazamiento,offset,odireccindememoria0100Hdentrodelsegmento
especfico.
RegistrosdelaUCP
LaUCPtiene14registrosinternos,cadaunode16bits.Losprimeroscuatro,AX,BX,CX,yDXsonregistrosdeusogeneral

ytambienpuedenserutilizadoscomoregistrosde8bits,parautilizarloscomotalesesnecesarioreferirseaelloscomopor
ejemplo:AHyAL,quesonlosbytesalto(high)ybajo(low)delregistroAX.Estanomenclaturaesaplicabletambinalos
registrosBX,CXyDX.
Losregistrossonconocidosporsusnombresespecficos:

AXAcumulador
BXRegistrobase
CXRegistrocontador
DXRegistrodedatos
DSRegistrodelsegmentodedatos
ESRegistrodelsegmentoextra
SSRegistrodelsegmentodepila
CSRegistrodelsegmentodecdigo
BPRegistrodeapuntadoresbase
SIRegistrondicefuente
DIRegistrondicedestino
SPRegistrodelapuntadordelapila
IPRegistrodeapuntadordesiguienteinstruccin
FRegistrodebanderas
EsposiblevisualizarlosvaloresdelosregistrosinternosdelaUCPutilizandoelprogramaDebug.Paraempezaratrabajar
conDebugdigiteenelpromptdelacomputadora:
C:\>Debug[Enter]
Enlasiguientelineaapareceraunguin,steeselindicadordelDebug,enestemomentosepuedenintroducirlas
instruccionesdelDebug.Utilizandoelcomando:
r[Enter]
SedesplegarantodosloscontenidosdelosregistrosinternosdelaUCPunaformaalternativademostrarlosesusarel
comando"r"utilizandocomoparametroelnombredelregistrocuyovalorsequieravisualizar.Porejemplo:
rbx
EstainstruccindesplegarunicamenteelcontenidodelregistroBXycambiaelindicadordelDebugde""a":"
Estandoaselpromptesposiblecambiarelvalordelregistroquesevisualiztecleandoelnuevovaloryacontinuacin
[Enter],osepuededejarelvaloranteriorpresionando[Enter]sintelclearningnvalor.
Esposiblecambiarelvalordelregistrodebanderas,ascomoutilizarlocomoestructuradecontrolennuestrosprogramas
comosevermasadelante.Cadabitdelregistrotieneunnombreysignificadoespecial,lalistadadaacontinuacindescribe
elvalordecadabit,tantoapagadocomoprendidoysurelacinconlasoperacionesdelprocesador:
Overflow
NV=nohaydesbordamiento
OV=slohay
Direction
UP=haciaadelante
DN=haciaatras
Interrupts
DI=desactivadas
EI=activadas
Sign
PL=positivo
NG=negativo
Zero
NZ=noescero

ZR=sloes
AuxiliaryCarry
NA=nohayacarreoauxiliar
AC=hayacarreoauxiliar
Parity
PO=paridadnon
PE=paridadpar
Carry
NC=nohayacarreo
CY=Slohay
Laestructuradelensamblador
Enellenguajeensambladorlaslineasdecdigoconstandedospartes,laprimeraeselnombredelainstruccinquesevaa
ejecutarylasegundasonlosparmetrosdelcomandouoperandos.Porejemplo:
addahbh
Aqu"add"eselcomandoaejecutar(enestecasounaadicin)ytanto"ah"como"bh"sonlosparmetros.
Elnombredelasinstruccionesenestelenguajeestaformadopordos,tresocuatroletras.aestasinstruccionestambienseles
llamanombresmnemnicosocdigosdeoperacin,yaquerepresentanalgunafuncinquehabrderealizarelprocesador.
Existenalgunoscomandosquenorequierenparametrosparasuoperacin,ascomootrosquerequierensolounparmetro.
Algunasvecesseutilizarnlasinstruccionescomosigue:
addal,[170]
Loscorchetesenelsegundoparmetronosindicanquevamosatrabajarconelcontenidodelacasilladememorianmero
170ynoconelvalor170,astoseleconocecomodireccionamientodirecto.
Nuestroprimerprograma
Vamosacrearunprogramaquesirvaparailustrarloquehemosestadoviendo,loqueharemosserunasumadedosvalores
queintroduciremosdirectamenteenelprograma:
ElprimerpasoesiniciarelDebug,estepasoconsisteunicamenteentecleardebug[Enter]enelpromptdelsistema
operativo.
ParaensamblarunprogramaenelDebugseutilizaelcomando"a"(assemble)cuandoseutilizaestecomandoselepuede
darcomoparametroladireccindondesedeseaqueseinicieelensamblado,siseomiteelparametroelensambladose
iniciarenlalocalidadespecificadaporCS:IP,usualmente0100H,queeslalocalidaddondedebeniniciarlosprogramascon
extensin.COM,yseralalocalidadqueutilizaremosdebidoaquedebugsolopuedecrearestetipoespecficodeprogramas.
Aunqueenestemomentonoesnecesariodarleunparametroalcomando"a"esrecomendablehacerloparaevitarproblemas
unavezquesehagausodelosregistrosCS:IP,porlotantotecleamos:
a0100[Enter]
Alhacerstoaparecerenlapantallaalgocomo:0C1B:0100yelcursorseposicionaaladerechadeestosnmeros,ntese
quelosprimeroscuatrodgitos(ensistemahexagesimal)puedenserdiferentes,perolosltimoscuatrodebenser0100,ya
queesladireccinqueindicamoscomoinicio.Ahorapodemosintroducirlasinstrucciones:
0C1B:0100movax,0002colocaelvalor0002enelregistroax
0C1B:0103movbx,0004colocaelvalor0004enelregistrobx
0C1B:0106addax,bxleadicionaalcontenidodeaxelcontenidodebx
0C1B:0108int20provocalaterminacindelprograma.
0C1B:010A
Noesnecesarioescribirloscomentariosquevandespuesdel"".Unavezdigitadoelltimocomando,int20,seleda[Enter]
sinescribirnadamas,paravolveralpromptdeldebuger.

Laltimalineaescritanoespropiamenteunainstruccindeensamblador,esunallamadaaunainterrupcindelsistema
operativo,estasinterrupcionesserntratadasmasafondoenuncaptuloposterior,porelmomentosoloesnecesariosaber
quenosahorranungrannmerodelineasysonmuytilesparaaccesarafuncionesdelsistemaoperativo.
Paraejecutarelprogramaqueescribimosseutlizaelcomando"g",alutilizarloveremosqueapareceunmensajequedice:
"Programterminatednormally".Naturalmenteconunmensajecomostenopodemosestarsegurosqueelprogramahaya
hecholasuma,peroexisteunaformasencilladeverificarlo,utilizandoelcomando"r"delDebugpodemosverloscontenidos
detodoslosregistrosdelprocesador,simplementeteclee:
r[Enter]
Apareceraenpantallacadaregistroconsurespectivovaloractual:
AX=0006BX=0004CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1BES=0C1BSS=0C1BCS=0C1BIP=010ANVUPEIPLNZNAPONC
0C1B:010A0FDBoF
Existelaposibilidaddequelosregistroscontenganvaloresdiferentes,peroAXyBXdebenserlosmismos,yaquesonlos
queacabamosdemodificar.
Otraformadeverlosvalores,mientrasseejecutaelprogramaesutilizandocomoparmetropara"g"ladireccindonde
queremosqueterminelaejecucinymuestrelosvaloresdelosregistros,enestecasosera:g108,estainstruccinejecutael
programa,sedetieneenladireccin108ymuestraloscontenidosdelosregistros.
Tambinsepuedellevarunseguimientodeloquepasaenlosregistrosutilizandoelcomando"t"(trace),lafuncindeeste
comandoesejecutarlineaporlinealoqueseensamblmostrandocadavezloscontenidosdelosregitros.
ParasalirdelDebugseutilizaelcomando"q"(quit).
Guardarycargarlosprogramas
Noseraprcticotenerquedigitartodounprogramacadavezquesenecesite,paraevitaresoesposibleguardarunprograma
eneldisco,conlaenormeventajadequeyaensambladonosernecesariocorrerdenuevodebugparaejecutarlo.
Lospasosaseguirparaguardarunprogramayaalmacenadoenlamemoriason:
Obtenerlalongituddelprogramarestandoladireccinfinaldeladireccininicial,naturalmenteensistemahexadecimal.
Darleunnombrealprogramayextensin
PonerlalongituddelprogramaenelregistroCX
OrdenaraDebugqueescribaelprogramaeneldisco.
Utilizandocomoejemploelprogramadelcaptuloanteriortendremosunaideamasclaradecomollevarestospasos:
Alterminardeensamblarelprogramaseveraas:
0C1B:0100movax,0002
0C1B:0103movbx,0004
0C1B:0106addax,bx
0C1B:0108int20
0C1B:010A
h10a100
020a000a
nprueba.com
rcx
CX0000
:000a
w
Writing000Abytes
Paraobtenerlalongituddeunprogramaseutilizaelcomando"h",elcualnosmuestralasumayrestadedosnmerosen
hexadecimal.Paraobtenerlalongituddelnuestroleproporcionamoscomoparmetroselvalordeladireccinfinalde
nuestroprograma(10A)yelvalordeladireccininicial(100).Elprimerresultadoquenosmuestraelcomandoeslasuma
delosparmetrosyelsegundoeslaresta.
Elcomando"n"nospermiteponerunnombrealprograma.
Elcomando"rcx"nospermitecambiarelcontenidodelregistroCXalvalorqueobtuvimosdeltamaodelarchivocon"h",

enestecaso000a,yaquenosinteresaelresultadodelarestadeladireccininicialaladireccinfinal.
Porltimoelcomandowescribenuestroprogramaeneldisco,indicandonoscuantosbytesescribi.
Paracargarunarchivoyaguardadosonnecesariosdospasos:
Proporcionarelnombredelarchivoquesecargar.
Cargarloutilizandoelcomando"l"(load).
Paraobtenerelresultadocorrectodelossiguientespasosesnecesarioquepreviamentesehayacreadoelprograma
anterior.
DentrodelDebugescribimoslosiguiente:
nprueba.com
l
u100109
0C3D:0100B80200MOVAX,0002
0C3D:0103BB0400MOVBX,0004
0C3D:010601D8ADDAX,BX
0C3D:0108CD20INT20
Elltimocomando,"u",seutilizaparaverificarqueelprogramasecargenmemoria,loquehaceesdesensamblarelcdigo
ymostrarloyadesensamblado.LosparmetrosleindicanaDebugdesdedondeyhastadondedesensamblar.
Debugsiemprecargalosprogramasenmemoriaenladireccin100H,amenosqueseleindiquealgunaotra.
Condiciones,ciclosybifurcaciones
Estasestructuras,oformasdecontrolledanalamquinaunciertogradodedesicinbasadoenlainformacinquerecibe.
Laformamassencilladecomprenderestetemaespormediodeejemplos.
Vamosacreartresprogramasquehaganlomismo:desplegarunnmerodeterminadodevecesunacadenadecaracteresenla
pantalla.
a100
0C1B:0100jmp125brincaaladireccin125H
0C1B:0102[Enter]
e102'Cadenaavisualizar15veces'0d0a'$'
a125
0C1B:0125MOVCX,000Fvecesquesedesplegaralacadena
0C1B:0128MOVDX,0102copiacadenaalregistroDX
0C1B:012BMOVAH,09copiavalor09alregistroAH
0C1B:012DINT21despliegacadena
0C1B:012FLOOP012DsiCX>0brincaa012D
0C1B:0131INT20terminaelprograma.
Pormediodelcomando"e"esposibleintroducirunacadenadecaracteresenunadeterminadalocalidaddememoria,dada
comoparmetro,lacadenaseintroduceentrecomillas,lesigueunespacio,luegoelvalorhexadecimaldelretornodecarro,
unespacio,elvalordelineanuevayporltimoelsmbolo'$'queelensambladorinterpretacomofinaldelacadena.La
interrupcin21utilizaelvaloralmacenadoenelregistroAHparaejecutarunadeterminadafuncin,enestecasomostrarla
cadenaenpantalla,lacadenaquemuestraeslaqueestalmacenadaenelregistroDX.LainstruccinLOOPdecrementa
automaticamenteelregistroCXenunoysinohallegadoelvalordeesteregistroacerobrincaalacasillaindicadacomo
parmetro,locualcreauncicloqueserepiteelnmerodevecesespecificadoporelvalordeCX.Lainterrupcin20termina
laejecucindelprograma.
OtraformaderealizarlamismafuncinperosinutilizarelcomandoLOOPeslasiguiente:
a100
0C1B:0100jmp125brincaaladireccin125H
0C1B:0102[Enter]
e102'Cadenaavisualizar15veces'0d0a'$'
a125
0C1B:0125MOVBX,000Fvecesquesedesplegaralacadena
0C1B:0128MOVDX,0102copiacadenaalregistroDX
0C1B:012BMOVAH,09copiavalor09alregistroAH

0C1B:012DINT21despliegacadena
0C1B:012FDECBXdecrementaen1aBX
0C1B:0130JNZ012DsiBXesdiferentea0brincaa012D
0C1B:0132INT20terminaelprograma.
EnestecasoseutilizaelregistroBXcomocontadorparaelprograma,ypormediodelainstruccin"DEC"sedisminuyesu
valoren1.Lainstruccin"JNZ"verificasielvalordeBesdiferentea0,estoconbaseenlabanderaNZ,encasoafirmativo
brincahacialadireccin012D.Encasocontrariocontinalaejecucinnormaldelprogramayporlotantosetermina.
UnatimavariantedelprogramaesutilizandodenuevoaCXcomocontador,peroenlugardeutilizarLOOPutilizaremos
decrementosaCXycomparacindeCXa0.
a100
0C1B:0100jmp125brincaaladireccin125H
0C1B:0102[Enter]
e102'Cadenaavisualizar15veces'0d0a'$'
a125
0C1B:0125MOVDX,0102copiacadenaalregistroDX
0C1B:0128MOVCX,000Fvecesquesedesplegaralacadena
0C1B:012BMOVAH,09copiavalor09alregistroAH
0C1B:012DINT21despliegacadena
0C1B:012FDECCXdecrementaen1aCX
0C1B:0130JCXZ0134siCXesiguala0brincaa0134
0C1B:0132JMP012Dbrincaaladirecci&oauten012D
0C1B:0134INT20terminaelprograma
EnesteejemploseuslainstruccinJCXZparacontrolarlacondicindesalto,elsignificadodetalfuncines:brincasi
CX=0
Eltipodecontrolautilizardependerdelasnecesidadesdeprogramacinendeterminadomomento.
Interrupciones
Definicindeinterrupcin:
UnainterrupcinesunainstruccinquedetienelaejecucindeunprogramaparapermitirelusodelaUCPaun
procesoprioritario.Unavezconcluidoesteltimoprocesosedevuelveelcontrolalaaplicacinanterior.
Porejemplo,cuandoestamostrabajandoconunprocesadordepalabrasyenesemomentollegaunavisodeunodelos
puertosdecomunicaciones,sedetienetemporalmentelaaplicacinqueestabamosutilizandoparapermitirelusodel
procesadoralmanejodelainformacinqueestllegandoenesemomento.Unavezterminadalatransferenciade
informacinsereanudanlasfuncionesnormalesdelprocesadordepalabras.
Lasinterrupcionesocurrenmuyseguido,sencillamentelainterrupcinqueactualizalahoradeldaocurreaproximadamente
18vecesporsegundo.Paralograradministrartodasestasinterrupciones,lacomputadoracuentaconunespaciodememoria,
llamadomemoriabaja,dondesealmacenanlasdireccionesdeciertalocalidaddememoriadondeseencuentranunjuegode
instruccionesquelaUCPejecutarparadespuesregresaralaaplicacinenproceso.
Enlosprogramasanterioreshicimosusodelainterrupcionnmero20Hparaterminarlaejecucindenuestrosprogramas,
ahorautilizaremosotrainterrupcinparamostrarinformacinenpantalla:
UtilizandoDebugtecleamos:
a100
2C1B:0100JMP011D
2C1B:0102[ENTER]
E102'Hola,comoestas.'0D0A'$'
A011D
2C1B:011DMOVDX,0102
2C1B:0120MOVAH,09
2C1B:0122INT21
2C1B:0123INT20
Enesteprogramalainterrupcin21HmandaalmonitorlacadenalocalizadaenladireccinalaqueapuntaelregistroDX.
ElvalorqueseledaaAHdeterminacualdelasopcionesdelainterrupcin21Hserautilizada,yaqueestainterrupcin
cuentaconvariasopciones.

Elmanejodirectodeinterrupcionesesunadelaspartesmasfuertesdellenguajeensamblador,yaqueconellasesposible
controlareficientementetodoslosdispositivosinternosyexternosdeunacomputadoragraciasalcompletocontrolquese
tienesobreoperacionesdeentradaysalida.

MenuprincipalSiguienteCapitulo
ComprarPLC
arduino
ComprarPLCbasadoen
Arduino
PLClowcosthardware
libre

Msinformacin

You might also like