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



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

Uso de interrupções de BIOS/DOS

Laboratório de Sistemas Processadores e Periféricos

Universidade do Algarve Faculdade de Ciências e Tecnologia Área Departamental de Engenharia Electrónica e Computação

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

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

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

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

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

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

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

FICHA DE ESPECIFICAÇÃO TÉCNICA. x PRODUTO PROCESSO DATA: 04/02/2013. PRODUTO: IcBox SUB-PRODUTO: DESCRIÇÃO: API DLL c++ (C++ builder e Delphi)

7. A pilha e subrotinas

1. INTRODUÇÃO

Arquitetura de Computadores. Tipos de Instruções

Universidade de São Paulo

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

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) SÃO CAETANO DO SUL - SP - CEP:

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Dispositivos de Entrada e Saída

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

MANUAL. Versão bits - 17/10/99. Para Windows 95/98

Mozart de Melo Alves Júnior

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

Manual HDBS Revisão 1.1

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

Sistemas Operacionais

Projeto: Camada Independente de Dispositivo

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

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

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

TECLADO PAINEL OPERADOR USB COM DISPLAY GRÁFICO. Código : FT 023/09 REV: 02

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

O TEMPO DE ACESSO A UM DADO EM DISCOS MAGNÉTICOS É FORMADO POR TRÊS TEMPOS SIGNIFICATIVOS COMBINADOS:

GERENCIAMENTO DE DISPOSITIVOS

Atividade prática: Rodando o programa SOMA

Sistemas Operacionais. Andrique Amorim Gerência de Arquivos

PRODUTO: IDENTIFICADOR DE CHAMADAS Ic-Box SUB-PRODUTO: DESCRIÇÃO: PROTOCOLO DE COMUNICAÇÃO USB/SERIAL ELABORAÇÃO: FABIO / Wagner ESPECIFICAÇÃO TÉCNICA

Gerenciador de Energia Tabela de registradores Modbus revisão

Copyright 2011 VW Soluções

Estruturas do Sistema de Computação

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

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

16 - SCARTA. 1. Abrir o SCARTA clicando no ícone que se encontra na área de trabalho (Fig.1). Fig.1- Ícone do SCARTA

Gerenciador de Boot Simples

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

SIMULADO Windows 7 Parte V

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

Geral: Manual de Utilização do Software de Teste Gradual Windows

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

Lista de Exercícios da 3ª Unidade. ( Ponteiros, Alocação dinâmica, Arquivos, Estruturas de Dados)

Relatório MC404 - Trabalho 2 - Prof. Rodolfo

STK (Start Kit DARUMA) Primeiro contato com a Impressora Fiscal, a ECF chegou e agora?

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Manipulação de Arquivos

Sistemas Operacionais: Sistema de Arquivos

Apêndice II - As Interrupções do PC

INF 1005 Programação I

Trabalho 3: Agenda de Tarefas

PASSO A PASSO. Distribuição Automática. Distribuidor

Algoritmos e Programação _ Departamento de Informática

5.2 - Armazenamento em Disco

Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE

PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014

SW DE E/S INDEPENDENTE DE DISPOSITIVO

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Eletrônica Industria e Comércio Ltda

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

Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim

5.4.2 Laboratório opcional: Instalação do Windows 7

Universidade de São Paulo

Micro Terminal IDTECH

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais Gerência de Dispositivos

Notas de Aplicação. Interface Controlador HI com Leitor de Código de Barras. HI Tecnologia. Documento de acesso público

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

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

PROTOCOLO DE COMUNICAÇÃO RASTREADOR EASY TRACKER MODELO

Definição DSPTI II. Surgimento - Brasil

LÓGICA DE PROGRAMAÇÃO

IIIIIIII HAND INVENTORY

Manual de Configuração e Operação

SISTEMAS OPERACIONAIS II ESPECIFICAÇÃO CAMADA INDEPENDENTE

Organização Básica do Computador

Instruções funcionamento em 16 bits. 8B bytes W Mod 000 r/m

Python Aplicado às Redes de Comunicação

TSP143MU-201 / IM453HU-002 / IM833TU-001 Impressão de QR Code

Sistemas Operacionais

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais.

INF 1007 Programação II

Estrutura de um Computador

Sistemas Operacionais

Estrutura de Dados Básica

Transcrição:

