LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS



Documentos relacionados
Uso de interrupções de BIOS/DOS

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

8. Instruções de multiplicação e divisão

ENTRADA E SAÍDA DE DADOS

Laboratório de Sistemas Processadores e Periféricos

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

Mecanismo de Interrupção

Revisão: Modo Real, pt 2 Interrupções

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

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Dispositivos de Entrada e Saída

7. A pilha e subrotinas

Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são:

CRIANDO UM SISTEMA OPERACIONAL BÁSICO Por: Fernando Birck aka Fergo

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

LABORATÓRIO DE LINGUAGEM DE MONTAGEM. MACROS e GERENCIAMENTO DE MEMÓRIA

Atividade prática: Rodando o programa SOMA

Linguagem de Montagem 2. Operações e Operandos

Aula Prática 1 Introdução à programação Assembly no DOS usando TASM Bruno Silva bs@cin.ufpe.br lauro Moura lauromoura@gmail.com

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

Gerenciador de Boot Simples

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

1. SINTAXE DA LINGUAGEM ASSEMBLY

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber

Sistemas Operacionais

Linguagem de Montagem

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Sistemas Operacionais. Prof. André Y. Kusumoto

Nível da Arquitetura do Conjunto das Instruções

ULA Sinais de Controle enviados pela UC

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

x86 Assembly Mini-Course

Arquitetura de Computadores. Tipos de Instruções

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

Arquitetura de Computadores - Revisão -

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Arquitetura de Computadores. Prof. João Bosco Jr.

7. Instruções lógicas, de deslocamento e de rotação

Projeto 1 - Bootloader

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / Gestor de Processos

Gestor de Processos. Gestor de Processos

MC404 - Organização de Computadores. e Linguagem de Montagem Instituto de Computação. Universidade Estadual de Campinas

Sistemas Operacionais

Estruturas do Sistema de Computação

2 - Processadores. CEFET-RS Curso de Eletrônica. Organização de Computadores. Profs. Roberta Nobre & Sandro Silva

Unidade: Unidade Lógica e Aritmética e Registradores. Unidade I:

Visão Geral de Sistemas Operacionais

Componentes de um computador típico

EEL Microprocessadores. Parâmetros e Variáveis Locais 4/5/2010. Capítulo 7 Livro Ziller. Prof. Raimes Moraes GpqCom EEL UFSC

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

MANUTENÇÃO DE MICRO. Mário Gomes de Oliveira

MC404: Organização de Computadores e Linguagem de Montagem Lista de Exercícios

Estrutura de um Computador

Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Tipos de sistemas operacionais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

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

Linguagem de Montagem

Arquitectura de Computadores. Dicas e Truques do Assembly do P3

Programação Básica em STEP 7 Blocos de Dados. SITRAIN Training for Automation and Drives. Página 8-1

Entradas/Saídas. Programação por espera activa Programação por interrupções

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Universidade de São Paulo

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Sistemas Operacionais

Organização de Computadores 1

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

Registrador de Vazão Tabela de registradores Modbus revisão

BIOS, BOOT, CMOS e CMOS Setup. Prof. César Couto

Sistemas Operacionais - Prof. Fabricio Alessi Steinmacher - fsteinmacher@gmail.com OBJETIVOS OPERACIONAIS. fsteinmacher@gmail.

2 Formalidades referentes ao trabalho

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

PROFESSOR ÉVERSON MATIAS DE MORAIS SISTEMAS OPERACIONAIS. Sistemas operacionais (so) Roteiro

1.6. Tratamento de Exceções

20/09/2009 TRANSFORMANDO DADOS EM. PROCESSANDO DADOS George Gomes Cabral SISTEMAS NUMÉRICOS INFORMAÇÕES

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AOS SISTEMAS OPERACIONAIS. Prof. Dr. Daniel Caetano

Infra-Estrutura de Hardware

Arquitectura de Computadores 2007/2008 2º Semestre Repescagem 1º Teste - 03/07/2008

Lição 1 Introdução à programação de computadores

Universidade de São Paulo

Arquitetura de um Computador

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2012 / Gestor de Processos

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

Princípios de funcionamento dos computadores

CEFET-RS Curso de Eletrônica

Manual de Instalação. Windows XP. Desenvolvedores: Patrick Duarte, Rodrigo dos Santos. Setembro de 2014.

Arquitetura do 8086/8088

COMPUTADOR SIMPLIFICADO E COMPUTADOR DIGITAL. Algoritmos e Programação APG0001

LÓGICA DE PROGRAMAÇÃO

ARQUITETURA DE COMPUTADORES

20 Caracteres - Tipo char

Transcrição:

LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS Capítulo 15 do livro-texto, págs. 309 a 330 Impressora Scanner Monitor Flop Disk Modem Floppy drive "CPU" HD CD ROM Teclado Mouse Dispositivos que requisitam Interrupção Página 1

ROTINAS DE INTERRUPÇÃO OS NÚMEROS DA INTERRUPÇÃO SÃO BYTES SEM SINAL, ISTO POSSIBILITA 256 TIPOS DE INTERRUPÇÕES. NEM TODAS AS INTERRUPÇÕES TEM UMA ROTINA EQUIVALENTE. ALGUMAS ROTINAS DE INTERRUPÇÕES ESTÃO ARMAZENADAS NA ROM (ROTINAS DA BIOS). ROTINAS DE INTERRUPÇÃO DE "ALTO NÍVEL", SÃO PARTE DO SISTEMA OPERACIONAL E SÃO ARMAZENADAS NA MEMÓRIA. TIPOS DE INTERRUPÇÃO 0 até 1FH BIOS 20H até 3FH DOS 40H até 7FH RESERVADO 80H até F0H ROM BASIC F1H até FFH NÃO UTILIZADO Página 2

INTERRUPÇÃO NO 80x86 O 8086 UTILIZA O NÚMERO DA INTERRUPÇÃO PARA CALCULAR O ENDEREÇO DA POSIÇÃO DE MEMÓRIA QUE CONTÉM O ENDEREÇO DA ROTINA DE INTERRUPÇÃO (INTERRUPÇÕES VETORADAS). ISTO FAZ COM QUE A ROTINA POSSA ESTAR EM QUALQUER POSIÇÃO. SEU ENDEREÇO É ARMAZENADO NUMA POSIÇÃO PRÉ-DEFINIDA DA MEMÓRIA CHAMADO DE VETOR DE INTERRUPÇÃO. TODOS ENDEREÇOS DAS ROTINAS DE TRATAMENTO DE INTERRUPÇÃO SÃO ARMAZENADOS EM UMA TABELA DE VETORES DE INTERRUPÇÃO (VETOR DE INTERRUPÇÃO), QUE OCUPA OS PRIMEIROS 1K BYTES DA MEMÓRIA. CADA ENDEREÇO DA ROTINA DE TRATAMENTO DE INTERRUPÇÃO É DADO COMO SEGMENT:OFFSET E OCUPA 4 BYTES. Página 3

VETOR DE INTERRUPÇÃO 003FE SEGMENT INT FF 003FC OFFSET INT FF 00002 SEGMENT INT 0 00000 OFFSET INT 0 Página 4

ROTINAS DE INTERRUPÇÃO PARA A CPU PODER EXECUTAR UMA INSTRUÇÃO DO TIPO INT, ELA EXECUTA OS SEGUINTES PASSOS: 1. SALVA PSW (FLAGS) NA PILHA E FAZ IF E TF =0. 2. SALVA O ENDEREÇO CORRENTE NA PILHA (PUSH DE CS E IP) 3. USA O NÚMERO DA INTERRUPÇÃO PARA PEGAR O RESPECTIVO CONTEÚDO DO VETOR DE INTERRUPÇÃO, CARREGANDO-O EM CS E IP, COM O ENDEREÇO DO SEGMENTO E O OFFSET RELATIVO AO VETOR DE INTERRUPÇÃO, RESPECTIVAMENTE. 4. DEPOIS DE EXECUTAR A ROTINA, ELE EXECUTA A INSTRUÇÃO IRET (INTERRUPT RETURN), QUE RESTAURA IP, CS E OS FLAGS. Hw ou Sw Requisita Interrupção Ativa sinal INTR Gera número da Interrupção CPU Suspende Processo Gera sinal INTA Salva contexto Calcula endereço interrupção Executa Rotina de Interrupção Recupera contexto Retorna ao Processo Inicial Verifica INT a cada instrução Tratamento de Interrupções Página 5

FLAGS DE CONTROLE TF (TRAP FLAG) QUANDO O FLAG TF ESTÁ SETADO, O 8086 GERA UM PROCESSOR EXCEPTION, INTERRUPÇÃO TIPO 1. ESTA INTERRUPÇÃO É UTILISADA PELO DEBUG NA EXECUÇÃO DO TRACE. IF (INTERRUPT FLAG) O IF É USADO PARA CONTROLE DE INTERRUPÇÃO DE HARDWARE. QUANDO O IF ESTÁ SETADO, OS DISPOSITIVOS PODEM INTERROMPER A CPU. AS INTERRUPÇÕES PODEM SER MASCARADAS (INIBIDAS 0), ZERANDO IF. REGISTRO DE MÁSCARA DE INTERRUPÇÃO 7 6 5 4 3 2 1 0 ENDEREÇO 21H 0A1H IRQ0 / IRQ8 IRQ1 / IRQ9 IRQ2 / IRQ10 IRQ3 / IRQ11 IRQ4 / IRQ12 IRQ5 / IRQ13 IRQ6 / IRQ14 IRQ7 / IRQ15 Página 6

