Existem três formas básicas de efectuar operações de entrada/saída:

Documentos relacionados
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

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

Prof. Adilson Gonzaga

No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).

Dispositivos e Periféricos de Computador

Organização Funcional

Hardware. 5- Faça o fluxograma para efectuar o debounced de uma tecla por temporização(20ms). Implemente uma rotina para a leitura da tecla.

Mídias Discretas. Introdução à Ciência da Informação

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)

INT 5h - Print screen Modo Resolução Caract. INT 10h - Vídeo INT 10h - Vídeo

2º Estudo Dirigido CAP 3

Capítulo 1 1. UNIDADE DE INTERFACE DE BARRAMENTO

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída

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

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

MICROPROCESSADORES E MICROCONTROLADORES Parte 3 Microcontrolador 8051

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Dispositivos de Entrada e Saída

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

CPU DE 8 BITS primeiro microprocessador evolução rápida, com a consolidação dos processadores de 8 bits

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Tecnologias da Informação e da Comunicação

Dispositivos de Entrada e Saída

Organização de Computadores

II Componentes de um computador

Dispositivos de Entrada e Saída

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

EEC2104 Microprocessadores

Arquitetura de computadores

Escola Secundária de Emídio Navarro

Escola Secundária de Emídio Navarro

EEL Microprocessadores

4.3 - DMA & Chipset. CEFET-RS Curso de Eletrônica. Profs. Roberta Nobre & Sandro Silva. e

Um pouco de história. SketchPad Tese de Doutorado de Ivan Sutherland (MIT) Conceito de comunicação com o computador

Sistemas de Entrada e Saída

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga


Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

Memórias. Memórias: Utilização:

Módulo de Cristal Líquido LCD

Escola Secundária de Emídio Navarro

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 19. Sistema de Entrada/Saída

António Costa. Paulo Roma Cavalcanti

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução

7. A pilha e subrotinas

Tecnologias. de Informação e Comunicação. 7ºAno. 1.º Período. Aula 5, 6. 1 Magda Lopes

Trabalho Prático Nº3 Porta Paralela

Escola Secundária de Emídio Navarro

Memória cache (cont.) Sistemas de Computação

2.º Teste de Introdução à Arquitetura de Computadores IST LEIC-Taguspark 1.º Semestre 2014/2015 Duração: 60 minutos 16 dezembro 2014

Arquitetura e Organização de Computadores

Introdução à Informática

COMPUTADOR 2. Professor Adão de Melo Neto

Interface Hardware/Software. Centro de Informática - UFPE Paulo Maciel prmm@cin.ufpe.br

ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA

Capítulo 3 Organização Interna de um Computador

RESOLUÇÃO. Identifique todas as folhas! Não escreva nada fora dos rectângulos

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

Barramentos: interface e temporização

Trabalho Prático Nº 8

CAPÍTULO VI DECODIFICAÇÃO DE I/O E MEMÓRIA

Arquitetura do Disciplina de Microcontroladores. Prof. Ronnier Prof. Rubão

USB Tablet. Guia de instalação

Real Time Clock MC146818A,DS12C887

Ficha de trabalho Nº 1 Utilizar adequadamente o computador e/ou dispositivos similares que processem dados.

Arquitetura e Organização de Computadores

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

KIT DE DESENVOLVIMENTO 8051 BASEADO NO AT89S8252 MANUAL DO UTILIZADOR. Rui Marcelino (Nov. 2005)

CAPÍTULO VI DECODIFICAÇÃO DE I/O E MEMÓRIA

Arquitetura do 8086/8088

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

Estrutura Básica de um Computador

Transcrição:

Unidades de I/O Interface Entrada/Saída Existem três formas básicas de efectuar operações de entrada/saída entrada/saída isoladaas instruções IN e OUT transferem dados entre o registo AX ou a memória e o dispositivo I/O; entrada/saída com mapeamento de memóriasão utilizadas instruções de referência a posições de memória utilizadas na transferência dos dados com o dispositivo I/O; acesso directo à memória (DMA)éuma forma especial de entrada/saída com mapeamento de memória, em que os dados transitam entre o periférico e a memória, sem passarem pelo CPU. 133 Unidades de I/O O método mais utilizado é o de entrada/saída isolada. O termo isolada significa que as localizações de entrada/saída se encontram isoladas do sistema de memória do microprocessador, num espaço de endereços de I/O separado. 134

