(OVRIWZDUHHQORVµSURFHVDGRUHV ❚ (MHPSORGHFRPDQGRVGHOD&38 ❙ 7DUHD ❘ 6XPDUGRVQ~PHURV$\% ❘ 6XSRQHUORVGDWRV$\%DOPDFHQDGRVHQODVSRVLFLRQHV \ UHVSHFWLYDPHQWH ❘ (O UHVXOWDGRGHEHDOPDFHQDUVH ,Q& HQ&SRVLFLyQ PDLQ^ ❚ 1RWD³&´1RHVXQOHQJXDMHELQDULR ❚ ¢ &RPRORHQWLHQGHODPiTXLQD" «« & $% ` ❙ (VFRQYHUWLGRDELQDULRSRUGRVSURJUDPDV ❘ (O &203,/$'25³FF´\HO(16$0%/$'25³DV´ Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 1 3ULQFLSDOHVFDUDFWHUtVWLFDV ❚ 6DEHPRVTXHODPiTXLQDHQWLHQGHORVVLJXLHQWHVFRPDQGRV GHQRPLQDGRVLQVWUXFFLRQHV ❘ 6XPDUHOFRQWHQLGRGHGRVUHJLVWURV $GG ❘ 6XPDUHOFRQWHQLGRGHODFXPXODGRUFRQHOFRQWHQLGRGHXQD SRVLFLyQGHPHPRULD $GG 6XEVWUDFW ❘ ,GHPSHURUHVWDQGRORVRSHUDQGRV /RDG $FXPXODWRU ❘ &DUJDUXQUHJLVWURGHVGHPHPRULD 6WRUH$FXPXODWRU ❘ $OPDFHQDUXQUHJLVWURHQPHPRULD (VWDVFRGLILFDFLRQHV (VWDVFRGLILFDFLRQHV FRUUHVSRQGHQDORV³2S&RGHV´ FRUUHVSRQGHQDORV1HPyQLFRV ❚ $OJXQDVFDUDFWHUtVWLFDVFRPXQHV ❙ /DPD\RUtDGHODVLQVWUXFFLRQHVSRVHHQyRSHUDQGRV ❙ /RVUHJLVWURVVRQHOHPHQWRVLQWHUQRVGHDOPDFHQDPLHQWRWHPSRUDO ❙ /DVLQVWUXFFLRQHVTXHWUDEDMDQFRQUHJLVWURVOOHYDQPHQRVWLHPSRGH HMHFXFLyQ Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 2 (QVDPEODGRGHXQSURJUDPD ,QVWUXFFLRQHVHQ/HQJXDMH0iTXLQD &RPHQWDULRV &DUJDUHODFXPXODGRUFRQHOGDWR+ 6XPDUHOFRQWGHODFXPXODGRUFRQHOGDWR+ $OPDFHQDUHOFRQWGHODFXPXODGRUHQODSRV+ ❚ ¢ 4XpHVPiVIiFLOGHHQWHQGHUHOOHQJXDMHPiTXLQDRORV FRPHQWDULRV"/RVFRPHQWDULRV ❙ 8WLOL]DFLyQGHXQOHQJXDMHLQWHUPHGLRTXHVHDVHPHMDDORV FRPHQWDULRVGHQRPLQDGR/HQJXDMH(QVDPEODGRU Programa fuente LDA 1000H ADD 1010H STA 1100H /HQJXDMH(QVDPEODGRU 3URJUDPD (QVDPEODGRU 3URJUDPD7UDGXFWRU Programa objeto 00100011 00000000 00010000 00000010 00010000 00010000 00101011 00000000 00010001 Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador /HQJXDMH0iTXLQD 3 3URJUDPDVHQVDPEODGRUHV ❚ 3URJUDPDHQVDPEODGRU ❙ 5HDOL]DHOHQVDPEODGROtQHDDOtQHDGHOSURJUDPDIXHQWHHGLWDGR ❙ *XDUGDXQDHVWUHFKDUHODFLyQFRQODHVWUXFWXUDGHODPiTXLQD ❙ 7RGRSURJUDPDHQVDPEODGRUHVWiDVRFLDGRDXQOHQJXDMH HQVDPEODGRUSURSLR ❙ 'DODSRVLELOLGDGGHXWLOL]DUHWLTXHWDVSVHXGRLQVWUXFFLRQHV\ GLUHFWLYDV FRQODILQDOLGDGGHIDFLOLWDUODIDVHGHSURJUDPDFLyQ ❘ (WLTXHWDV (VXQQRPEUHVLPEyOLFRTXHVHSXHGHXWLOL]DUHQVXVWLWXFLyQGH ODGLUHFFLyQTXHOHFRUUHVSRQGH ❘ 3VHXGRLQVWUXFFLRQHV ,QIRUPDFLyQSDUDHOSURJUDPDHQVDPEODGRUTXHpVWH HQWLHQGHSHURTXHQRVHWUDGXFHQSRUXQDLQVWUXFFLyQGHPiTXLQD ❘ 'LUHFWLYDV 6RQyUGHQHVSDUDHOHQVDPEODGRUFX\RYHVWLJLRGHVDSDUHFH WRWDOPHQWHHQHOSURJUDPDWUDGXFLGR Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 4 (QVDPEODGRUHV\OHQJXDMHHQVDPEODGRU ❚ (MHPSORGHSURJUDPDHQHQVDPEODGRU 3URJUDPDIXHQWHHQHQVDPEODGRU 25* ),1 (48+ -03 ,1,&,2 &217$'25 )&% + ,1,&,2 /'$ &217$'25 &03$ ),1 (1' ❚ /HQJXDMHHQVDPEODGRU ❙ ❙ ❙ ❙ 'LUHFFLyQ3URJUDPD2EMHWRHQOHQJXDMHPiTXLQD (VSURSLRGHFDGDPiTXLQD 1RWLHQHSDUDOHOLVPRFRQHOOHQJXDMHFRQYHQFLRQDO 3URGXFHQSURJUDPDVREMHWRVPiVGHSXUDGRVPHQRVH[WHQVRV 6LQWD[LVWtSLFDGHXQOHQJXDMHHQVDPEODGRU (WLTXHWD&yGLJRGH2SHUDFLyQ2SHUDQGR&RPHQWDULR Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 5 'LUHFWLYDV ❚ 'LUHFWLYDVPiVFRPXQHV ❙ 25*2ULJLQ(VWDEOHFHHOOXJDUGHPHPRULDGRQGHVHDORMDUiHO SURJUDPDRGDWRV ❘ (MHPSOR25* !,QGLFDTXHHOSURJUDPDVHDOPDFHQDUiDSDUWLU GHODGLUHFFLyQGHPHPRULD+ ❙ (48(TXDO$VLJQDXQYDORUDXQDHWLTXHWD ❘ (MHPSOR5$',2(48 ❙ (1' ,QGLFDDOHQVDPEODGRUHOILQDOGHOFyGLJRDHQVDPEODU Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 6 3VHXGRLQVWUXFFLRQHV ❚ 3VHXGRQVWUXFFLRQHVPiVFRPXQHV ❙ )&%)RUP&RQVWDQW%\WH*XDUGDXQE\WHHQXQDSRVLFLyQGH PHPRULD ❘ (MHPSOR)&%$!*XDUGDHQPHPRULDWUHVE\WHVLQLFLDOL]DGRVFRQ ORVYDORUHVPHQFLRQDGRV ❙ )'%)RUP'RXEOH&RQVWDQW%\WH*XDUGDGRVE\WHVHQPHPRULD ❘ (MHPSOR)'% ❙ )&&)RUP&RQVWDQW&KDUDFWHU6WULQJ*XDUGDHQPHPRULDORVYDORUHV GHORVFDUDFWHUHV$6&,,GHXQDVWULQJ ❘ (MHPSOR)&&³+2/$´ ❙ 50%QXP5VHUYH0HPRU\%\WH5HVHUYDODFDQWLGDGQXPGHE\WHV HQPHPRULD ❘ (MHPSOR50% Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 7 &ODVLILFDFLyQGHODVLQVWUXFFLRQHV, ❚ 7LSRVGHLQVWUXFFLRQHVPiVUHSUHVHQWDWLYRVXVDGRVHQORV µSURFHVDGRUHVWRGRVORVHMHPSORVFRUUHVSRQGHQDOOHQJXDMHHQVDPEODGRUGHOµS ❘ $ULWPpWLFDV 7RGDVDTXHOODVLQVWUXFFLRQHVTXHHMHFXWDQRSHUDFLRQHV DULWPpWLFDV6XPD5HVWD,QFUHPHQWR'HFUHPHQWRHWF«(VWDV LQWUXFFLRQHVDIHFWDQDORVVHxDOL]DGRUHVGHOUHJLVWURGHHVWDGR/RVPiV LPSRUWDQWHVVRQ&9=1+ ± (MHPSORV $%$ 68%$0(0B3$/ ❘ /yJLFDV (IHFW~DQRSHUDFLRQHVOyJLFDVWDOHVFRPR$1'25;251$1' HWF« ± (MHPSORV $1'$0(0B3$/ &20$ ❘ 'H WUDQVIHUHQFLD GHGDWRVHQWUHOD&380HPRULD\RGLVSRVLWLYRVGH (6 ± (MHPSORV /'$$'$72 67$$',5B'$72 Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador ,1+ 287+ 8 &ODVLILFDFLyQGHODVLQVWUXFFLRQHV,, ❘ 'H GHVSOD]DPLHQWR\URWDFLyQ 'HVSOD]DQRURWDQQ YHFHVHO RSHUDQGR ± (MHPSORV /650(0B326 5&50(0B3$/ $ ❘ 'H VDOWR $IHFWDQDODHMHFXFLyQVHFXHQFLDOGHODVLQVWUXFFLRQHVGHO SURJUDPD,QFOX\HQIXQGDPHQWDOPHQWHLQVWUXFFLRQHVGHVDOWR\ ELIXUFDFLyQ\GHOODPDGDV\UHWRUQRVDVXEUXWLQDV3XHGHQVHU FRQGLFLRQDOHVRQR ± (MHPSORV $ -03(7,48(7$ &$//352& 5(7 ❘ 'H FRQWURO (QJOREDQODVLQVWUXFFLRQHVGHSHWLFLyQGHLQWHUUXSFLyQSDUD VLQFURQL]DFLyQFRQHOHPHQWRVH[WHUQRVFRSURFHVDGRUPDWHPiWLFRGH DFWLYDFLyQGHORVVHxDOL]DGRUHVIODJV(QJHQHUDOHVHOJUXSRPiV SDUWLFXODUGHODPiTXLQD Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 9 ,QVWUXFFLRQHVGHVDOWR ❚ ,QVWUXFFLRQHVGHVDOWRRGHUXSWXUDGHVHFXHQFLD ❙ (OXVRGHVXEUXWLQDVHVXQDWpFQLFDPX\LPSRUWDQWHHQHOGLVHxRGH VRIWZDUHSDUDVLVWHPDVFRQµSURFHVDGRUHV ❙ (MHPSORGHSURJUDPD + + + + ,1,&,2 $+ '+ + + /'$+ -03,1,&,2 67$+ &$//08/; + 08/; $+ %+ &+ + + + 386+$ 52/$ 323$ 5(7 9DORUHVGHO&3 &3$+(WLTXHWD,1,&,2 &3$+(WLTXHWD08/; &3+'LUHFFLyQGH5(72512 ❘ ¢ 'HGyQGHVDOHODGLUHFFLyQGHUHWRUQRHQHOSDVR"8VRGHOD3,/$ Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 10 2SHUDFLRQHVVREUHOD3LOD ❚ 7UDWDPLHQWRGHOD3,/$6WDFN ❙ 'HILQLFLyQ(VXQEXIIHUGHPHPRULDFRQVWLWXLGRSRUUHJLVWURVHQ FDVFDGDWLSR/,)2/DVW,QSXW)LUVW2XWSXW ❙ (O~QLFRUHJLVWURDFFHVLEOHHQXQPRPHQWRGDGRSDUDOHHURHVFULELU HVHO3XQWHURGHO6WDFN&DEHFHUDR&LPDGHO6WDFN ❙ 2SHUDFLRQHVVREUHODSLOD ❘ (VFULWXUD3XVK &RQWHQLGRGHFDGD XQRGHORVUHJLVWURVHVGHVSOD]DGR D ODVLJXLHQWHSRVLFLyQPiVEDMD &DEHFHUDGHO 6WDFN ❘ /HFWXUD3RS &RQWHQLGRGHFDGD XQRGHORVUHJLVWURVHVGHVSOD]DGR KDFLDODVLJXLHQWHSRVLFLyQPiVDOWD ❙ 6WDFNGHSURIXQGLGDGILMD\OLPLWDGD Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 3XVK 3RS 723 5HJLVWURVGH PHPRULD LQWHUQRVDO µ SURFHVDGRU %27720 11 ,PSOHPHQWDFLyQGHXQD3LODHQ0HPRULD ❚ ,PSOHPHQWDFLyQGHO6WDFNHQPHPRULD5$0H[WHUQD ❙ 1HFHVLGDGGHXQ3XQWHURGH3LOD6WDFN3RLQWHU LQWHUQRDO µSURFHVDGRUSDUDGLUHFFLRQDUOD&DEHFHUDGHOD3LOD ❙ /RQJLWXGGHO6WDFNYDULDEOH /'$+ ❙ (VFULWXUD3XVK'HFUHPHQWRGHO63 ❙ /HFWXUD3RS,QFUHPHQWRGHO63 ❘ eVWDVGRV~OWLPDVRSHUDFLRQHVVRQ JHVWLRQDGDVSRUOD8QLGDGGH&RQWURO ❙ ,QLFLDOL]DFLyQGHOiUHDGHPHPRULDSDUD HO6WDFN ❘ /'60(0/RDG 6WDFN3RLQWHU 0(0FRUUHVSRQGHUiFRQXQDSRVLFLyQDOWD GHODPHPRULD5$0 3& µSURFHVDGRU 63 Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 5$0 &DEHFHUDGHO 6WDFN 0(0 12 8VRGHOD3LOD$OPDFHQDPLHQWRGHGDWRV ❚ 8VRGHOD3LOD ❙ $UHDGHDOPDFHQDPLHQWRWHPSRUDOGHGDWRV ❘ ,QVWUXFFLyQ386+5 7UDQVILHUHHOFRQWHQLGRGHOUHJLVWUR5DODSRVLFLyQGHPHPRULD DSXQWDGDSRUHO6WDFN3RLQWHU ± 5!63 ± 63!63 ❘ ,QVWUXFFLyQ3235 7UDQVILHUHHOFRQWHQLGRGHODGLUHFFLyQGHPHPRULDDSXQWDGDSRUHO 6WDFN3RLQWHUDOUHJLVWUR5 ± 63!5 ± 63!63 Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 13 8VRGHOD3LOD/ODPDGDVDVXEUXWLQDV ❙ $UHDGHDOPDFHQDPLHQWRWHPSRUDOGHODVGLUHFFLRQHVGHUHWRUQRHQHO XVRGHODVVXEUXWLQDV ❘ ,QVWUXFFLyQ&$//68%5-6568%5 *XDUGDHQODSLODODGLUHFFLyQGHUHWRUQRGHODVXEUXWLQDRSHUDFLyQ 3XVKGHO3&&DUJDHO3&FRQORVE\WHV\GHODLQVWUXFFLyQ ± ± ± ± ± 3&/ !63 3&+ !63 63!63 OpCode Byte 2 Byte 3 E\WH!3&+ 6LHPSUHTXHHOFRQYHQLRGHDOPDFHQDPLHQWRVHD%LJ(QGLDQ E\WH!3&/ ❘ ,QVWUXFFLyQ5(7576 7UDQVILHUHHOFRQWURODODLQVWUXFFLyQTXHVLJXHDO&$//-65 UHFXSHUDQGRODGLUHFFLyQGHUHWRUQRGHVGHODSLOD ± 63!3&+ ± 63!3&/ ± 63!63 Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 14 (MHPSORGHPDQHMRGHOD3,/$ ❚ (MHPSORGHPDQHMRGHODSLOD + + + + ,1,&,2 $+ '+ + + /'$+ -03,1,&,2 67$+ &$//08/; + 08/; $+ %+ &+ + + + 386+$ 52/$ 323$ 5(7 (YROXFLyQGHOHVWDGRGHOD3LOD 63DQWHV 63GHVSXpV $ + ❚ 3RVLELOLGDGGHDQLGDPLHQWRGHVXEUXWLQDV ❚ /ODPDGDV\UHWRUQRVFRQGLFLRQDOHVDORVELWVGHOUHJLVWURGH HVWDGR Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 15 0RGRVGHGLUHFFLRQDPLHQWR, ❚ 0RGRVGHGLUHFFLRQDPLHQWRPiVFDUDFWHUtVWLFRV ❙ /DVLQVWUXFFLRQHVGLVSRQHQGHGLIHUHQWHVIRUPDVSDUDORFDOL]DUORV GDWRVFRQORVTXHGHEHRSHUDU(VWDVYDULDQWHVUHFLEHQHOQRPEUHGH 0RGRVGH'LUHFFLRQDPLHQWR ❘ ,QPHGLDWR (OGDWRHVWiFRQWHQLGRHQODLQVWUXFFLyQ (MHPSOR /'$ '( &' ❘ 'LUHFWR /DLQVWUXFFLyQFRQWLHQHODGLUHFFLyQGHOGDWR (MHPSOR /'$7$%/$ '( &' ❘ ,QGLUHFWR /DLQVWUXFFLyQFRQWLHQHXQDGLUHFFLyQGHXQSXQWHURDOGDWR (MHPSOR /'$>7$%/$@ '( >&'@ &3 $ + /'$ /'$ 7$%/$ /'$ >7$%/$@ 7$%/$ + + + + + + + + + $ Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador 7$%/$ + + + + + + + + )+ )+ $ 16 0RGRVGHGLUHFFLRQDPLHQWR,, ❘ 5HODWLYR /DLQVWUXFFLyQFRQWLHQHXQGHVSOD]DPLHQWRRIIVHWTXH VXPDGRDOFRQWDGRUGHSURJUDPDGDODGLUHFFLyQHIHFWLYD (MHPSOR %65/ '( &3&' ❘ ,QGH[DGR /DLQVWUXFFLyQFRQWLHQHXQYDORUTXHVXPDGRDOFRQWHQLGRGH XQUHJLVWURtQGLFHGHOD&38GDODGLUHFFLyQHIHFWLYD (MHPSOR /'$; '( ;&' ❘ ,QKHUHQWH (OFyGLJRGHRSHUDFLyQGHODLQVWUXFFLyQFRGLILFDODGLUHFFLyQ HIHFWLYD (MHPSOR 7$% 386+$ '( 63 &3 ; + + )+ %65 / /'$ ; /'$ >7$%/$@ 7$%/$ ()+ )+ )+ / )+ )+ )+ + + /'$ 7$% 386+$ ) Calculadoras 6º Eléctrico E.T.S.I.I. Introducción al Lenguaje Ensamblador $!% &3 17