Interface Hardware Software

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Mapeamento de Entrada / Saída em Sistemas Digitais
Parte 1: Organização de Computadores
Capitulo 6: Entrada e Saída
Arquitetura de Computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Utilizando o DOS -r ip IP 0102 :100 -g 102 A Caracter que foi impresso pelo DOS AX=0241 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000.
Execução de Programas Partes de um programa: ‣ Dados
Entrada e Saída Introdução.
Técnicas para operações E/S
SOFTWARE BÁSICO.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Chip-Select e Controle de Interrupção Sistemas Embarcados.
Arquitetura dos Microprocessadores 8086 e 8088
Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados.
Arquitetura dos Microprocessadores 8086 e 8088
PROCEDIMENTOS COM RECURSIVIDADE
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
ESTRUTURA DE UM PROGRAMA
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Conhecendo Hardware Parte 1
EEL Microprocessadores
O MICROPROCESSADOR INTEL 8080
Ferramentas Programação
Sistemas Digitais Microprocessados
Montador para Intel TASM - Turbo Assembler
Assembly x86.
Prof. Msc. Raul Paradeda Aula 2 Introdução
Sistemas Operacionais I
EEL Microprocessadores
A ULA P RÁTICA - A SSEMBLY Ciro Luiz Araujo Ceissler.
Aula Prática - Assembly
Linguagem de Montagem.
Linguagem de Montagem Vetores.
Representação de Instruções
João Ferreira, Dez 2003STRINGS, 1/6 Definição de String String (sentido lato) -> um string é um conjunto de valores (não necessariamente interpretáveis.
PCI- Introdução à Computação
Linguagem de Montagem PROVA 4 – 3/12.
ORGANIZAÇÃO DE COMPUTADORES
Sistemas Operacionais I
Prática de Programação Assembly 8086
Organização e Arquitetura de Computadores
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.
Computação L1: Infra-Estrutura Básica
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Arquitetura de Computadores
8088 Assembly Software Básico Mitsuo Takaki.
Aula Prática Programação em Ponto Flutuante Paulo Maciel.
DSC/CEEI/UFCG Introdução à Computação. DSC/CEEI/UFCG 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações.
Registradores.
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.
Rotinas do BIOS e DOS Serviços de vídeo (INT 10H)
Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Arrays e modos.
IHS Aula Prática 4 Interrupções
Ciro Ceissler / ASSEMBLY Ciro Ceissler /
Lucas Aranha ASSEMBLY Lucas Aranha
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Introdução à Computação Componentes Básicos dos Computadores
Arquitetura de Computadores
Estrutura de Interconexão
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.
Afonso Ferreira Miguel
Arquitetura de computadores
Arquitetura de Sistemas Operacionais
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Ney Laert Vilar Calazans Exemplo de Apresentação de TP1 Descrição Resumida de uma Arquitetura de Processador: o estudo de caso do Intel 8086 ORGANIZAÇÃO.
Transcrição da apresentação:

Interface Hardware Software Monitoria Diogo de Lima Lages - dll Lucio Paulo de Souza Ribeiro- lpsr

Revisão Registradores de propósito geral EDI EBP Servem para armazenar dados eles são divididos em : Obs.: Algumas instruções necessitam de registradores específicos como rep e loop Acumulador EAX AH AL Source Index ESI SI EBX BH BL Destiny Index EDI DI Modos de endereçamento usados no PC Contador ECX CH CL Stack base Pointer EBP BP Dados EDX DH DL Stack Pointer ESP SP

Revisão Registradores Segmentos Servem para armazenar determinados segmentos: Code Segment CS Guarda o segmento de código Guarda o segmento da pilha Armazena o segmento de dados Segmento extra (utilizado por algumas instruções) Stack Segment SS Data Segment DS Modos de endereçamento usados no PC Extra Segment ES Extra Segment FS Extra Segment GS

Revisão Registradores de Pilha Guarda o segmento de pilha Servem para armazenar determinados segmentos: Obs.: Algumas instruções necessitam de operadores específicos como rep e loop Guarda o segmento de pilha Guarda o endereço atual da pilha Utilizado para recuperar paramentros passados através da pilha Stack Segment SS Stack Pointer ESP SP Modos de endereçamento usados no PC Base Pointer EBP BP

Revisão Registradores Específicos Registradores que tem funcionalidade padrão Obs.: Só pode ser alterado por operações de pulo como jmp,call Guarda o deslocamento em relação a base (CS).Aponta para instrução a ser executada Instruction Pointer EIP IP Modos de endereçamento usados no PC

Revisão Modo Real Endereço Físico SEG DESL. F0000 0000-FFFF E0000 D0000 C0000 B0000 A0000 90000 80000 70000 60000 50000 40000 30000 20000 10000 00000 ► Fornece apenas 1 MB (*aproximadamente) de memória acessível . ► Não fornece proteção para os segmentos ► Endereço físico variando de 00000-FFFFF ► Memória dividida em segmentos ► Cada segmento possui 64 KB ► Possui 16 Segmentos 1 - CS: F000 IP : 8378 2 – 4 Shift Left em CS (Lógico) 3 – F0000 + 8378 4 – F8378 (Endereço Físico) * 1048.576 bytes Endereço Físico Modos de endereçamento usados no PC

Revisão Modelos de memória Modelo Segmento de dados Segmento de Código *TINY UM SMAL MEDIUM VÁRIOS COMPACT LARGE HUGE FLAT Modos de endereçamento usados no PC Obs.: No modelo tiny o segmento de dados e o de código apontam para o mesmo local

Tasm/Tlink/Td Tasm Tlink ► Montador desenvolvido para borlard ► Serve para transformar o código assembler em código objeto ► Adiciona algumas informações no código fonte (como símbolos para debug) ► Fornece algumas abstrações para facilitar o desenvolvimento em assembly como criação de struct . Tlink Modos de endereçamento usados no PC ► LinkEditor desenvolvido pela borlard ► Serve para transformar código objeto em código de máquina ► Adiciona algumas informações no código fonte (como símbolos para debug) ► Adiciona códigos externos

Tasm/Tlink/Td Td ►Debugador para código em assembly ►Fácil manipulação ► Permite visualizar o código sendo executada instrução por instrução ► Permite visualizar estado dos processador em tempo de execução ► Fornece uma forma mais rápida para encontrar erros Modos de endereçamento usados no PC

Montando e Linkeditando Tasm /zi arq1.asm arq1.o -> Acrescenta informações para debug Linkeditando Tlink /v arq1.o -> Acrescenta informações para debug Debugando Modos de endereçamento usados no PC Td arq1.exe Mais informações Tasm /? Tlink

Usando TD Funcionalidade Básicas Caminho Função FILE -> OPEN Seleciona o arquivo a ser aberto VIEW->BREAKPOINTS Visualiza breakpoints VIEW->VARIABLES Visualiza variáveis VIEW->REGISTER Visualiza registradores VIEW->CPU Visualiza informações sobre processador VIEW->WATCH Visualiza watches VIEW->DUMP Visualiza memória VIEW->NUMERIC PROCESSOR Visualiza algumas informações sobre o processador de ponto flutuante RUN->Trace INTO /F7 Executa instrução por instrução Modos de endereçamento usados no PC

Usando TD Adicionando Breakpoint Deixe o cursor na linha desejada e aperte F2. Modos de endereçamento usados no PC

Prática – Parte I Material : Pacote com ajuda,montador,linkeditor e debug: http://www.cin.ufpe.br/~dll Modos de endereçamento usados no PC

Código em assembly Estrutura básica .model small ;modelo de memória a ser usado .stack ;Define o segmento de pilha .data ;Define segmento de dados .code ;Define segmento de código mov ax,@data ;DS aponta para o segmento de dados mov ds,ax mov ax, 4c00h ;AH – Função a ser chamada int 21h ;Chama SO para executar função requisitada end Modos de endereçamento usados no PC

Código em assembly Declarando 1 byte/1 word / 2 words/4words Nome db value Nome dw value Nome dd value Nome dq value .model small ;modelo de memória a ser usado .stack ;Define o segmento de pilha .data ;Define segmento de dados meng_1 db 0 meng_2 dw FF meng_3 dd FFFF meng_4 dq FFFFFFFF .code ;Define segmento de código mov ax,@data ;DS aponta para o segmento de dados mov ds,ax mov ax, 4c00h ;AH – Função a ser chamada int 21h ;Chama SO para executar função requisitada end Modos de endereçamento usados no PC

Código em assembly Alocando 1 byte/1 word / 2 words/4 words Nome db tamanho DUP(conteudo) Nome dw tamanho DUP(conteudo) Nome dd tamanho DUP(conteudo) Nome dq tamanho DUP(conteudo) .model small ;modelo de memória a ser usado .stack ;Define o segmento de pilha .data ;Define segmento de dados meng_1 db 2 dup(?) meng_2 dw 3 dup(0) meng_3 dd 4 dup(3) meng_4 dq 2 dup(‘F’) .code ;Define segmento de código mov ax,@data ;DS aponta para o segmento de dados mov ds,ax mov ax, 4c00h ;AH – Função a ser chamada int 21h ;Chama SO para executar função requisitada end Modos de endereçamento usados no PC

Código em assembly Declarando uma procedure .model small ;modelo de memória a ser usado .stack ;Define o segmento de pilha .data ;Define segmento de dados .code ;Define segmento de código mov ax,@data ;DS aponta para o segmento de dados mov ds,ax call Func_1 mov ax, 4c00h ;AH – Função a ser chamada int 21h ;Chama SO para executar função requisitada Func_1 proc push bx mov bx,ax pop bx ret Func_1 endp end Modos de endereçamento usados no PC

Porta Paralela Porta Paralela Status (379 h ou 279 h ou 3bdh ) -> Permite a comunicação com dispositivos externos -> Permite que 8 bits de dados possam ser enviados ou recebidos paralelamente . Status (379 h ou 279 h ou 3bdh ) -> Permite a entrada de 5 bits em paralelo (Mundo -> Porta) * Dados (378 h ou 278 h ou 3bch) Modos de endereçamento usados no PC -> Permite a saida de 8 bits em paralelo (Porta -> Mundo) -> Em modo bidirecional suporta a entrada/saida de dados não pode gerar exceção Controle (37A h ou 27A h ou 3beh ) -> Permite a saida de 4 bits (Porta-> Mundo) * Pino /11

Porta Paralela DB- Fêmea 379h 279h 378h 278h 37Ah 27Ah Modos de endereçamento usados no PC 37Ah 27Ah

Porta Paralela Escrita na porta paralela por interrupção 17h Parâmetros : AH = 00 (Número do serviço disponibilizado pela int 17) AL = Dado que deseja enviar pela paralela DX = Porta a ser usada (geralmente é 0) Retorno : AH = Vai conter dados lidos da porta de status (Só importa os 5 bits mais significativos) |11|10|12|13|15| Leitura na porta paralela por interrupção 17h Modos de endereçamento usados no PC Parâmetros : AH = 02 (Número do serviço disponibilizado pela int 17) DX = Porta a ser usada (geralmente é 0) Retorno : AH -> Vai conter os dados lidos da porta de status (Só importa os 5 bits mais significativos) |11|10|12|13|15|

INPUT/OUTPUT Função I/O PORT ADRESSING ► Mecanismo utilizado para se comunicar com outros dispositivos internos ou externos ao computador como : controlador de interrupção ou ainda usar a porta paralela para se comunicar com dispositivo externo . ► A arquitetura do pentium permite que os dispositivos possam ser acessados dos seguintes modos : ► ► ► Pode se comunicar através de portas especificas . Utiliza as instruções IN/OUT para se comunicar ► ► ► Pode se comunicar através de memória mapeada . Utilizada instruções como MOV para se comunicar com dispositivo I/O PORT ADRESSING Modos de endereçamento usados no PC

Instruções IN/OUT IN/OUT IN Out ►São instruções que permitem a comunicação com dispositivos externos através de portas ► As portas podem ser de entrada de saida ou ainda bidirecional . IN ►Permite a leitura através de uma portas determinada ex.: in al,dx Modos de endereçamento usados no PC Out ►Permite enviar dados através de uma porta determinada ex.: out dx,al

Instruções IN/OUT Exemplo IN/OUT ►Faz a leitura da porta 0x379(status) e envia para porta 0x378(dados) .model small ;modelo de memória a ser usado .stack ;Define o segmento de pilha .data ;Define segmento de dados .code ;Define segmento de código mov ax,@data ;DS aponta para o segmento de dados mov ds,ax call Func_1 mov ax, 4c00h ;AH – Função a ser chamada int 21h ;Chama SO para executar função requisitada Func_1 proc Push dx Push ax mov dx,379h ;Porta que vai ser lida in al,dx ;Instrução para efetuar a leitura Mov al, ffH mov dx,378h ;Porta onde vai ser escrito o dado out dx,al ;Instrução para efetuar a escrita Pop ax Pop dx ret Func_1 endp end Modos de endereçamento usados no PC

Exercícios - 1 1 ) Escreva um programa em assembly capaz de enviar enviar o byte 0xF4 para porta (0x378) . (Visualize o display) Modos de endereçamento usados no PC

Exercícios - 2 2 ) Escreva um programa em assembly capaz de receber 5 bits através da porta paralela e mostre esse conteúdo na tela . Use a porta : 0x0379 Modos de endereçamento usados no PC

Exercícios - 3 3 ) Crie agora um programa que envie um byte 0x00 até 0xFF usando a porta paralela . Use a porta (0x378) Modos de endereçamento usados no PC

Exercícios - 4 4 ) Escreva um programa em assembly que modifica os leds da protoboard somente quando um dos 5 bits de entrada forem modificados Modos de endereçamento usados no PC