Objetivos / Competências
Pretende-se que os alunos adquiram os conceitos fundamentais relativos: <br />
-à organização e estrutura interna de um computador;<br />
-à constituição interna de um processador;<br />
-ao interface do processador com os restantes componentes de um computador;<br />
-à representação interna de dados num computador;<br />
-à metodologia de programação em linguagem Assembly. <br />
-à programação de circuitos periféricos especializados.<br />
Para exemplificação dos conceitos fundamentais são analisados sistemas computacionais baseados no CPU 8086 (16bits).<br />
Conteúdos programáticos resumidos
Representação dos dados:Tipo de dados: Propriedades - domínio, precisão e operações,Codificação e representação interna dos dados: Código binário natural; Sinal e valor absoluto; Complemento para 1; Complemento para 2; Código ASCII; Alternativas na representação de valores lógicos.Transbordo, Aumento de precisão.
Organização dum computador por níveis virtuais de utilização:Aplicação, linguagens de alto nível, assembly, sistema operativo e código máquina. Mecanismos de conversão entre níveis de utilização - compilação e interpretação.
Organização funcional de um computador:Unidade Central de Processamento (CPU), memória e unidades de I/O, Bus de dados, bus de endereços e bus de controlo - capacidade de endereçamento.
Análise do conjunto de instruções do CPU;Operações com dados;Controlo de execução;Manipulação de tipos estruturados de informação;Suporte à programação estruturada;Mecanismos de interrupção do CPU;Programação e controlo de unidades de I/O.
Metodologias de ensino e critérios de avaliação
As aulas teóricas serão orientadas para a exposição de conteúdos e complementadas, sempre que possível, com problemas de natureza prática que promovam e suscitem a discussão colectiva. Nas aulas teórico-práticas serão realizadas fichas de trabalho (orientadas para o estudo de casos) em ambiente de laboratório, que visam consolidar os conceitos ministrados na teórica. Serão, ainda, sugeridos outros trabalhos práticos a desenvolver fora do período lectivo, particularmente nas horas de tutoria previstas para o efeito. Nas aulas teórico-práticas serão utilizados ambientes de desenvolvimento adequados à programação em linguagem Assembly.
A classificação final é obtida pela média ponderada da avaliação teórico-prática e avaliação prática. A avaliação teórico-prática tem por base a realização de um teste escrito que contribui com 60% (12/20) para a classificação final.A avaliação prática consiste na realização de trabalhos práticos e mini-testes e contribui com 80%(8/20) para a class.final.
Bibliografia resumida
-The 8086 Book; Russel Rector, Gorge Alexy; Osborne/Mc-Graw Hill.
-The Intel microprocessors 8086/8088, 80286, 80386 and 80486 - Architecture, Programming and -Interfacing; Barry B. Brey; Prentice Hall.
-The 8086/8088 Family - Design, Programming and Interfacing; John Uffenbeck; Prentice Hall
-The Art of Assembly Language Programming; Randall Hyde.
-The 80x86 IBM PC and Compatible Computers (Volume I & II) Assembly Language, Design and Interfacing; Muhammad Ali Mazidi; Prentice-Hall
-Logic And Computer Design Fundamentals; M. Morris Mano, Charles R. Kime; Addison-Wesley
-Computer Architecture and Design; A.J. van de Goor; Addison-Wesley
-Computer Organization and Architecture; William Stallings; Prentice Hall
-Structured Computer Organization; Andrew S. Tanenbaum; Prentice Hall – International Editions
-The Indispensable PC Hardware Book; Hans-Peter Messmer; Addison-Wesley
-IBM PC Assembly Language And Programming, Peter Abel
-Computer Engineering – Hardware Design, M. Morris Mano