Unidades de I/O Exemplos IN AL, porta IN AX, porta IN AL, DX IN AX, DX OUT porta, AL OUT porta, AX OUT DX, AL OUT DX, AX Sempre que são utilizadas as instruções IN ou OUT, o endereço I/O, designado por número da porta, é colocado no endereço de memória. Este método permite ao utilizador expandir a memória para o máximo sem sobrepor o espaço utilizado pelos dispositivos de I/O. A desvantagem da entrada/saída isolada é a necessidade da utilização das instruções IN ou OUT. 135 Unidades de I/O O método de entrada/saída mapeada utiliza qualquer instrução de transferência de memória entre o microprocessador e a memória. Os dispositivos de I/O são tratados como posições de memória. A vantagem deste método é a possibilidade de utilizar as várias instruções de transferência de dados com a memória. A desvantagem está na perda de memória disponível para executar as aplicações. 136

Unidades de I/O Exemplos/Resumo Memory Mapped I/O Dispositivo de I/O que partilha o espaço de endereçamento da memória Exemplo da Placa gráfica 8086 78K RAM CPU Video RAM Placa Gráfica Monitor 640K Isolated I/O Espaço de endereçamento de I/O distinto do espaço de endereçamento de memória. No caso do 8086 o espaço de endereçamento é de 64K ( bits) 137 Unidades de I/O Instruções de I/O IN AL,<end. 8 bits> 0000h 00FFh 8 bits INPUT IN AL,DX 0000h FFFFh bits IN AX,<end. 8 bits> IN AX,DX 0000h 00FFh 0000h FFFFh OUT <end. 8 bits>,al 8 bits OUTPUT OUT DX,AL bits OUT <end. 8 bits>,ax OUT DX,AX 138

Unidades de I/O Placa Gráfica Memory Mapped I/O Standard VGA Modo Tipo Linhas/Colunas Cores 00h 5 linhas x 40 colunas 01h 5 linhas x 40 colunas 0h 5 linhas x 80 colunas 03h 5 linhas x 80 colunas 11h 640x480 1h 640x480 13h 30x00 56 139 VGA (Video Graphics Array) é um standard vídeo para PC introduzido no mercado em 1987 pela IBM. O sistema VGA pertence a uma família anterior de standards de vídeo da IBM como CGA, EGA e MCGA, sendo este uma versão mais simples do VGA. Note-se que o sistema VGA mantém a compatibilidade com os sistemas anteriores. 140

Detalhes Técnicos 56KByte Video RAM Modos de cores e 56 cores 6144 (^18 seis bits [64 valores] cada para vermelho, verde, e azul) palete de cores Selecção de 5MHz ou 8MHz para frequência do master clock Máximo de 70 pixels horizontais Máximo de 480 linhas Refresh rates até 70 Hz Modo planar até cores (planos de 4 bit) Modo packed-pixel 56 cores (Modo 13h) Suporta Hardware smooth scrolling Suporta Raster Ops Suporta Split screen Software fontes 141 Modos VGA Modo Tipo Linhas/Colunas Cores 00h 5 linhas x 40 colunas 01h 5 linhas x 40 colunas 0h 5 linhas x 80 colunas 03h 5 linhas x 80 colunas 11h 640x480 1h 640x480 13h 30x00 56 14

Endereçamento A memória de vídeo do VGA está mapeada numa janela com o intervalo entre 0xA000 e 0xBFFFF no espaço de endereçamento em modo real dos PC's. Tipicamente estes são 0xB000 para modo de texto monocromático 0xB800 para modo de texto colorido e modos gráficos compatíveis CGA 0xA000 para modos EGA/VGA 143 Modo 3 (5 linhas, 80 colunas, cores) O ecrã é organizado numa matriz com 5 linhas e 80 colunas, sendo cada caracter representado por dois bytes em memória. O primeiro representa o código ASCII do caracter a visualizar e o segundo representa os seus atributos. Cada matriz ocupa 4000 bytes de memória (5x80x), existindo 4 blocos com estas dimensões designados por páginas. Em cada instante, apenas uma das páginas se encontra activa. Esta memória encontra-se mapeada no segmento de memória B800h, conforme se descreve na figura seguinte 144

