Arquitetura de Computadores

Documentos relacionados
Introdução à Arquitetura de Computadores

Sistemas Digitais LETI, LEE (2014/15 1º Sem.)

Sistemas Digitais LETI, LEE (2016/17 1º Sem.)

Introdução à Arquitetura de Computadores

Projecto de Arquitectura de Computadores Jogo Cobra

Projecto de Algoritmos e Estruturas de Dados

MICROPROCESSADORES. Unidade de Entrada/Saída (I/O) Nuno Cavaco Gomes Horta. Universidade Técnica de Lisboa / Instituto Superior Técnico

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 02: DISPLAY DE 7 SEGMENTOS MICROCONTROLADO

Portal Cliente MYG SYSTEM

Sistemas Digitais. Prof.Doutor Victor Lobo. Preparação básica necessária à compreensão de:

Arquitectura de Computadores

INSTRUÇÃO DE FUNCIONAMENTO COM EQUIPAMENTO ELETRÓNICO

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

GESTÃO DE TURMAS. Índice. I Como posso promover a aprendizagem autónoma dos meus alunos através da plataforma? 05

Arquitectura de Computadores MEEC (2013/14 2º Sem.)

Arquitectura de Computadores MEEC (2013/14 2º Sem.)

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

INF Fundamentos de Computação Gráfica /1

Manual de Utilizador do Backoffice

Trabalho de Programação 2 Processador CESAR

SISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2013/2014 Trabalho 5 Circuitos Sequenciais Síncronos

TÉCNICAS DE PROGRAMAÇÃO II TRABALHO 2

CENTRAL DE INCÊNDIO ENDEREÇÁVEL

Explorador do Windows (manipulação de ficheiros)

AGRUPAMENTO DE ESCOLAS DE ANTÓNIO FEIJÓ

INICIAÇÃO AO EXCEL Renato Albuquerque abril de 2016

ARQUITECTURA DE COMPUTADORES 2013/2014 2º SEMESTRE

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES. Prof. Dr. Daniel Caetano

MANUAL DO UTILIZADOR DO SFA2/DAV - OPERADORES

Programação 2017/2018 2º Semestre

INSTRUÇÃO DE FUNCIONAMENTO COM EQUIPAMENTO ELECTRÓNICO

Procalc v1.0. Versão Utilizador (Manual de Utilizador)

3 Cabeçalho/ logótipo 4 Menu principal 5 Autenticação

SISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2013/2014 Trabalho 2 Circuitos Combinatórios Típicos

MANUAL DE INSTRUÇÕES RELÓGIO MORMAII DIGITAL YP9458

AUTOMAÇÃO INDUSTRIAL

FORMAÇÃO DE MICROSOFT WORD Mário de Almeida Pedro, M. Sc. Janeiro 2014

SISTEMAS DIGITAIS (SD)

MANUAL DE MICROSOFT EXCEL 2003 Sem bichos de sete cabeças

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Apresentação. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica

Manual de Apoio. Inscrição no Internato Médico. Concurso IM Departamento de Recursos Humanos Manual de Apoio Inscrição no Internato Médico

Botão A Coloca os dígitos em modo de acerto, seleciona a função 12/24h e zera o cronógrafo. Botão B Seleciona os modos e os dígitos para acerto

Fundamentos de Programação

ARQUITECTURA DE COMPUTADORES

Manual de Utilizador. Documento de Apoio. (Versão Janeiro 2019)

FTC2E - IP GATEWAY MANUAL DE UTILIZADOR 2014

MANUAL MORMAII REF. M882AA

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

SISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2015/2016 Trabalho 3 Circuitos Combinatórios Típicos

Base de Dados de Gestão de Anilhagem e Recapturas Manual do Utilizador

Organização e Arquitetura de Computadores I

MANUAL DE INSTRUÇÕES RELÓGIO TOUCH- TWYP8412

Iniciação à Informática

20 Escola Digital Manual do Utilizador Aluno

Álgebra Booleana: Axiomas, Teoremas e Leis de De Morgan

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

