Trabajo Resumen Capitulo 2 Computer organization & design

5
Presentación Introducción Los lenguajes de bajo nivel se podría definir como una traducción directa del código de máquina en esta parte podremos ver el conjunto de instrucciones de un ordenador real tanto en la forma escrita por los seres humanos como en la forma de lectura de un ordenador Se podría pensar que los lenguajes de los ordenadores serían tan diversas como las de los seres humanos, pero, en realidad, los lenguajes de programación son bastante similares (Éste código es interpretado por el microprocesador), para que pueda ser entendible por los seres humanos, por lo tanto es un lenguaje de bajo nivel. Este lenguaje permite una optimización que no se consigue con lenguajes de medio y alto nivel. Permite la creación de programas muy rápidos y muy pequeños, además se tiene un control que no se consigue con un lenguaje de alto nivel. Objetivos Objetivos Generales Entender el lenguaje del computador. Objetivos Específicos Entender la toma de desiciones de la computadora en el lenguaje mips. Comprender acerca de la modularización de hardware en la computadora por un lenguaje ensamblador. Contenido Introducción a la toma de decisiones Lo que distingue a un ordenador desde una simple calculadora es su capacidad de tomar decisiones. Con base en los datos de entrada y los valores creados durante el cálculo, diferentes instrucciones se ejecutan. La toma de decisiones está representado comúnmente en los lenguajes de programación utilizando la sentencia if, a veces combinado con las declaraciones y etiquetas. El lenguaje ensamblador MIPS incluye dos instrucciones de toma de decisiones, de forma similar a una sentencia “if”. La sentencia de control BEQ En base a los datos de entrada hace una toma de decisiones y esta comúnmente representado en los lenguajes de programación como la sentencia if. Y en el lenguaje MIPS con respecto a “c” se puede denotar así : Lenguaje c Lenguaje MIPS if (a==b) { … }; beq registro1, registro2, L1

description

Un resumen del segundo capitulo del libro Computer organization & design en español