INTERRUPÇÕES DA BIOS. INTERRUPÇÕES 0 A 7 - RESERVADAS PELA INTEL 0 - DIVIDE OVERFLOW - GERADA PELAS INSTRUÇÕES IDIV E DIV. 1 - SINGLE STEP - GERADA QUANDO TF É SETADO. 2 - INTERRUPÇÃO NÃO MASCARÁVEL - USADA QUANDO DA OCORRÊNCIA DE ERRO DE PARIDADE, EM OPERAÇÃO DE MEMÓRIA 3 - BREAKPOINT - USADO PELO DEBUG NO COMANDO G (GO) PARA SETAR O BREAKPOINT. 4 - OVERFLOW. 5 - PRINT SCREEN 6 E 7 - NÃO SÃO USADAS. Página 7

EXEMPLO: UTILIZANDO DA INTERRUPÇÃO INT 21H, FUNÇÃO 2CH, FAZER UM PROGRAMA QUE MOSTRA A HORA, UTILIZE UMA SUBROTINA PARA A APRESENTAÇÃO DOS DADOS NO FORMATO HR:MIN:SEC. TITLE PGM15_1: MOSTRA_HORARIO_VER_1 ; PROGRAMA QUE MOSTRA A HORA, MINUTO E SEGUNDO CORRENTE.MODEL SMALL.STACK 100H.DATA TIME_BUF DB '00:00:00$' ; HR:MIN:SEC.CODE MAIN PROC MOV AX,@DATA MOV DS,AX ; inicializa DS ;AMOSTRA E MOSTRA O HORARIO LEA BX, TIME_BUF ; BX aponta ; para TIME_BUF CALL AMOSTRA_HORARIO ; carrega time_buf LEA DX, TIME_BUF ; DX aponta para ; time_buf ;Exit: MAIN MOV AH, 09H ; mostra horario INT 21H MOV AH, 4CH INT 21H ENDP ;INSIRA OS SUBPROGRAMAS END MAIN Página 8

; SUBPROGRAMA QUE AMOSTRA HORARIO ; CONVERTE PARA O FORMATO: HORA: MINUTO: SEGUNDO AMOSTRA_HORARIO PROC MOV AH,2CH ; INT 21H ; ;converte horas para ASCII MOV AL,CH ; CALL CONVERTE MOV [BX], AX ;converte minutos MOV AL,CL ; CALL CONVERTE MOV [BX + 6], AX ;converte segundos MOV AL,DH ; CALL CONVERTE MOV [BX + 3], AX RET AMOSTRA_HORARIO ENDP CONVERTE PROC MOV AH, 0H ; mostra horario MOV DL,10 DIV DL OR AX,3030H RET CONVERTE ENDP Página 9

EXERCÍCIOS: 1. UTILIZANDO DA INTERRUPÇÃO INT 1CH, FAÇA UM PROGRAMA QUE MOSTRA E ATUALIZA A HORA A CADA SEGUNDO DURANTE O INTERVALO DE 2 MINUTOS. LEMBRE-SE A INTERUPÇÃO INT 1CH Ë CHAMADA CERCA DE 18,2 VEZES POR SEGUNDO PELA INT 08H. SUGESTÕES: UTILIZE A INTERRUPÇÃO INT 21H COM AS FUNÇÕES 25H E 35H PARA MANUSEIO DO VETOR DE INTERRUPÇÃO. ESCREVA UMA SUBROTINA PARA A APRESENTAÇÃO DOS DADOS NO FORMATO HH:MM:SS. 2. FAÇA UM CRONOMETRO QUE MOSTRA E ATUALIZA O TEMPO A CADA MILISEGUNDO, E TEM AS SEGUINTES FUNÇÕES: F1 INICIALIZA O CRONOMETRO F2 MOSTRA O ATUAL VALOR DE TEMPO CORRIDO, MANTENDO A CONTAGEM F3 VOLTA A MOSTRAR O TEMPO CORRIDO QUE ESTÁ SENDO CONTADO F10 SAI DO PROGRAMA SUGESTÕES: UTILIZE A INTERRUPÇÃO INT 21H COM AS FUNÇÕES 25H E 35H PARA MANUSEIO DO VETOR DE INTERRUPÇÃO E A INT 70H COMO RELOGIO DE TEMPO REAL. APRESENTE OS DADOS NO FORMATO HH:MM:SS. Página 10