HANDS-ON PROGRAMAÇÃO DE JOGOS PARA CRIANÇAS

MANUAL PARA ACTUALIZAÇÃO DA VERSÃO DE FIRMWARE

Sistemas de Entrada e Saídas

Conselho Regional do Norte Câmara dos Solicitadores. Plataforma Moodle de apoio aos Estágios Introdução

PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010

Dr. Joaquim de Carvalho

Unidade 4: Conversões e Cálculos em Outras Bases Prof. Daniel Caetano

Introdução à Arquitetura de Computadores

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

ENSINO MÉDIO INTEGRADO INFORMÁTICA LINGUAGEM DE PROGRAMAÇÃO Trabalho Semestral

Parte 1 Cena Simples Interativa com Câmara Fixa

Escola Secundária c/ 3º Ciclo de Ferreira Dias. CURSOS PROFISSIONAIS Ano Letivo 2012 / 2013 Access Atividade 3

Portal CAUL. Manual de Utilizador. Certificado de Autorização de Utilização de Lote. Versão 1.0 Página 1 de 39

Manual do Utilizador Brother Meter Read Tool

Transcrição:

Arquitetura de Computadores 4º Trabalho de Laboratório Programação Assembly Objetivo: Pretende-se que os alunos compreendam a metodologia usada no desenvolvimento de programas em assembly, incluindo o uso de periféricos e de rotinas de interrupção. A programação será desenvolvida para o processador P3, sendo utilizado um assemblador e um simulador disponibilizados para o efeito. O trabalho terá a duração de duas semanas, devendo o projeto ser demonstrado na aula na segunda semana do laboratório. O relatório final será entregue até à sexta-feira da segunda semana de laboratório, ou seja, até dia 27 de Maio, via Fénix. O trabalho deverá ser preparado fora do horário de laboratório, destinando-se as 3 horas de aula à resolução de eventuais dúvidas e demonstração do trabalho realizado. 1 JOGO SPACE INAVADERS Pretende-se implementar neste trabalho uma versão simplificada do jogo clássico da space invaders. Pode ver o jogo no link: http://www.pacxon4u.com/space-invaders/ É um jogo em que o objetivo é impedir que uma raça de alienígenas chegue à terra. Na nossa versão simplificada, os alienígenas vão se deslocando progressivamente para baixo em direção à terra. Em baixo, na terra, encontra-se um veículo que se desloca para a esquerda e para a direita e dispara raios lasers que destroem os alienígenas, impedindo que estes cheguem à terra. O jogo termina quando um alienígena chegar à terra ou chocar com o veículo. 2 IMPLEMENTAÇÃO DO JOGO O jogo deve iniciar-se surgindo no ecrã a mensagem: Prima I0 para iniciar o jogo, ao que o jogo deverá ficar parado, esperando que o utilizador pressione o botão de pressão I0. Quando o botão for pressionado o jogo deve se iniciar. 2.1 Espaço de jogo O espaço de jogo consiste em toda a janela de texto. Este deve estar limitado horizontalmente por duas paredes formadas pelo caracter - e verticalmente por duas paredes formadas pele carater, tal como representada na Ilustração 1. 1