Transcript of Trabajo Resumen Capitulo 2 Computer organization & design

  • PresentacinIntroduccin

    LoslenguajesdebajonivelsepodradefinircomounatraduccindirectadelcdigodemquinaenestapartepodremosverelconjuntodeinstruccionesdeunordenadorrealtantoenlaformaescritaporlossereshumanoscomoenlaformadelecturadeunordenadorSepodrapensarqueloslenguajesdelosordenadoresserantandiversascomolasdelossereshumanos,pero,enrealidad,loslenguajesdeprogramacinsonbastantesimilares(stecdigoesinterpretadoporelmicroprocesador),paraquepuedaserentendibleporlossereshumanos,porlotantoesunlenguajedebajonivel.Estelenguajepermiteunaoptimizacinquenoseconsigueconlenguajesdemedioyaltonivel.Permitelacreacindeprogramasmuyrpidosymuypequeos,ademssetieneuncontrolquenoseconsigueconunlenguajedealtonivel.Objetivos

    ObjetivosGeneralesEntenderellenguajedelcomputador.

    ObjetivosEspecficos Entenderlatomadedesicionesdelacomputadoraenellenguajemips. Comprenderacercadelamodularizacindehardwareenlacomputadorapor

    unlenguajeensamblador.

    ContenidoIntroduccinalatomadedecisionesLoquedistingueaunordenadordesdeunasimplecalculadoraessucapacidadde

    tomardecisiones.Conbaseenlosdatosdeentradaylosvalorescreadosduranteelclculo,diferentesinstruccionesseejecutan.Latomadedecisionesestrepresentadocomnmenteenloslenguajesdeprogramacinutilizandolasentenciaif,avecescombinadoconlasdeclaracionesyetiquetas.EllenguajeensambladorMIPSincluyedosinstruccionesdetomadedecisiones,deformasimilaraunasentenciaif.

    LasentenciadecontrolBEQEnbasealosdatosdeentradahaceunatomadedecisionesyestacomnmente

    representadoenloslenguajesdeprogramacincomolasentenciaif.YenellenguajeMIPSconrespectoacsepuededenotaras:

    Lenguajec LenguajeMIPS

    if(a==b){} beqregistro1,registro2,L1

  • beg:significaquesisoniguales,elflujodelprogramasaltaalainstruccinquecorrespondealaetiqueta(L1).

    SentenciadecontrolBNEEnestecaso,silovaloresdeambosregistrosnosoniguales,elprogramasaltaalainstruccinquecorrespondealaetiqueta.

    Lenguajec LenguajeMIPS

    if(a!=b){}elseifa!=b{}

    bneregistro1,registro2,L1

    EstasdosinstruccionessontradicionalmentellamadosRamascondicionales

    Estaexpresinsecomparaporlaigualdad,porloqueparecequenosgustarabeq.

    Engeneral,elcdigosermseficientesisepruebaparalacondicinopuesta.

    TerminandoelbucleIF

    Ahoratenemosqueiralafinaldelasentenciaif.Enesteejemploseintroduce

    otrotipoderama,amenudosellamaunaramaincondicional.Estainstruccindicequeelprocesadorsiempresiguelarama.Paradistinguirentresaltoscondicionaleseincondicionales,elnombredeMIPSparaestetipodeenseanzaeselsalto,abreviadocomoj(laetiquetaExit.sedefineacontinuacin).

    Ejemplo:CodificarenellenguajeMIPS

    Inta,b,c,i,jIf(i==j){a=b+c}else{a=bc}

    Enellenguajemipseria:

    bne$s3,$s4,SiNo#Sii!=jiraSiNoadd$s0,$s1,$s2#seevitasii!=jjFin#SaltaaFinSiNo:sub$s0,$s1,$s2#seejecutasii!=jFin:

  • Sentenciacase(variosifthenelse)Lamayoradeloslenguajesdeprogramacintienenunadeclaracindecasoouninterruptorquepermitealprogramadorparaseleccionarunadelasmuchasalternativasenfuncindeunsolovalor.Laformamssencilladeimplementarinterruptoresatravsdeunasecuenciadepruebascondicionales,convirtiendoladeclaracin"switch"enunacadenadeifthenelse.

    SoporteyprocedimientosenelhardwaredelacomputadoraUn procedimiento o funcin es una herramienta que usan los programadores, que permite queseamssimpledeentenderelcdigoascomopermitirqueseareutilizable.Permite al programador concentrarse en slo una parte de la tarea, pasndole valores a ser procesadosydevolviendoresultados.Similar a la ejecucin de un programa, un procedimiento debe seguir los siguientes seis pasos:

    Coloque los parmetros en un lugar donde el procedimiento puede tener acceso a ellos.

    Transfiereelcontrolalprocedimiento. Adquierelosrecursosdealmacenamientoquerequiere. Realizalatareadeseada Coloca el valor del resultado en un lugar donde el programa que llam pueda

    accederal. Control de llegada al punto de origen, ya que un procedimiento puede llamarse

    desdediversoslugares.UsodelosregistrosSoftwareMIPSLos registros son el lugar ms rpido para mantener los datos de un ordenador disponibles. El software MIPS sigue la siguiente convencin en la asignacin de los 32 registros que usa paraunallamadaalprocedimiento.

    v$a0$a3:Cuatroregistrosdeargumentoparaenviarlosparmetros v$v0$v1:Dosregistrosdevalorparadevolvervalores(Resultados) v$ ra : Un registro de la direccin de retorno para volver al punto del cual fue

    llamado.Adems de los registros el lenguaje ensamblador MIPS incluye una instruccin slo para los procedimientos en el cual salta a una direccin y simultneamente guarda la direccin de la siguienteinstruccinenelRegistro$ra.(InstruccinJal/JumpandLink)La direccin de llamada al procedimiento es guardada en el registro $ra el cual se conoce como Return Address. El Return Address es necesario porque los procedimientos pueden serllamadosdesdecualquierpartedelprograma.

  • Adems del Return Address hay la necesidad de tener un registro para guardar la direccin de la instruccin actual que ha sido ejecutada. Por razones histricas este registro fue llamado Program Counter (PC) en la arquitectura del MIPS. La instruccin Jal guarda el PC+4 en el registro $ra para vincular con la siguiente instruccin de retornar del procedimiento.Por dicha situacin MIPS usa una instruccin Jump Register mediante un salto incondicional aladireccinespecificadaenelregistro.LainstruccinJumpRegistersaltaaladireccinquefueguardadaenelregistro$ra.ConclusionesLenguajedelaElaboracindelordenador:

    Creacindelasconstantesde32bitsnecesitaatencin.Eladdinstruccincopiaelbitmsalaizquierdadelcampoinmediatode16bitsdelainstruccinenlos16bitssuperioresdeunpalabra.LgicaoinmediatadelaSeccin2.5delascargas0senlos16bitssuperioresyhencesonutilizadosporelensambladorenconjuntoconluicrear32bitsconstantes.HardwareSoftwareInterfazOelcompiladoroensambladordeberompergrandesconstantesenpedazosydentrodelensamblajeellasenunregistro.

    Comoeradeesperar,eltamaorestriccindelcampoinmediatopuedeserunproblemaparalasdireccionesdememoriaenlascargasytiendas,ascomoparalasconstantesenlasinstruccionesinmediatas.Siestetrabajorecaeenelensamblador,comolohaceparaelsoftwaredeMIPS,entonceselensambladordebetenerunregistrotemporaldisponibleenelquecrearlosvaloreslargos.Estaesunaraznparaelregistro$a,queestreservadoparaelensamblador.

    AunqueguardemostodalasinstruccionesMIPSdelongitudde32bitssimplificadosenelhardware,Existenalgunostiemposdondeestoseraconvenientetener32bitsconstanteso32bitsdireccionados.

    Estaseccincomienzaconlasolucingeneralparaconstanteslargas,yassemuestralaoptimizacindelasinstruccionesdireccionadasusadasenramasysaltos.

    OperadoresInmediatosde32bits.Aunquelasconstantessonfrecuentementecortasyencajandentrodeuncampode16bits,algunasvecessondemasiadograndes.LasinstruccionesMIPSincluyenunsetde

  • instruccionesabiertasinmediatas(lui),especficamenteparaponerenlapartesuperiordelcampodelos16bits,deunaconstanteenunregistro,permitiendounainstruccinsubsecuenteespecificadabajade16bitscomoconstante.Enlasiguientefigurasemuestralaoperacinlui:Versindelamquina,usandolui$t0conundecimal255convertidoabinario:AbajoV

    Contenidosdelregistro$t0despusdeejecutarlalui$t0.255:Arriba^InterfacesdelHardwareydelSoftware:Cualquieradelosdos,seacompiladoroensamblador,debenromperlasconstanteslargasenpiezasyreensamblarlasdentrodeunregistro.Comosepodraesperar,loscamposinmediatamenterestringiblespuedengenerarproblemasdeaccesoalamemoriaalserabiertos,ysemuestraascomoparaconstanteseninstruccionesinmediatas.Situtrabajotegenerafallasenelensamblador,comoesparaunsoftwareMIPS,entonceselensambladordebetenerunregistrotemporalhabilitado,locualcreavaloresdelongitud.Estaeslaraznparaelregistro$at,elcualestreservadoparaelensamblador.