Você está na página 1de 6

Lista para Estudar 1. Desenhe o diagrama do MARIE, explique seu funcionamento e mostre seu repertrio de instrues. 2.

Defina interrupo, trap e exceo, dando exemplos. 3. Explique como funciona chamada de subrotinas no MARIE, dando exemplos. 4. Descreva um problema, gere um algoritmo e monte um programa comentado para o MARIE. discuta a questo de absoluto/relocvel e o nmero de passos da traduo. 5. Explique como algumas macroinstrues podem ser implementadas no MARIE (multiplicao, diviso, acesso e vetores). 6. Analise o conjunto de instrues e os modos de endereamento do MARIE, classificando. 7. Explique o ciclo de vida e o que acontece com um programa, desde sua concepo at o trmino de sua execuo.

Repertorio de Instrues
ADD X SUBT X HALT SKIPCOND INPUT OUTPUT ADDI x 000 400 800 LOAD X STORE X JUMP X JUMPI X JNS X CLEAR

Interrupo
um mecanismo pelo qual outros mdulos podem interromper a seqncia normal de processamento. Tipos de Interrupo Trap (armadilha) Sncrono Intencional Gerado por um programa, para acionar alguma rotina de manipulao especial

Exemplo: Exceo Sncrono No intencional Gerado durante a execuo de um programa, para tratar situaes inesperadas Breakpoint de debug de programa Chama de sistema

Exemplo: Estouro de pilha Overflow aritmtica Diviso por zero Falha de execuo

Interrupo de Hardware Assncrono Gerado durante um evento externo

Exemplo: 3 Quando se tem no programa a instruo JnS X, significa que X uma subrotina onde ser executada alguma operao e onde ser armazenado o valor do contador de programa incrementado de 1, para poder voltar para a instruo que est abaixo do JnS X. Apos efetuada a operao na subrotina X, ter uma instruo chamada JUMPI X, que pula indiretamente para o X, buscando o valor do contador de programa, que indica a instruo que o programa deve voltar Reset Interrupo do relgio para alternncia de uso de CPU

4 Criar um programa para resolver a seguinte equao

Algoritmo Entrar com valor de X Repita o passo abaixo 3 veses e imprima na tela Somar X

Programa INPUT STORE X CLEAR ADD X ADD X ADD X STORE X OUTPUT HALT X, DEC 0 // ENTRA COM VALOR // SALVA VALOR NA VARIAVEL X // LIMPA ACUMULADOR ///////////////// // MULTIPLICA COM SOMAS SUCESSIVAS ///////////////// // SALVA O VALOR EM X // IMPRIME NA TELA // PARA PROGRAMA

Quando o programa absoluto na primeira leitura do cdigo (nvel 1) ele consegue acessar todos os valores que precisa, pois o endereo exato esta contido na instruo. Exemplo: ADD 9 O programa vai ter que apenas buscar o valor no endereo 9. Quando o programa relocvel, na primeira leitura criado uma tabela de smbolos, contendo quais variveis so usadas e em quais posies do cdigo elas esto. Na segunda leitura o programa substitui a varivel pelo endereo exato e este passa a funcionar igual ao absoluto. Exemplo: STORE x HALT x, dec 0 --> supondo que esteja na linha 353 No primeiro nvel de traduo o programa vai ser transformado para: ADD 353 HALT x, dec 0 No segundo nvel de traduo o programa j consegue acessar todos os dados diretamente pelo endereo.

5 Como no h macroinstrues prontas para serem usadas no MARIE, elas devem ser implementadas. Por exemplo uma macroinstruao para multplicaao:
INPUT STORE X INPUT STORE Y CLEAR // teste se for zero LOAD X SKIPCOND 400 JUMP A1 JUMP I A1, LOAD Y SKIPCOND 400 JUMP A2 JUMP I // fim teste zero // teste negativo A2, LOAD X SKIPCOND 000 JUMP A3 JUMP A4 A3, LOAD Y SKIPCOND 000 JUMP A5 JUMP A6 A4, LOAD Z1 SUBT X STORE X LOAD CN ADD A STORE CN JUMP A3 A6, LOAD Z1 SUBT Y STORE Y LOAD CN1 ADD A STORE CN1 JUMP A5 // fim teste negativo // comea o teste de quem menor A5, LOAD X SUBT Y SKIPCOND 800 JUMP B LOAD Y STORE C CLEAR JUMP E B, LOAD X STORE C H, LOAD Z E, ADD X STORE Z LOAD C SUBT A STORE C SKIPCOND 400 JUMP H CLEAR LOAD CN SKIPCOND 800 JUMP S1 LOAD Z1 SUBT Z STORE Z S1, CLEAR LOAD CN1 SKIPCOND 800 JUMP K LOAD Z1 SUBT Z JUMP W I, LOAD Z1 JUMP W K, LOAD Z W, OUTPUT LOAD CN CLEAR STORE CN LOAD CN1 CLEAR STORE CN1 HALT X, DEC 0 Y, DEC 0 Z, DEC 0 A, DEC 1 C, DEC 0 Z1, DEC 0 CN1, DEC 0 CN, DEC 0 LOAD Y STORE X CLEAR JUMP E // fim do teste de quem menor

6 Endereamento Direto O campo do endereo contem o endereo do operando. ADD X SUBT X LOAD X STORE X Endereamento Indireto O campo de endereo aponta para uma posio da memria que contem o endereo do operando JUMPI X ADDI X Endereamento por Deslocamento Endereamento relativo: O operando se encontra deslocado do valor indicado no campo de endereo do instruo com relao ao endereo apontado por PC(contador de programa) JnS X JUMP X 7 Ciclo de vida de um software

Este modelo foi inicialmente apresentado por W.W. Royce em 1970, mas a verso mais conhecida deve-se a B. Boehm em 1976.

Estas etapas so: 1. Anlise de Requisitos (especificao de tarefas) O resultado desta anlise deve descrever de forma clara as funcionalidades do software, dados e informaes a utilizar, resultados esperados, eficincia, etc. Nesta etapa, so definidos de forma formal quais os dados e ficheiros que devem existir, qual a relao entre estes, quais as funcionalidade do programa e relao entre estas. 2. Concepo (desenho) O processo de concepo define as caractersticas do software, nomeadamente: Estruturas de dados necessrias Detalhes dos procedimentos 3. Implementao (Codificao) A codificao, nesta etapa, o processo de traduo dos documentos das fases anteriores para cdigo. 4. Testes Os testes ao software so um elemento crtico para assegurar a qualidade do programa. Nesta fase, deve-se analisar os seguintes pontos: analisar se estamos a desenvolver o produto corretamente analisar se estamos a desenvolver o produto desejado

NOTA: Os testes no podem provar a ausncia de defeitos, apenas podem mostrar a existncia de defeitos 5. Manuteno O processo de alterao do software desenvolvido pode ser devido a: erros encontrados requisitos do cliente adaptaes devidas ao ambiente externo (ex. Mudana de Sistema Operativo). 6. Obsoleto Com o decorrer do tempo, quase todos os programas ficam obsoletos, contudo estes no so atirados pela janela fora, sendo estes muitas vezes incorporados em aplicaes de maior dimenso. Os pequenos programas, regra geral, se no forem eficientes, tornam -se rapidamente obsoletos. Nos programas de grande dimenso, regra geral, o tempo de vida do software grande, por forma a poder retornar o grande investimento que foi necessrio sua implementao.

Agradecimentos h: Aldede Brasil que me ajudo com a maior parte do contedo Iago Felicio Dornelas com a parte do programa absoluto/relocavel e traduao

Você também pode gostar