2 Ilustração 1 Espaço de jogo 2.2 Alienígenas Os alienígenas são formados pelos carateres OVO e estão espalhados pelo espaço de jogo tal como indicado na Ilustração 1. São um total de 28 alienígenas em quatro linhas, 7 alienígenas por linha. As linhas estão separadas por 2 linhas e os alienígenas estão separados por 3 espaços. Os alienígenas movimentam-se sempre em conjunto. Inicialmente deslocam-se da esquerda para a direita até chegarem ao fim do ecrã. Ao atingirem o fim do ecrã deslocam-se uma linha para baixo. Depois deslocam-se para esquerda até atingirem o fim do ecrã. De seguida deslocam-se novamente uma linha para baixo e voltam a deslocar-se para a direita, e assim sucessivamente. O movimento deve ser temporizado pelo timer do P3, nomeadamente os alienígenas devem se deslocar um carater em cada décima de segundo. No entanto quando o interruptor 7, o mais a esquerda, estiver ligado o jogo deve entrar num modo ultra rápido em que os alienígenas se deslocam à velocidade máxima, sem serem controlados pelo timer. Este modo destina-se a facilitar a avaliação de forma a precipitar o fim de jogo. Sempre um alienígena for atingido por um raio deve ser removido do ecrã e não volta a aparecer até que ao reinício do jogo. 2.3 Veiculo O veículo é formado pelos caracteres O-^-O. Este deve-se deslocar para a esquerda e para a direita sempre que forem pressionadas as teclas a e d respetivamente. Além disso deve disparar um raio sempre que for pressionada a tecla espaço. O veículo deve se encontra na penúltima linha do espaço de jogo tal como indicado na Ilustração 1 e nunca deve sair do espaço de jogo. O movimento do veículo não deve estar associado ao timer mas apenas ao pressionar das teclas. 2.4 Raios Sempre que for pressionada a tecla espaço o veículo emite um raio laser que parte do centro veículo e desloca verticalmente para cima em direção aos alienígenas. Se o raio atingir um alienígena este deve ser removido do espaço de jogo. O raio deve se propagar a uma velocidade infinita, mas deve

ser visível no ecrã. Assim este deve permanecer no ecrã durante um pouco mais de duas décimas de segundo devendo este tempo ser controlado usando o timer. No ecrã deve surgir uma linha vertical formada pelos carateres * que vai desde centro do veículo até ao alienígena atingido ou até ao fim do espaço de jogo. Para simplificar a implementação deve parar o resto do jogo enquanto o raio é visualizado. 2.5 Fim do jogo Se um alienígena chegar à terra, ou seja á parte de baixo do ecrã, ou se colidir com o veículo, então o jogador perde e o jogo termina. Deverá ser impressa na janela de texto a mensagem: Perdeu!. O joga também termina se o jogador eliminar todos os alienígenas mas neste caso o jogador sai vitorioso e deve ser impressa na janela de texto a mensagem: Ganhou!. Em ambos os casos deve também aparecer a mensagem Prima I0 para reiniciar o jogo. O programa deve então ficar parado à espera que seja pressionado o I0 e deverá reiniciar o jogo quando I0 for pressionado. 2.6 Pontuação O jogador ganha 5 pontos sempre que destruir um alienígena, e a pontuação atual deve aparecer no LCD. 3 JANELA DA PLACA A Janela da placa está representada na Ilustração 2. Os periféricos da placa têm diferentes funções definidas de seguida. Ilustração 2 Janela da placa Display LCD No display LCD deve estar indicada a pontuação atual do jogador, na forma: Pontuacao: valor LEDs Os LEDs devem se acender momentaneamente sempre que é disparado um raio. 3

Display 7 Segmentos No display de sete segmentos deve estar representado o tempo decorrido desde o início do jogo em minutos e segundos. Botões de pressão O botão de pressão IA deve colocar o jogo em modo de pausa. Pressionando novamente o botão retira o jogo do modo de pausa. Todas as questões adicionais, sobre o funcionamento e implementação do jogo, não definidas no enunciado ficam ao critério de cada grupo. 4 IMPLEMENTAÇÃO EM ASSEMBLER Faça uso de variáveis globais para guardar dados que são utilizados ao longo de todo o programa como por exemplo a posição do veículo ou a pontuação, e utilize os registos para guardar apenas valores temporários em diferentes locais do programa. Faça código comentado e estruturado. Como estrutura de dados para guardar quais os alienígenas que se encontram no ecrã pode usar uma matriz formada por 4 vetores de 7 elementos, preenchida com 0 ou 1 de acordo com a presença ou não do alienígena no ecrã. Utilize o número de linha e de coluna para aceder à matriz, nomeadamente pode ler o elemento na linha l coluna c deve aceder à posição de memória, MATRIZ + l * 7 + c em que MATRIZ é o endereço de memória em que se encontra a matriz. Faça rotinas de interrupção pequenas. Existem no programa diferentes sistemas que funcionam a diferentes velocidades, nomeadamente o movimento dos alienígenas do veículo e o relógio com o tempo decorrido. Para implementar estes sistemas pode utilizar a seguinte técnica. Crie um loop que durante o jogo fica continuamente à espera pelos diferentes eventos e chama a rotina correspondente sempre que estes acontecem. Nomeadamente considere o seguinte pseudo-código: LOOP: Se houve uma interrupção do timer então chama a rotina move alienígenas Se houve uma interrupção do timer então incremente décimas de segundo Se passou um segundo então chama a rotina atualiza relógio Se há uma tecla pressionada então chama a rotina veiculo Enquanto não terminar o jogo volta para LOOP Nos diferentes periféricos vão necessitar de converter números inteiros para decimal e posteriormente para ASCII. A conversão para decimal deve ser efetuada por divisões sucessivas por 10, onde o resto é o dígito decimal que se vai retirando. Para converter para ASCII basta somar 0 ou 48 ao dígito decimal. 5 FASEAMENTO O trabalho decorrerá durante duas semanas, devendo ser discutido e apresentado na 2ª aula de laboratório. O trabalho deverá ser planeado e desenvolvido, tanto quanto possível, fora do horário de laboratório, sendo impossível realiza-lo sem qualquer preparação prévia e apenas durante as 3 horas de laboratório. 4