BIOS Basic Input/Output System BIOS e System Calls Prof. Eduardo Tavares eagt@cin.ufpe.br Primeira instrução a ser executada (0xFFFF0-0xFFFFF) Configuração inicial do sistema Inicialização do boot loader Diversas rotinas para comunicação com dispositivos de I/O Migração da BIOS para Extensible Firmware Interface (Ex: algumas versões reconhecem modo longo diretamente) INT 5h - Print screen Imprime conteúdo da tela Interrupção do BIOS que trata o vídeo Os serviços são passados através do registrador AH Especificação do modo AH = 0 AL = Modo Modo Resolução Caract. 0h 40 25 tx, preto/branco 1h 40 25 tx, 16 cores 2h 80 25 tx, preto/branco 3h 80 25 tx, 16 cores 4h 320 200 gr, 4 cores 5h 320 200 gr, preto/branco 6h 640 200 gr, 2 cores... 12h 640 480 gr, 16 cores... Ajusta formato do cursor AH = 1 CH = linha inicial CL = linha final - número de linhas = 7 Posiciona o cursor AH = 2 DH = linha DL = coluna Ler posição do cursor AH = 3 DH = linha DL = coluna CX = tipo do cursor Selecionar AH = 5 AL = Páginas Modos 0-7 0-3 (placas SVGA) * Modos gráficos * - depende dos modos suportados por cada placa. 1

Rolar para cima a janela de vídeo Chama-se com: AH = 6 AL = número de linhas a serem roladas (Zero (0) rola todas) CH = linha do canto superior esquerdo CL = coluna do canto superior esquerdo DH = linha do canto inferior direito DL = coluna do canto inferior direito BH = atributo a ser usado nas novas linhas Rolar para baixo a janela de vídeo Chama-se com: AH = 7 AL = número de linhas a serem roladas (Zero (0) rola todas) CH = linha do canto superior esquerdo CL = coluna do canto superior esquerdo DH = linha do canto inferior direito DL = coluna do canto inferior direito BH = atributo a ser usado nas novas linhas Ler o caracter e o atributo da posição do cursor AH = 8 AH = atributo do caracter Escreve caracter e atributo Chama-se com: AH = 9 BL = atributo do caracter CX = número de repetições Escreve caracter AH = 10 CX = número de repetições Escreve um ponto (pixel) AH = 12 (0CH) AL = cor do pixel. Caso o bit 7 de AL seja 1, a cor do pixel será o ouexclusivo com a cor atual. BH = CX = coordenada X (coluna) DX = coordenaday (linha) Ler um ponto (pixel) AH = 13 BH = CX = coordenada X (coluna) DX = coordenada Y (linha) AL = cor do pixel Escreve caracter em modo TTY AH = 14 BL = cor do 2º plano * Avança posição do cursor automaticamente. ** Aceita caracteres de controle como bell, avanço de linha, carriage return e backspace. Obtém o modo do vídeo AH = 15 AH = número de colunas da tela AL = modo BH = ativa Escreve caracter em modo TTY AH = 14 BL = cor do 2º plano * Avança posição do cursor automaticamente. ** Aceita caracteres de controle como bell, avanço de linha, carriage return e backspace. INT 13h - DISCO Reseta sistema de disco AH = 00h DL = número do driver 00-7Fh floppy disk 80 - FFh hard disk CF = 0 sem erro 1 erro AH = código do erro Código do Erro 00h - sem erro 01h - comando inválido 02h - address mark não encontrado 03h - disco protegido 04h - setor não encontrado 05h - falha de reset 06h - disco removido 08h - erro de DMA 09h - erro de limite de DMA 10h - setor com erro 20h - falha do controlador 40h - trilha não encontrada 80h - time-out 2