Página 0 Endereço (Hex.) Coluna 0 Coluna 1 Coluna Coluna 79 Linha 0 B8000000 Linha 1 B80000A0 Página 1 Linha 0 B8001000 Linha 1 B80010A0 Página 3 Linha 0 B8003000 Linha 1 B80030A0 145 Para uma determinada posição no display (página=0..3, linha=0..4, coluna=0..79) a informação relativa a um caracter ocupará as posições SegmentoB800h Deslocamento ( Código ASCII) 4096 x página + 0 x linha + x coluna Deslocamento ( ibuto) 4096 x página + 0 x linha + x coluna +1 O byte correspondente aos atributos codifica o conjunto de características da representação dos caracteres, conforme se descreve na figura seguinte Bit 7 Bit 0 BLNK BAK BAK1 BAK0 INT FOR FOR1 FOR0 BLNK 1 - Blinking 0 - Not blinking BAK, BAK1, BAK0 000 = black 001=blue 010=green 011=cyan 100 = red 101=magenta 110=brown 111=white INT, FOR, FOR1, FOR0 0000 = black 0001=blue 0010=green 0011=cyan 0100 = red 0101=magenta 0110=brown 0111=white 1000 = grey 1001=light blue 1010=light green 1011=light cyan 1100 = light red 1101= light magenta 1110=yellow 1111=bright white 146

Modo 19=13h(30x00,56 cores) Neste modo gráfico, o ecrã é organizado numa matriz de pixels (0..319,0..199) sendo cada pixel representado por um byte em memória (56 cores). São, portanto, necessários 30x00 bytes (64000 bytes) para armazenar toda a informação necessária para a definição da imagem vídeo. Esta memória encontra-se mapeada no segmento de memória A000h, conforme se descreve na figura seguinte 147 Endereço (segmentodeslocamento/offset) Um determinado pixel de coordenada (x,y) ocupará o byte com offset 30*y+x. Por exemplo, ao pixel de coordenadas (,0) está associado a célula de memória A000h000h. Para colocar um determinado pixel no ecrã com uma determinada cor, basta armazenar na célula de memória correspondente o valor da cor desejada. Note-se que o sistema de coordenadas utilizado é diferente do habitual. O ponto de coordenadas (0,0) coincide com o canto superior esquerdo do ecrã e o ponto de coordenadas (319,199) coincide com o canto inferior direito. 148

INT 10H - Algumas funções para o subsistema vídeo Função (AH) Parâmetros de entrada Parâmetros de saída Descrição 00h AL - Modo Vídeo Define o modo vídeo do display (consulte a tabela de Modos Vídeo para Placas Gráficas VGA) 01h CH - Primeiro linha do cursor (0..15). CL - Última linha do cursor (0..15). Define a forma do cursor. 0h BH - Número da página DH - Coordenada Y DL - Coordenada X Coloca o cursor na posição (X,Y) no display. 03h CH - Primeiro linha do cursor (0..15). CL - Última linha do cursor (0..15). DL - Coordenada X DH - Coordenada Y Obtém a forma e localização do cursor. 05h AL - Número da página Define a página a ser visualizada no display (0..7) 06h AL - Número de linhas a deslocar para cima. BH - ibutos da área afectada pelo deslocamento. CL - Coordenada X do canto superior esquerdo. CH - Coordenada Y do canto superior esquerdo. DL - Coordenada X do canto inferior direito. DH - Coordenada Y do canto inferior direito. Limpa ou desloca linhas para cima. Se AL=0, esta função limpa a janela rectangular definida pelo canto superior esquerdo (CL/CH) e o canto inferior direito (DL/DH). Se AL<>0, esta função desloca para cima o número de linhas especificado em AL 149 INT 10H - Algumas funções para o subsistema vídeo (cont.) Função (AH) Parâmetros de entrada Parâmetros de saída Descrição 07h AL - Número de linhas a deslocar para baixo. BH - ibutos da área afectada pelo deslocamento. CL - Coordenada X do canto superior esquerdo. CH - Coordenada Y do canto superior esquerdo. DL - Coordenada X do canto inferior direito. DH - Coordenada Y do canto inferior direito. Limpa ou desloca linhas para baixo. Se AL=0, esta função limpa a janela rectangular definida pelo canto superior esquerdo (CL/CH) e o canto inferior direito (DL/DH). Se AL<>0, esta função desloca para baixo o número de linhas especificado em AL 08h AL - Número da página AL - Caracter AH - ibutos Leitura do código ASCII e atributos do caracter existente na posição corrente (cursor). 09h AL - Caracter BH - Número da página BL - ibutos CX - Número de vezes Copia CX vezes o caracter/atributo especificado em AL/BL a partir da posição corrente (cursor). Não altera a posição do cursor. 150