Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Interrupção – Conceitos Básicos.

Slides:



Advertisements
Apresentações semelhantes
TRATAMENTO DE ARQUIVOS EM C
Advertisements

1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
C para Javaneses Novembro 2003 Elmar Melcher UFCG
Construção de Algoritmos AULA 07
Algoritmos de manipulação de estruturas elementares de dados
Programação II Estruturas de Dados
PROCEDIMENTOS COM RECURSIVIDADE
Modificadores de tipos e Arquivos
AULA – Linguagem C – Campos de Bits e Unions
LPG-I: Tipos Complexos - Estruturas
SVCs para Controle de Processos no Unix
Interrupts and Exceptions Understanding the Linux Kernel
7 Abstração Genérica Unidades genéricas e instanciação.
Listas com Ponteiros Listas encadeadas Listas circulares.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
Assembly x86.
Fundamentos de Programação 1
Funções.
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Curso de Nivelamento LCG
Linguagem de Montagem.
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
Definição de Tipos Estruturas e Ponteiros
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Computador Cleópatra Programação Assembly e Alto Nível
Seminário 1: Revisão de C
DAVID ANDERSON CARDOSO DANTAS
Interface C / Assembly Modo Real
2 -1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM - Laboratório.
Entrada e Saída (E/S ou I/O)
Interface entre as linguagens C e Assembly 8085
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VI Desenhos e Animação.
MPI - Message Passing Interface Mestrado em Matemática Computacional 2003.
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Tipos de dados inteiro caracter real logico
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Aula Prática 11 Operações com Arquivos Monitoria
Revisão Luis Antonio Tavares
Programação de Computadores I – Arquivos
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
IHS Aula Prática 4 Interrupções
Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Esquemático - Etapa 5.
Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Segmentação (Conceitos Básicos)
Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Paginação (Conceitos Básicos)
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Informações Adicionais (Interrupção)
Engenharia de Sistemas Embarcados Aula 5: Técnicas Especiais de Software.
Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Passos para Execução da Instrução BIPUSH.
Programação de Computadores I – Ponteiros Profa. Mercedes Gonzales Márquez.
Existem 8 registos principais de 32 bits no processador (existem mais como %EIP): %EAX %EBX %ECX %EDX %ESI %EDI %EBP %ESP Os registos são armazenados em.
Profa. Maria Augusta Constante Puget
Arquitetura de computadores
Algoritmo e Estrutura de Dados I Aulas 15 – Linguagem C Alocação Dinâmica de Memória Márcia Marra
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 02 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Linguagem de Programação
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
© 2007 IBM Corporation Academic Initiative 07/05/07 Aula 2 – Parte 1: Java Basics Autores: Argemiro José de Juliano Marcos
Programação de Computadores I – Arquivos Profa. Mercedes Gonzales Márquez.
EA869 Interrupção Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1.
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
1 Aula 07 Strings Prof. Filipe Mutz. 2 Em nossos programas ainda não vimos como armazenar palavras e textos, e eles são muito importantes! Exemplos: Programas.
Fundamentos de Programação 1
Transcrição da apresentação:

Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Interrupção – Conceitos Básicos

Lab. Org. e Arq. de Computadores - DSC-UFCG2 /* Fractal com captura da interrupcao do mouse */ #include /*** definicoes de macros ***/ // ler de uma porta de I/O #define inpb(p) asm { in al,p } // escrever para porta de I/O #define outb(p,v) asm { mov al,v; out p,al } // instrucao End of Interrupt para o PIC (Programmable Interrupt Controller) #define EOI1 outb(0x20,0x20) // PIC 1 #define EOI2 outb(0xA0,0x20) // PIC 2 /*** struct and type declarations ***/ typedef unsigned char byte; typedef unsigned short word; typedef unsigned int dword; Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG3 /**** variaveis globais ****/ struct dtr idtr; byte *tela = (byte *)0xE ; // endereco da RAM de video /*** declaracoes de referencias externas e internas ***/ extern void cadastrar(int matricula); extern void initializar(); // modo de video grafico #define NLINHAS 768 // numero de linhas na tela #define NCOLUNAS 1024 // numero de colunas na tela Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG4 void desenhar_fractal() { /* Calculation of Julia set Written by Kiselev Y Definitions of complex numbers: z = x + i*y screen coordinates xini <= x < xini+1024*xstep u = s + i*t parameter \ yini <= y < yini+768*ystep Equation used: f(z) = z^2 - u Iteration: f(z), f(f(z)), f(f(f(z))),... until |f(...)| > 2 or max_it iterations Result: pixel value at (x,y) is the number of iterations. */ Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG5 int main() { char c; cadastrar( ); // coloque aqui sua matricula initializar(5); desenhar_fractal(); c=getchar(); return(0); } Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG6 Exemplo: Trecho de código em Assembly em um programa escrito em C Digite o código abaixo int main() { asm { mov eax,0x1233 add eax,0x22 push eax }; } Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG7 Exemplo: Trecho de código em Assembly em um programa escrito em C Digite o código abaixo int main() { asm { mov byte [0xE ], 55 }; } Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG8 Observe os valores: yini=-1.15; xini=-1.55; xini+=0.003; yini+=0.003; // insere aqui a instrucao que escreve na tela Exemplo 1: // escreve pontos na tela tela[0] = 55; tela[100*NCOLUNAS+200]=155; Exemplo 2: //escreve o fractal tela[ypix + xpix] = pix; Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG9 /* descritor de interrupt gate, call gate ou task gate Cada sub-estrutura serve para preencher uma parte dos campos do descritor. Primeiro devem ser preenchidos a.offset e b.offset. */ union gate { struct { // O item n nao deve ser usado. dword offset; byte params; byte type; } a; struct { word n; word selector; dword offset; } b; }; Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG10 typedef union gate *gate_ptr; /* IDTR e GDTR */ struct dtr { word length; gate_ptr base; }; /**** variaveis globais ****/ struct dtr idtr; Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG11 Interrupção – mouse Opção 1: void interrupt() { tela[200]=~tela[200]; } Opção 2 _interrupt void interrupt() { tela[200]=~tela[200]; } Boa.c – Novas Funcoes

Lab. Org. e Arq. de Computadores - DSC-UFCG12 void setInterrupcao() { asm sidt[idtr]; idtr.base[116].a.offset = &interrupt; // ^ ^ ^ ^ // | | | endereço da rotina de atendimento // | | | // | | descritor da interrupção do mouse // | | // | endereço de inicio da IDT // | // conteudo do registrador IDTR da CPU idtr.base[116].b.offset = &interrupt; idtr.base[116].b.selector = 0x928; idtr.base[116].a.params = 0; idtr.base[116].a.type = 0xEE; } Boa.c – Novas Funções

Lab. Org. e Arq. de Computadores - DSC-UFCG13 int main() { char c; cadastrar( ); // coloque aqui sua matricula initializar(5); setInterrupcao(); //setar interrupcao desenhar_fractal(); c=getchar(); return(0); } Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG14 int mouse () { // retorna "true" se tem um byte para ser lido inpb(0x64); //porta de status return _EAX & 1; } void queijo() { // entrega queijo para mouse PS/2 (tambem chamado mouse IBM) while(mouse()) { inpb(0x60); // lˆ byte transmitido pelo dispositivo porta de dados EOI2; } EOI1; } Boa.c

Lab. Org. e Arq. de Computadores - DSC-UFCG15 _interrupt void interrupt() { queijo(); tela[200]=~tela[200]; } Boa.c – Novas Funções