INT 13h - DISCO Obtém status AL = código do erro Ler/Escreve/Verifica/Formata AH=02h/03h/04h/05h AL= número de setores CH= número do cilindro CL= número do setor (1, se AH=5) DH= número da cabeça DL= número da unidade ES:BX= buffer CF= 0 sem erro 1 erro AH= código do erro INT 13h - DISCO Se AH=05h (Formatar) ES:BX = 4 campos de entrada para cada setor byte 0 - número do cilindro byte 1 - número da cabeça byte 2 - número do setor byte 3 - código do tamanho do setor 00h - 128 b/s 01h - 256 b/s 02h - 512 b/s 03h - 1024 b/s INT 16h - Teclado Aguarda a digitação de um caracter e o lê AH = 0h Se um caractere ASCII foi digitado AH = código de varredura Se um caractere especial foi digitado AH = código ASCII estendido AL = 00h Verifica se um caracter está pronto AH = 1h Se um caractere ASCII foi digitado ZF=0 AH = código de varredura Caso contrário, ZF=1 Obs.: Não remove do buffer INT 16h - Teclado Obtêm status do teclado AH = 2h AL = status 01h - shift direito ativo 02h - shift esquerdo ativo 04h - crtl ativo 08h - alt ativo 10h - num lock ativo 20h - scroll lock ativo 40h - caps lock ativo 80h - inserção ativa INT 17h - Impressora Imprime caractere AH = 00h e DX = número da impressora AH = status Inicializa impressora DX = número da impressora Obtêm status da impressora AH = 02h DX = número da impressora AH = status 01h - time-out 08h - erro de I/O 10h - impressora selecionada 20h - sem papel 40h - reconhecimento 80h - impressora desocupada INT 19h - Warm Start INT 1Ah - Obtém / atualiza tempo / data Ler contador do relógio AH = 00h AL = 0, se não se passaram 24h da última leitura CX = parte de alta-ordem do contador DX = parte de baixa-ordem do contador Atualiza contador do relógio CX = parte de alta-ordem do contador DX = parte de baixa-ordem do contador Ler relógio AH = 02h CH = horas em BCD CL = minutos em BCD DH = segundos em BCD DL = milesegundos em BCD 3

e System Calls INT 1Ah - Obtém / atualiza tempo / data Atualiza relógio AH = 03h CH = horas em BCD CL = minutos em BCD DH = segundos em BCD DL = milesegundos em BCD Ler data AH = 04h CH = século (19, 20,21) em BCD CL = ano em BCD DH = mês em BCD DL = dia em BCD Atualiza data AH = 05h CH = século (19,20,21) em BCD CL = ano em BCD DH = mês em BCD DL = dia em BCD INT 14h - serial (BIOS) INT 21h CONSOLE:SERVIÇOS 01-0Ch AJUSTE DE INTERRUPÇÃO: 25h,35h DATA E HORA: 2Ah-2Dh FINALIZAÇÃO DE PROGRAMA: 4Ch,31h DIRETÓRIO E ARQUIVO:39h-43h INT 21h - DOS Leitura teclado eco Se um caractere ASCII foi digitado Se AL =0, a função deve ser repetida para se obter o código de varredura, pois uma tecla especial foi digitada. Se um caracter não foi digitado, aguarda. Sensível a control-c e control-break char db? mov ah,1 mov char,al Mostra caracter em tela AH = 02h DL = código ASCII do caracter. Ex.: mov ah,02 mov dl, * INT 21h - DOS Leitura de entrada auxiliar (serial 1) AH = 03h Se um caracter não foi digitado, aguarda. Sensível a control-c A INT 14h e o controle direto são mais adequados para leitura onde não tolere a perda de dados. char db? mov ah,3 mov char,al Transmite caracter via saída auxiliar AH = 04h DL = código ASCII do caracter. A INT 14h e o controle direto são mais adequados para leitura onde não tolere a perda de dados. Ex.: mov ah,04 mov dl, * Leitura teclado sem eco AH = 08h Se um caractere ASCII foi digitado Se AL =0, a função deve ser repetida para se obter o código de varredura, pois uma tecla especial foi digitada. Se um caracter não foi digitado, aguarda. Sensível a control-c e control-break char db? mov ah,8 mov char,al Mostra cadeia de caracter em tela AH = 09h DS:DX = apontam para o endereço do início da cadeia de caracter. A cadeia dever ser finalizada com $ cr equ 0dh lf equ 0ah mens db Bom Dia, cr, lf, $ mov dx, seg mens lea dx, mens mov ah,9 Leitura teclado com buffer AH = 0Ah DS:DX = apontam para o endereço do início do buffer. Formato do buffer: byte conteúdo 0 máximo número de carateres a serem lidos. 1 número de caracteres que de fato foram lidos. 2+ cadeia de caracteres lida. Terminada com cr (0dh) Ex.: buff db 81 db 0 db 81 dup(0) mov ah,0ah mov dx,seg buff 4