5 MEEC Mestrado Integrado em Engenharia Electrótecnica e de Computadores Na 1ª aula de laboratório devem ser tiradas todas e quaisquer dúvidas sobre o projeto. No 2º laboratório apenas será efetuada a visualização dos projetos, pelo que este deve estar terminado, não sendo permitidas melhoramentos no projeto depois da aula, mas apenas a conclusão do relatório e da documentação/comentários ao código. Por fim, essencial a consulta do texto Manual do Simulador do Processador P3, e aconselha-se o estudo do programa de demonstração disponibilizado. Este material está disponível na página da cadeira. 6 RELATÓRIO O relatório e o código comentado devem ser entregues via Fénix até à sexta-feira da 2ª semana do laboratório, ou seja até às 23h59 do dia 27 de Maio. Entregas fora de prazo devem ser submetidas por email para o docente responsável pelo laboratório, que decidirá sobre a penalização a aplicar. O relatório (não incluindo o código e a capa) não deve exceder as 3 páginas. O relatório deve ser fornecido no formato.pdf e o código em formato de texto,.as e em formato.pdf, tudo num ficheiro zip submetido via Fénix. Caso sejam submetidos múltiplos ficheiros, apenas será tomado em consideração o último ficheiro submetido. 7 AVALIAÇÃO O trabalho será avaliado da seguinte forma: 1. Relatório a entregar via Fénix (4 valores), que consiste no seguinte: Fluxograma simplificado com a estrutura do programa desenvolvido. (1 val.); Listagem do código DEVIDAMENTE COMENTADO, onde serão avaliados a qualidade do código (estruturação, eficiência dos algoritmos, etc.) e a qualidade dos comentários; (3 val.); 2. Funcionamento do programa (16 valores), avaliado nos seguintes pontos: Tempo no DISPLAY 7 Segmentos (1 val.) Pontuação do LCD (1 val.) LEDs acendem com raio (1 val.) Inico de jogo com o I0 (1 val.) Pausa com botão de pressão IA (1 val.) Reinício de jogo (1 val.) Modo ultra rápido (sem timer) (1 val.) Representação estática do jogo (2 val.) Movimento dos alienígenas (2 val.) Movimento do veículo (1 val.) Disparo de raios (1 val.) Destruição de alienígenas (1 val.) Deteção de colisão alienígenas-veiculo (1 val.) Fim jogo (1 val.) 8 BIBLIOGRAFIA [1] N. Horta, Arquitetura de Computadores, Aulas Teóricas.

[2] M. Morris Mano, Charles R. Kime, Logic and Computer Design Fundamentals, 4th Edition Updated, Prentice-Hall International, 2008. [3] G. Arroz, J. Monteiro, A. Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, IST Press, 2007. [4] G. Arroz, J.C. Monteiro, A. Oliveira, Manual do Simulador do P3, IST, 2005 6