====== Computador CESAR16 e CESAR16i ====== O computador CESAR existe em duas versões: CESAR16 e CESAR16i. A versão CESAR16i é totalmente código compatível com o CESAR16. Além disso, na sua última versão, incorpora: * um terceiro periférico (//timer//) * um mecanismo para reconhecimento de interrupções de //timer// e teclado * uma instrução RTI - //ReTurn from Interrupt// O CESAR16i incorpora um conjunto de registradores mapeados na memória, necessários para gerenciar o mecanismo de interrupção. Esses registradores são os seguintes: * TIMDT - //TIMer DaTa//: um byte usado para configurar a periodicidade de interrupção do //timer//, em //milisegundos// * INTS - //INTerrupt Status//: um byte que informa qual o periférico solicitou a interrupção * INTE - //INTerrupt Enable//: um byte que é usado para controlar, em geral, a habilitação das interrupções e para habilitar cada uma delas individualmente * IVET - //Interrupt VEcTor//: dois bytes onde deve-se escrever o endereço da ISR - //Interrupt Service Routine//. Informações sobre os mecanismos de interrupção (em geral) assim como os mecanismos de interrupção presentes no CESAR16i, estão disponíveis {{wiki;cesar;interrupcoes.pdf|aqui}}. ==== Principais Características do CESAR16 ==== * Largura de dados e de endereços de 16 bits * Dados representados em complemento de dois * Processamento de pilha * 8 modos de endereçamento nativos + 4 modos de endereçamento derivados * 8 registradores de 16 bits * 6 registradores de uso geral * 1 apontador de programa (//program counter//) * 1 apontador de pilha (//stack pointer//) * 1 registrador de estado com 4 códigos de condição: negativo, zero, carry e overflow * 2 periféricos: teclado e visor de 26 caracteres * [[inscesar|Conjunto de Instruções do CESAR16]] ==== Ferramentas ==== === Última Versão CESAR16i=== * {{wcesar16.1.3.5.2.exe.zip|Simulador do CESAR16i - Vers. 1.3.5.2 - Maio/2017}} * Interrupções de TIMER com resolução de 1ms === Última Versão CESAR16 (versão sem novas atualizações) === * {{wcesar16.zip|Simulador do CESAR16 - Vers. 1.3.0 - Out/2014}} === Montador === * [[daedalus|Montador DAEDALUS]] ==== Projetos de Programação (CESAR16) ==== * {{wiki;trab;cesar;2001-1-Calculadora.pdf|Implementação de uma calculadora com operações básicas}} * {{wiki;trab;cesar;2002-2-Biblioteca de funcoes aritmeticas.pdf|Implementação de uma biblioteca de funcoes aritméticas}} * {{wiki;trab;cesar;2005-1-Conversor de bases.pdf|Conversor de bases}} * {{wiki;trab;cesar;2006-1-Interseccao de retangulos.pdf|Cálculo do retângulo de intersecção entre dois outros retângulas}} * {{wiki;trab;cesar;2007-2-Labirinto.pdf|Encontre a saída de um labirinto}} * {{wiki;trab;cesar;2008-2-Numero de Cartao de Credito.pdf|Determine se um número de cartão de crédito é válido}} * {{wiki;trab;cesar;2013-1-Aguas descendo um rio.pdf|Simulação do fluxo das águas de um rio}} * {{wiki;trab;cesar;2013-2-Cifragem de Affine.pdf|Aplicação da cifragem de Affine}} * {{wiki;trab;cesar;2015-1-Contagem pecas e estantes.pdf|Contagem do número de peças em um estoque}} ==== Projetos de Programação, envolvendo interrupções (CESAR16i) ==== == Controle de Movimentação de Sonda Espacial (2017/1) == * {{wiki;trab;cesar16i;2017-1-isr.pdf|Rotina de Tratamento de Interrupção}} * {{wiki;trab;cesar16i;2017-1-pp.pdf|Programa Principal}} ==== Referências ==== WEBER, R. F. Fundamentos de arquitetura de computadores. 4. ed. Porto Alegre: Bookman, 2012. 424 p. (Série Livros Didáticos Informática UFRGS, v. 8).