Define vetor de interrupção AH = 25h AL = número da interrupção DS:DX = segmento e offset do serviço de tratamento da interrupção. mov ah,25h mov al,0 mov dx,seg DIVZ lea dx,divz DIVZ proc far iret DIVZ endp Obtém vetor de interrupção AH = 35h AL = número da interrupção : ES:BX = segmento e offset do serviço de tratamento da interrupção. OldDivZS dw? OldDivZOdw? mov ah,35h mov al,0 mov OldDivZO,bx mov bx,es mov OldDivZS,bx Obtém data AH = 2Ah CX = ano DH = mês (1-12) DL = dia ( 1-31) : AL = Dia da semana (0= dom, 7=sab) Define data AH = 2Bh CX = ano DH = mês (1-12) DL = dia ( 1-31) : AL = 0, se definido com sucesso AL = FFh, caso contrário. Obtém tempo AH = 2Ch CH = hora (0 23) CL = minutos (0-59) DH = segundos ( 0-59) DL = milisegundos (0 99) Define tempo AH = 2Dh CH = hora (0 23) CL = minutos (0-59) DH = segundos ( 0-59) DL = milisegundos (0 99) AL = 0, se definido com sucesso AL = FFh, caso contrário. : Alocação de Memória AH = 48h BX = N. de parágrafos Se CF=0, AX segmento alocado Offset 0 é a primeira localização Caso contrário, AX contém o código do Erro e BX contem o maior bloco de parágrafos disponível Liberação de Memória AH = 49h ES = Segmento a ser liberado Se CF=0, a memória foi liberada Caso contrário, AX terá o código de erro Ajuste de bloco de memória AH = 4Ah ES = Endereço do segmento a ser ajustado BX = novo tamanho * 1 parágrafo = 16 bytes Se CF=0, a memória foi liberada Caso contrário, AX terá o código de erro e BX contém o n. máximo de parágrafos disponíveis para um aumento na alocação Cria arquivo AH = 3Ch CX = atributo bit significado 0 somente leitura 1 invisível 2 sistema DS:DX apontam para o endereço que contem o caminho (string terminada por 0) e o nome do arquivo a ser criado. CF = 0 e AX = manipulador, se sucesso. CF = 1 e AX = código de erro, caso contrário. fname db C:\MYDIR\MYFILE.DAT,0 mov ah,3ch xor cx,cx; atributo normal mov dx,seg fname lea dx,fname mov fhandle,ax Abri arquivo AH = 3Dh AL = modo de acesso 0 leitura 1 escrita 2 leitura e escrita DS:DX apontam para o endereço que contem o caminho (string terminada por 0) e o nome do arquivo a ser criado. CF = 0 e AX = manipulador, se sucesso. CF = 1 e AX = código de erro, caso contrário. fname db C:\MYDIR\MYFILE.DAT,0 mov ah,3dh mov al,2; leitura e escrita mov dx,seg fname lea dx,fname mov fhandle,ax 5

Fechar arquivo AH = 3Eh CF = 0, se sucesso. CF = 1, caso contrário. mov ah,3eh Ler arquivo AH = 3Fh CX = número de bytes a ser lido DS:DX = endereço inicial do buffer CF = 0, se sucesso. AX = bytes lidos CF = 1, caso contrário. AX = código de erro. buff db 1024 dup(?) mov ah,3fh mov dx, seg buff mov cx,1024 cmp ax,cx jl done Escrever em arquivo AH = 40h CX = número de bytes a ser escrito DS:DX = endereço inicial do buffer CF = 0, se sucesso. AX = bytes escritos CF = 1, caso contrário. AX = código de erro. buff db 1024 dup(?) mov ah,40h mov dx, seg buff mov cx,1024 cmp ax,cx jl done Apaga arquivo AH = 41h DS:DX apontam para o endereço que contem o caminho (string terminada por 0) e o nome do arquivo a ser apagado. CF = 0, se sucesso. CF = 1 e AX = código de erro, caso contrário. fname db C:\MYDIR\MYFILE.DAT,0 mov ah,41h mov dx,seg fname lea dx,fname Escrever em arquivo AH = 40h CX = número de bytes a ser escrito DS:DX = endereço inicial do buffer CF = 0, se sucesso. AX = bytes escritos CF = 1, caso contrário. AX = código de erro. buff db 1024 dup(?) mov ah,40h mov dx, seg buff mov cx,1024 cmp ax,cx jl done Posicionar Ponteiro de Arquivo AH = 42h AL = método de posicionamento CX:DX = deslocamento CF = 0, se sucesso. DX:AX = nova posição CF = 1, caso contrário. AX = código de erro. Método 0 - (absoluto) começo do arquivo 1 - relativo a posição atual 2 - (absoluto) fim do arquivo mov ah,42h mov cx,0 Mov dx,1024 6