Documente Academic
Documente Profesional
Documente Cultură
Grande do Norte
Unidade de Ensino de Natal
Gerncia de Tecnologia da Informao e Educacional de
Telemtica
Apostila de Curso
Verso 01.2000
Professora:
Anna Catharina
Material adaptado da apostila da disciplina de
Microprocessadores do prof. MSc. Jos Alberto Nicolau de Oliveira, DEE,
UFRN
Fevereiro/2000
Sumrio
Sumrio
1 Introduo a Microprocessadores
1.1
1.2
1.3
1
3
5
Arquitetura de Computadores
Arquitetura Bsica de Microprocessadores
Evoluo dos Microprocessadores
7
7
8
10
13
14
14
14
17
19
19
20
21
22
23
23
24
25
Sumrio
4.4.7
Anna Catharina/CEFET-RN/2000
39
ii
Sumrio
41
62
6.1
6.2
6.3
6.4
6.5
63
65
67
68
69
Anna Catharina/CEFET-RN/2000
iii
Sumrio
70
72
72
Interrupes do BIOS
Interrupes do DOS
72
72
Anna Catharina/CEFET-RN/2000
iv
Introduo a Microprocessadores
1 Introduo a Microprocessadores
1.1 Arquitetura de Computadores
Embora tenham ocorrido revolucionrias transformaes na rea de
Eletrnica, os microcomputadores de hoje ainda mantm a mesma
concepo funcional dos primeiros computadores eletrnicos. Tal
concepo, conhecida como Arquitetura de Von Neumann, definida
da seguinte forma:
Uma unidade central de processamento recebe informaes atravs
de uma unidade de entrada de dados, processa estas informaes
segundo as especificaes de um programa armazenado em uma
unidade de memria, e devolve os resultados atravs de uma
unidade de sada de dados.
A Figura 1 mostra, por diagrama de blocos, a organizao de um
sistema com estas caractersticas. O sistema de computador envolve,
como pode ser visto, o computador e os elementos geradores e receptores
de informaes.
Sistema de Computador
Elemento Gerador
das Informaes
Unidade de
Memria
Unidade de
Entrada de Dados
Unidade Central
de Processamento
Computador
Unidade de Sada
de Dados
Elemento Receptor
das Informaes
Figura 1
Introduo a Microprocessadores
Anna Catharina/CEFET-RN/2000
Introduo a Microprocessadores
Sistema de Microcomputador
CPU
Unidade de
Memria
Microprocessador
Microcomputador ou
Sistema de Microprocessador
Sistema internodevias
Unidade de E/ S
de Dados
Sistema externodevias
Elementos
Receptores/ Transmissores
das Informaes
Figura 2
Sistema de microcomputador
Perifricos para
Entrada de Dados
Teclado
Joystick
Scanner
Sensores
Mouse
Scanner
Figura 3
Microcomputador
Perifricos para
Entrada/ Sada de Dados
Perifricos para
Sada de Dados
Impressora
Monitor devdeo
Altofalante
Displays
Plotter
Unidadedediscorgido
Unidadedediscoflexvel
UnidadedeCD-ROM
Unidadedefita magntica
Perifricos de um microcomputador
Introduo a Microprocessadores
Microprocessador
Businterno
Registrador
de Instruo
Decodificador
de Instruo
Busdedados
Registros de
Uso Geral
FPU
Busdeendereo
ALU
Busdecontrole
Unidade de
Controle
Cache
Interna (L1)
Figura 4
Anna Catharina/CEFET-RN/2000
Introduo a Microprocessadores
Anna Catharina/CEFET-RN/2000
Introduo a Microprocessadores
Barramentos
Um barramento ou via ou bus um conjunto de pinos do
microprocessador por onde trafegam um ou mais sinais de hardware. Um
microprocessador possui trs tipos de barramentos utilizados para
transporte: bus de dados, bus de endereos e bus de controle.
Barramento de dados: Barramento bidirecional, utilizado para realizar
o intercmbio de dados e instrues com o exterior. Uma das principais
caractersticas de um microprocessador o nmero de bits que o
barramento de dados pode transferir, que determina se o processador
de 8, 16, 32 ou 64 bits. Determina o nmero de bits da palavra de dados
que pode ser transferida de/para o microprocessador e, tambm (quase
sempre) o tamanho da palavra de dados que pode ser operada pela ALU.
Barramento de endereos: Barramento unidirecional, constitudo de
um conjunto de linhas de endereo que indicam a posio de memria
onde se encontra o dado requisitado. Uma vez dada a posio, a
informao armazenada na memria passar CPU atravs do
barramento de dados. Define a quantidade de posies de memria e/ou
de portas de entrada/sada que podem ser acessadas pelo
microprocessador (para n bits do barramento de endereos, 2 n bytes de
memria podem ser endereados, ou seja, 2n endereos fsicos podem ser
acessados capacidade de endereamento).
Barramento de controle: Barramento bidirecional, formado por um
nmero varivel de linhas, atravs das quais se controlam as unidades
complementares (habilitao e desabilitao das memrias para leitura e
escrita, permisso para perifricos ou coprocessadores acessarem as vias
de dados e endereos). Transfere, para as diversas partes do sistema,
sinais que definem e orientam toda a sua operao.
Sinais de controle tpicos de um microprocessador so:
leia de uma posio de memria (memory read);
leia de uma porta de E/S (I/O read);
escreva em uma posio de memria (memory write);
escreva em uma porta de E/S (I/O write);
pedido de interrupo de programa (interruption request);
pedido de uso de vias (bus request ou hold request);
pedido de espera (wait ou ready);
sinal de relgio (clock); e
sinal de partida/reincio (reset).
Anna Catharina/CEFET-RN/2000
32
32
64
64
32
32
64KB
64KB
Intel
Celeron
32
64
32
32KB
Intel Pentium II
32
64
32
32KB
Intel Pentium II
Xeon
Intel Pentium III
32
64
32
32KB
32
64
32
32KB
Intel Pentium
Xeon
32
64
32
32KB
Pentium
III
Anna Catharina/CEFET-RN/2000
Introduo a Microprocessadores
instrues + 32KB dados
Semelhante ao K6. Mais velocidade (barramento externo de 100MHz)
Semelhante ao K6-2. Cache L2 (256KB) integrado ao processador. Cache L3 na
placa-me.
Cache L1 = 16KB instrues + 16KB dados; Cache L2 de 128KB integrada;
Tecnologia MMX;
FPU (32 e 64 bits); Execuo dinmica; Arquitetura superescalar
Cache L1 = 16KB instrues + 16KB dados; Tecnologia DIB; Tecnologia MMX;
Execuo dinmica; Cache L2 de 512KB; Suporte memria expandida de 36 bits
(endereamento de memria > 4GB)
Cache L2 de 1MB ou 2MB; Pentium II projetado para servidores e estaes de
trabalho
Cache L2 de 512KB; FPU (32, 64 e 80 bits); Tecnologia MMX; Tecnologia DIB;
Execuo dinmica; Suporte memria expandida de 36 bits; Internet Streaming
SIMD Extensions; Intel Processor Serial Number
Cache L2 de 512KB, 1MB ou 2MB; Pentium III projetado para servidores e
estaes de trabalho
Introduo a Microprocessadores
Introduo a Microprocessadores
Anna Catharina/CEFET-RN/2000
1
0
Anna Catharina/CEFET-RN/2000
1
1
Interface do
Busde Endereo
Bus deEndereo
Interface de
Controle de Vias
Bus deControle
Interface do
Busde Dados
UE
ALU
Registradores de
Uso Geral
Controle
da UE
Figura 5
Anna Catharina/CEFET-RN/2000
Bus deDados
Fila de
Pr-busca
UI
Fila de Instrues Decodificador
Decodificadas
de Instruo
1
2
Anna Catharina/CEFET-RN/2000
1
3
IF
ID
OF
EX
WB
UB
Busde Endereo
Busde Dados
Fila de pr-busca
UI
Fila de ID
UA UB
Busde Endereo
Busde Dados
UE
UA UB
Busde Endereo
Busde Dados
Figura 6
S( n)
T(1)
. S(n) 1, significa que o desempenho da estrutura pipelined
T(n)
melhor que ou igual ao da seqencial; caso contrrio, teremos 0 < S(n) <
1.
Exemplo: Dado o seguinte conjunto de instrues e os recursos
necessrios para sua execuo, calcule o CPI, considerando que as filas
presentes nas unidades comportam apenas uma instruo.
I1 = {UB, UI, UE, UA, UB}
I2 = {UB, UI, UE, UE}
I3 = {UB, UI, UE}
I4 = {UB, UI, UA, UB, UE,
UA, UB}
I5 = {UB, UI, UE, UA, UB}
I6 = {UB, UI, UE}
A Figura 7 ilustra como instrues so executadas na arquitetura escalar
com estrutura pipelined do processador. Observe que, no exemplo, as
execues das instrues 1, 4 e 5 exigem acesso aos barramentos
externos, enquanto as execues das demais instrues so feitas
internamente. Um dado importante para a execuo no pipeline a
capacidade das filas presentes na UI e na UB (de instrues decodificadas
e de pr-busca), que determina a quantidade mxima de instrues que
podero estar presentes nessas unidades. Uma observao deve ser feita
quanto UB: a fila de pr-busca armazena instrues a serem
decodificadas, no impedindo que outra instruo esteja acessando
barramentos para leitura ou escrita de dados na memria. Portanto, a
exigncia na UB que apenas uma instruo pode acessar os
Anna Catharina/CEFET-RN/2000
1
4
I5
I4
UI
I1
I2
I3
I3
I4
I5
I6
I6
UE
I1
I2
I2
I3
I5
I4
I6
UA
I1
I4
I5
I4
10
11
Ciclo
s
Figura 7
ciclos/instruo
11
=
6
1,83
Estrutura seqencial:
Total
de
Ciclos
5+4+3+7+5+3 = 27
N de Instrues = 6
CPI
27
=
6
ciclos/instruo
27
4,5
4,5
Anna Catharina/CEFET-RN/2000
1
5
CLK
Sinaisde
Controle
deDMA
A0 A19
D0 D15
HOLD
HLDA
Bus deEndereos
Bus deDados
BLE
BHE
Sinaisde
Controlede
Interrupo
INTA
INTR
Processador
80x86
NMI
W/ R
D/ C
RESET
M/ IO
Sinaisde
Controledo
Coprocessador
PEREQ
ADS
BUSY
READY
ERROR
LOCK
Figura 8
SinaisdeControle
deMemria eE/ S
Anna Catharina/CEFET-RN/2000
1
6
Tabela 1
Nome
CLK
A0-A19
D0-D15
Funo
Clock do sistema
Bus de endereo (20 bits)
Bus de dados (16 bits)
Byte enables Selecionam parte alta (BHE) e baixa
BHE, BLE
(BLE) do bus de dados
HOLD
Pedido de uso do bus de dados (pedido de DMA)
HLDA
Reconhecimento HOLD (reconhecimento de DMA)
INTR
Pedido de interrupo mascarvel
NMI
Pedido de interrupo no-mascarvel
RESET Reinicializao do sistema
PEREQ Requisio de dados pelo coprocessador
BUSY
Coprocessador ocupado
ERROR Erro no coprocessador
W/R
Referente a escrita (W) ou leitura (R)
D/C
Referente a dados (D) ou controle/cdigo (C)
M/IO
Referente a memria (M) ou E/S (IO)
ADS
Status de endereo (indicador de ciclo de barramento
vlido)
READY Pedido de espera (por um perifrico)
LOCK
Indicador de barramento ocupado
Nvel
Tipo Lgic
o
E
S
1
E/S
1
S
E
S
E
E
E
E
E
E
S
S
S
S
1
1
1
1
1
1
0
0
1/0
1/0
1/0
0
E
S
0
0
1
7
Anna Catharina/CEFET-RN/2000
1
8
CLK
PCLK
T
Figura 9
Temporizao genrica
Tabela 2
M/
D/ C
W/ R
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
IO
Reconhecimento de interrupo
Processador
ocioso
(nenhum
ciclo
barramento est sendo processado)
Leitura de dados numa interface de E/S
Escrita de dados numa interface de E/S
Leitura de cdigo na memria
Parado (halt/shutdown)
Leitura de dados na memria
Escrita de dados na memria
de
1
9
que uma memria ou um dispositivo de E/S lento possa ser atendido pelo
processador.
Em sistemas multiprocessados, comum o partilhamento de vias de
dados, endereos e controle. Para suprir o uso exclusivo de vias durante a
execuo de tarefas prioritrias, o processador dispe do sinal de sada
LOCK (ativado por software), durante o qual qualquer outro sistema ou
dispositivo ficar devidamente informado que nenhuma concesso de vias
poder ocorrer naquele momento.
Anna Catharina/CEFET-RN/2000
2
0
C1
T1
C2
T2
T1
C3
T2
C4
T1
tw
T2
PCLK
Bus de
Endereo
n+1
n+2
n+2
W/ R
M/ IO
D/ C
Bus de
Dados
ta
ta
n
taw
n+1
n+2
READY
ta: tempo de endereamento
taw: tempo de endereamento com pedido de espera
tw: tempo de espera
Figura 10
Anna Catharina/CEFET-RN/2000
Temporizao genrica
2
1
Registradores
Cache Interna (L1)
Capacidade de
Armazenamento
Tempo de acesso
Figura 11
Hierarquia de memria
Contedo
SegmentodeDados
C1
A3
+1
Figura 12
Partebaixa
Partealta
(quarteto)
0110 10102
+ 0000 01102
0111 0000BCD
Tabela 3
Valor
Binrio
Dgito
Hexadeci
mal
Valor
Decim
al
Dgito
BCD
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
Adio (A + C2(B)):
0000 0111
+ 1111 1000
1111 1111
2n-1
Figura 13
M1
n
22n-1
M2
2n
M3
3n
23n-1
24n-1
M0
M1
M2
M3
24n-4
24n-3
24n-2
24n-1
Figura 14
Convencional
UMB
0
640k
Estendida (XMS)
HMA
1M
????
Expandida (EMS)
Figura 15
M3
A31-A0
D31-D24
M2
BH3
Figura 16
D23-D16 BH2
M1
D15-D8 BH1
M0
D7-D0
BH0
M2
M1
M0
A31-A0
D31-D24 BH3 = 1
Figura 17
M3
A31-A0
D31-D24 BH3 = 1
Figura 18
A31-A0
D23-D16 BH2 = 1
D15-D8 BH1 = 1
D7-D0 BH0 = 0
M2
D23-D16 BH2 = 1
M1
M0
X+1
D15-D8 BH1 = 0
D7-D0 BH0 = 0
M3
M2
M1
M0
X+3
X+2
X+1
D31-D24 BH3 = 0
Figura 19
D23-D16 BH2 = 0
D15-D8 BH1 = 0
D7-D0 BH0 = 0
Busdeendereos
Controleda cache
Processador
Controle
Subsistema de
Memria Cache
Externa
Controle
Memria
Principal
Busdedados
Figura 20
Loop
Loop
Processador
Controle
Controle
Subsistema de
Memria Cache
Externa
Memria
Principal
Bus dedados
Figura 21
Acessos
cache
Total
decache
hits
Acessos
memria
principalTotaldecache
miss
ou
k1
k
Arquitetura de Software de um
Microprocessador
4 Arquitetura
de
Microprocessador
Software
de
um
O
conhecimento
da
arquitetura
de
software
de
um
microprocessador permite o desenvolvimento de programas sem a
necessidade de detalhes de implementao do chip. A arquitetura de
software de um processador compreende:
a forma de organizao da memria e da E/S;
que tipos de registradores esto disponveis internamente e
quais as suas funes;
que tipos de dados servem de operando;
quais os modos de endereamento existentes para se acessar
um operando na memria, numa E/S ou num dos registradores
internos; e
quais os comandos que constituem o seu conjunto de instrues.
Arquitetura de Software de um
Microprocessador
Estrutura
de Registros
15
IP
15 8 7
0
AH
AL
BH
BL
CH
CL
DH
DL
15
0
SP
BP
003FFh
00400h
Dados do
ROM BIOS
Programas
residentes do
DOS
Programas do
Usurio
9FFFFh
A0000h
Memria
deVdeo
SI
DI
Reservado
Mapeamento
de E/ S
0000h
00000h
Vetor deInterrupo
CS
DS
SS
ES
AX
BX
CX
DX
Mapeamento
de Memria
.
.
.
.
.
.
1KBytes
FFFFh
.
.
640KBytes
.
.
.
EFFFFh
F0000h
Programas
residentes do
ROM BIOS
FFFFFh
Figura 22
.
.
.
1MBytes
64KBytes
Arquitetura de Software de um
Microprocessador
4.2 Registradores
4.2.1 Registradores de Dados (Registradores de Uso Geral)
Os registradores de dados podem ser usados como:
4 registradores de 16 bits (AX, BX, CX e DX), para manipulao
de words (16 bits); ou
8 registradores de 8 bits (AL, AH, BL, BH, CL, CH, DL e DH),
para manipulao de bytes (8 bits).
A terminao L (low) ou H (high) define onde ser armazenado o
byte de mais baixa ordem ou o de mais alta ordem de uma palavra de 16
bits.
Embora considerados de uso igualitrio pela maioria das instrues
aritmticas, lgicas ou de transferncia de informao, os registradores
de dados apresentam algumas caractersticas prprias que os
diferenciam:
as instrues de multiplicao, diviso ou de transferncia de
dados de uma E/S exigem o registrador AX como acumulador e,
o registrador DX como registrador de dados auxiliar;
as instrues que usam forma de endereamento de memria
mais complexa, exigem o registrador BX como registrador de
base; e
as instrues que manipulam strings ou loops de contagem
exigem o registrador CX como registrador de contagem.
Arquitetura de Software de um
Microprocessador
Arquitetura de Software de um
Microprocessador
CS
SS
(CS)*16
(SS)*16
(DS)*16
(ES)*16
Figura 23
DS
ES
Arquitetura de Software de um
Microprocessador
Posio desejada
Deslocamento
Deslocamento
Endereo de base
de segmento
0000h
Endereo fsico
(representao do
endereo fsico)
Exemplo:
(valor do
Arquitetura de Software de um
Microprocessador
02000
0450
02450
Base
Deslocame
nto
Endereo
Fsico
Arquitetura de Software de um
Microprocessador
de
ndice
(Registradores
de
14
13
12
11
10
OF DF IF TF SF ZF
flagsde estado
flagsde controle
Figura 25
AF
PF
CF
Registrador de flags
Flags de Estado:
Os flags de estado, usados normalmente pelo programador como
auxiliares na hora de uma tomada de deciso, so setados (1) ou
resetados (0) aps a execuo de instrues aritmticas e lgicas,
refletindo propriedades caractersticas do resultado.
Todos os flags de estado vo para o nvel lgico 1 para indicar uma
ao correspondente ao seu nome.
Arquitetura de Software de um
Microprocessador
Flags de Controle:
O flags de controle controlam operaes do processador,
modificando o comportamento de instrues que sero executadas.
Os flags de controle presentes no processador so:
Arquitetura de Software de um
Microprocessador
Rotina deDepurao
Programa
2
5
1
4
3
6
4
Programa
Rotina de
Depurao
2
6
5
Figura 26
Arquitetura de Software de um
Microprocessador
4.3 Pilha
A pilha de um processador uma rea de memria usada para
guardar dados, normalmente valores presentes nos registradores, que,
devido complexidade do programa, precisam ser alterados, mas que
devem depois recuperar seu antigo valor. As instrues que fazem isso
so, basicamente PUSH e POP.
Os usos mais comuns da pilha so:
para salvar endereos de retorno para instrues na chamada e
nos retornos de subrotinas e ocorrncias de interrupes;
para salvar o contedo de registradores quando ocorre uma
chamada a subrotina;
para passar informaes de uma rotina para outra; e
para
armazenar,
temporariamente,
resultados
durante
operaes complexas.
No processador temos o registrador SS que contm o valor do
segmento reservado para a pilha e o ponteiro SP que indica, dentro desse
segmento, qual o offset do topo da pilha.
Aps a execuo de instrues que acessam dados na pilha, o
registrador SP automaticamente alterado (decrementado na insero e
incrementado na retirada), indicando o novo topo da pilha. SP assume,
inicialmente o valor 0000h, quando nenhum dado est presente na pilha
O registrador BP indica um deslocamento qualquer dentro da pilha,
entre os endereos da base e do topo da pilha. BP assume, inicialmente, o
valor 0000h (offset 0000), apontando para a base do segmento, podendo
receber atribuies durante a execuo do programa.
Todo acesso pilha feito em words, isto , no se pode acess-la
para guardar apenas o contedo dos registradores AL ou CL, sendo
necessrio guardar todo o AX ou o CX.
Uma caracterstica interessante e que deve ser notada que a pilha
do processador tem sua base num endereo de memria alto dentro do
segmento de pilha, crescendo em direo memria de endereo baixo
(Figura 27).
Arquitetura de Software de um
Microprocessador
SS
offset
0000
0001
.
.
.
Segmento
de Pilha
Base (Incio) do segmento = Fim da Pilha
ltimodado
. . .
FFFA
FFFB
FFFC
FFFD
FFFE
FFFF
Figura 27
3o dado
2o dado
1o dado
Segmento de pilha
Arquitetura de Software de um
Microprocessador
Arquitetura de Software de um
Microprocessador
Arquitetura de Software de um
Microprocessador
Situaoanterior
execuoda instruo
010016+0011
IP 0 0 1 1
01010h
01011h
01012h
01013h
CS : IP
CS 0 1 0 0
AX x x x x
Situaoapsa
execuoda instruo
BX 1 2 3 4
IP 0 0 1 3
Opcode
(linguagem
de mquina)
SegmentodeCdigo
Instruo anterior
XX
8B
MOV AX, BX
C3
Prxima instruo
XX
CS : IP
CS 0 1 0 0
AX 1 2 3 4
BX 1 2 3 4
Figura 28
Mneumnico
(linguagem assembly)
Arquitetura de Software de um
Microprocessador
Situao anterior
execuoda instruo
IP 0 0 1 3
01012h
01013h
01014h
01015h
CS : IP
CS 0 1 0 0
AX 1 2 3 4
Opcode
(linguagem
de mquina)
Segmento deCdigo
Instruo anterior
XX
B0
MOV AL, 17h
17
Prxima instruo
XX
Situaoaps a
execuo da instruo
IP 0 0 1 5
CS : IP
CS 0 1 0 0
AX 1 2 1 7
Figura 29
Mneumnico
(linguagem assembly)
Arquitetura de Software de um
Microprocessador
Situaoanterior
execuo da instruo
IP 0 0 1 5
Segmento deCdigo
01014h
XX
01015h
8B
01016h
1E
01017h
02
01018h
11
01019h
XX
CS : IP
CS 0 1 0 0
DS 1 3 0 0
BX 1 2 3 4
Situaoaps a
execuo da instruo
IP 0 0 1 9
Opcode
(linguagem
de mquina)
Mneumnico
(linguagem assembly)
Instruo anterior
Prxima instruo
CS : IP
CS 0 1 0 0
DS 1 3 0 0
DS : 1102
BX 5 1 2 0
Figura 30
Segmento deDados
14102h
20h
14103h
51h
LSB
MSB
Arquitetura de Software de um
Microprocessador
Situaoanterior
execuoda instruo
IP 0 0 1 9
CS : IP
CS 0 1 0 0
DS 1 3 0 0
AX 1 2 1 7
BX 5 1 2 0
Opcode
(linguagem
de mquina)
Mneumnico
(linguagem assembly)
01018h
01019h
0101Ah
0101Bh
Segmento deCdigo
Instruo anterior
XX
8B
MOV AX, [BX]
07
Prxima instruo
XX
18120h
18121h
SegmentodeDados
31h
LSB
00h
MSB
Situaoaps a
execuoda instruo
IP 0 0 1 B
CS : IP
CS 0 1 0 0
DS 1 3 0 0
BX 5 1 2 0
AX 0 0 3 1
DS : BX
Figura 31
Arquitetura de Software de um
Microprocessador
Figura 32
v+0
v+1
v+2
v+n-1
(DS
:
(BX+0102h))
[BX+0102h] = base (v) + deslocamento adicional deslocamento adicional
= ndice quantidade de bytes
Arquitetura de Software de um
Microprocessador
Endereo
Situaoanterior
execuoda instruo
IP 0 0 1 B
CS : IP
CS 0 1 0 0
DS 1 3 0 0
Situaoapsa
execuoda instruo
CX x x x x
IP 0 0 1 F
BX 5 1 2 0
CS 0 1 0 0
BX
CX
0 1 F F
SegmentodeCdigo
Instruo anterior
XX
8B
MOV CX, [BX+0102h]
8F
02
01
Prxima instruo
XX
18222h
18223h
SegmentodeDados
FFh LSB
01h
MSB
CS : IP
DS : (BX+0102)
Figura 33
Mneumnico
(linguagem assembly)
0101Ah
0101Bh
0101Ch
0101Dh
0101Eh
0101Fh
DS 1 3 0 0
5 1 2 0
Opcode
(linguagem
de mquina)
Arquitetura de Software de um
Microprocessador
A[BX][SI+8]
A[8+SI+BX]
[A+SI+BX+8]
Matriz: A[BX][SI] [A+BX+SI]
Vetor: A[BX] ou A[SI] [BX+A] ou [A+SI] [BX+SI] (BX
contm o endereo de A)
4.4.6 Modo de Endereamento Direto Indexado
Esse modo de endereamento tambm usado para manipulao de
vetores e feito utilizando-se os registradores SI ou DI como
indexadores. Um deslocamento somado a um desses registradores.
Outro operando: deslocamento dado por um nmero (base) + um
registrador de ponteiro de ndice (deslocamento adicional).
Exemplo (Figura 34): MOV DX, [0100h+SI]
DX (DS : 0100h+SI)
[0100h+SI] = base (v) + deslocamento adicional (ndice do elemento
nmero de bytes)
Arquitetura de Software de um
Microprocessador
Endereo
Situaoanterior
execuoda instruo
IP 0 0 1 F
CS : IP
CS 0 1 0 0
DS 1 3 0 0
Situaoapsa
execuoda instruo
DX x x x x
IP 0 0 2 3
SI
0 0 2 0
Opcode
(linguagem
de mquina)
Mneumnico
(linguagem assembly)
0101Eh
0101Fh
01020h
01021h
01022h
01023h
SegmentodeCdigo
Instruo anterior
XX
8B
MOV DX, [0100h+SI]
94
00
01
Prxima instruo
XX
13120h
13121h
SegmentodeDados
45h
LSB
1Fh
MSB
CS : IP
CS 0 1 0 0
DS 1 3 0 0
SI
0 0 2 0
DX 1 F 4 5
DS : (0100+SI)
Figura 34
Arquitetura de Software de um
Microprocessador
A=
am1 am2 am3 amn mn a[m][1] a[m][2] a[m][3] a[m][n] mn
e representao computacional equivalente dada por
a(m1),0 a(m1),1 a(m1),2 a(m1),(n1)
ou, alternativamente,
mn
Arquitetura de Software de um
Microprocessador
A=
A=
A[0]
A[1]
A
[
m
1
]
Arquitetura de Software de um
Microprocessador
a[0][0]
a[0][1]
. . .
a[0][n-1]
Representao
A+0n+0 = Base
A+0n+1
. . .
A+0n +(n-1)
A[1]
a[1][0]
a[1][1]
. . .
a[1][n-1]
A+1n+0
A+1n +1
. . .
A+1n +(n-1)
. . .
. . .
A[m]
a[m-1][0]
a[m-1][1]
. . .
a[m-1][n-1]
n colunas
n colunas
n colunas
Figura 35
Vetor Correspondente
v[0]
v[1]
. . .
v[n-1]
v[(n-1)+1] = v[n]
v[(n-1)+2] = v[n+1]
. . .
v[n+(n-1)] = v[2n+1]
. . .
A+(m-1)n+0
A+(m-1)n+1
. . .
A+(m-1)n+(n-1)
. . .
v[(m-1)n]
v[(m-1)n+1]
. . .
v[(m-1)n+(n-1)] = v[mn-1]
Situao anterior
execuo da instruo
IP 0 0 2 3
CS : IP
CS 0 1 0 0
DS 1 3 0 0
Situao aps a
execuo da instruo
BX 5 1 2 0
IP 0 0 2 7
AX
0 0 3 1
CS 0 1 0 0
SI 0 0 2 0
DS 1 3 0 0
Opcode
(linguagem
de mquina)
Mneumnico
(linguagem assembly)
01022h
01023h
01024h
01025h
01026h
01027h
Segmento deCdigo
Instruo anterior
XX
8B
MOV AH, [BX+0100h+SI]
80
00
01
Prxima instruo
XX
18240h
18241h
SegmentodeDados
11h
A3h
CS : IP
SI 0 0 2 0
BX 5 1 2 0
AX 1 1 3 1
DS : (0100+BX+SI)
Figura 36
Soma
Opcode Operando
(Coluna 9) (Coluna 17)
DW
Figura 37
5 DUP (?)
Comentrio
(Coluna 41)
; vetor soma
mneumnico [operando(s)]
[; comentrio]
AX, @DATA
DS, AX
ES, AX
MOV
INT
AH, 4Ch
21h
Principal ENDP
END
Principal
AX, @DATA
DS, AX
ES, AX
Tabela 4
Modelo
de
Memria
TINY
SMALL
MEDIUM
COMPACT
LARGE
HUGE
FLAT
Atributo
para
Dados
NEAR
NEAR
NEAR
FAR
FAR
FAR
NEAR
Sistema
Operacional
DOS
DOS e Windows
DOS e Windows
DOS e Windows
DOS e Windows
DOS e Windows
Windows NT
Segment
o
nico
Sim
No
No
No
No
No
Sim
Significado
Display source line with error
message
Debug info: zi=full
[,listagem]
programa
TLINK.EXE
objeto.
Significado
No map file at all
Full
symbolic
information
debug
[,
Segmento de Cdigo
Flags
Registradores
Segmento de Pilha
Segmento de Dados
Figura 38
Funes:
F2: brkpt (insere um breakpoint)
F4: here (executa at a posio do cursor)
F7: trace (executa linha por linha, sem entrar nos desvios e subotinas)
F8: step (executa linha por linha, entrando nos desvios e subotinas)
F9: run (executa at o final do programa ou at um breakpoint)
CTRL-F2: reset (reinicia o programa, sem precisar sair do depurador)
db
dw
db
DB
V,I,N,I,C,I,U,S
VINICIUS
DB
1,5,2,8,3,5
DW
Formato
Operao
MOV opd,
opf
(opd)
(opf)
Operando fonte
Registrador
Memria
Registrador
Dado imediato
Dado Imediato
Registrador
Registrador de
segmento
Formato
Operao
XCHG opd,
opf
(opd)
(opf)
Operando
fonte
Registrador
Registrador
Formato
Operao
XLATB
XLAT
XLAT
fonte_da_tabela
Formato
Operao
LEA reg16,
offset
(reg16)
(offset)
Formato
Operao
LxS reg16,
offset
(reg16)
(offset)
(xS)
(segmento)
Formato
Operao
ADD opd,
opf
ADC
ADC opd,
opf
SUB
SUB opd,
opf
SBB
SBB opd,
opf
Operando
fonte
Registrador
Memria
Registrador
Dado imediato
Dado Imediato
Format
Operao
o
INC opd (opd) (opd) +
1
DEC opd (opd) (opd)
1
NEG opd (opd) (opd)
DAA:
Mneumni
co
AAA
Format
o
AAA
DAA
AAS
DAA
AAS
DAS
DAS
Operao
(AL)BCD (AL)2
(AH) 0, se (AL)BCD
9
(AH) 1, se (AL)BCD
>9
(AL)BCD (AL)2
(AL)BCD (AL)2
(AH) 0, se (CF) = 0
(AH) FFh, se (CF)
=1
(AL)BCD (AL)2
AX
(AH)
Resto
(DX)
Resto
AX
de8bits
operando
Operando de 16 bits:
DX, AX
DX, AX
de16bits
operando
AAM:
Ajusta o resultado do acumulador AL aps uma operao de
multiplicao com nmeros BCD no compactados, devolvendo-o a
AX (AH contm as dezenas e AL as unidades).
Formato de implementao: AAM
AAD:
Ajusta o dividendo contido em AX antes da operao de
diviso de nmeros BCD no compactados.
Formato de implementao: AAD
Observao: No existe multiplicao ou diviso para nmeros BCD
compactados. Portanto, necessrio descompact-los antes de realizar
essas operaes.
Formato
Operao
AND opd,
opf
OR opd, opf
XOR opd,
opf
NOT opd
Operando
fonte
Registrador
Memria
Registrador
Dado imediato
Dado Imediato
SHR:
Observao:
Deslocamentos
representam
multiplicaes
por
potncias de 2:
SHL AX, n AX AX 2n
SHR AX, n AX AX
2-n
ROL, ROR:
Retorna o valor da expresso rotacionada n bits para a
esquerda ou direita.
Formato de implementao: ROR destino, n ROL destino, n
RCL, RCR:
Retorna o valor da expresso, acoplado do carry flag
direita ou esquerda, rotacionada n bits para a esquerda ou direita,
respectivamente.
Formato de implementao: RCR destino, n RCL destino, n
Format Operao
o
STC
CF 1
CLC
CF 0
CMC
CF CF
Format
o
STD
CLD
STI
CLI
Opera
o
DF 1
DF 0
IF 1
IF 0
Formato
Operao
CMP
CMP op1,
op2
op1 op2
seguida,
normalmente, de instrues de jumps condicionais para testar os
resultados da comparao.
Modo de Operao:
CMP op1, op2
op2
Registrador
Memria
Registrador
Dado
imediato
Dado
Imediato
Instrues de Desvio
flags e
Jxxx label_destino
onde xxx uma abreviao para uma condio particular. Se a condio
verdadeira, o processador continua a execuo a partir da primeira linha
de comando aps o label; caso contrrio, a execuo continua na prxima
instruo da seqncia. Observao: o label destino deve estar a, no
mximo, 128 bytes acima ou abaixo do local do jump.
O processador tem dois conjuntos de jumps condicionais que podem
ser usados aps uma comparao. Os conjuntos so similares; a nica
diferena que um usado com nmeros sinalizados e o outro com
nmeros no sinalizados.
Formato de implementao do conjunto comparao/instruo de jumps
condicionais:
CMP
op1, op2
Jxxx label_destino
...
; instrues da seqncia
label_destino:
Mneumni
co
Formato
Operao
JB/JNAE
JBE/JNA
JE
JNE
(CF=0)
JB destino Jump para destino
JBE destino Jump para destino
(CF=1 ou ZF=1)
JE destino Jump para destino
JNE destino Jump para destino
se abaixo (CF=1)
se abaixo ou igual
se igual (ZF=1)
se diferente (ZF=0)
Mneumni
co
Formato
Operao
Instrues de Repetio
do
conjunto
inicializao
de
; instrues a serem
executadas
LOOP nome_do_label
O valor de CX decrementado a cada passo e o loop ser executado
enquanto o contedo de CX for no nulo.
LOOPE (LOOPZ) e LOOPNE (LOOPNZ):
O princpio de utilizao o mesmo da instruo LOOP. A diferena
principal que a condio para que o lao seja executado inclui no
somente o valor do contedo de CX, mas o resultado de uma comparao,
executada pela instruo imediatamente anterior.
Formato de loops gerados a partir de LOOPE (LOOPZ) e LOOPNE
(LOOPNZ):
MOV
CX, nmero_de_vezes
nome_do_label:
...
; instrues a serem
executadas
CMP
LOOPxx
op1, op2
nome_do_label
LinguagemdeAltoNvel
Se (cond), ento
Seno
Fim se
LinguagemAssembly
CMP cond
Jcond entao
JMP senao
entao:
JMP fim_se
senao:
fim_se:
CMP cond
JNcond senao
entao:
JMP fim_se
senao:
fim_se:
seqncia
de
Formato de Implementao:
LinguagemdeAltoNvel
LinguagemAssembly
Repita
repita:
repita:
At que (cond)
CMP cond
Jcond fim_repita
JMP repita
fim_repita:
CMP cond
JNcondrepita
fim_repita:
LinguagemAssembly
Repita
repita:
repita:
Enquanto (cond)
CMP cond
JNcond fim_repita
JMP repita
fim_repita:
CMP cond
Jcondrepita
fim_repita:
LinguagemdeAltoNvel
Enquanto (cond), repita
Fim enquanto
LinguagemAssembly
enquanto:
CMP cond
Jcond repita
JMP fim_enquanto
repita:
JMP enquanto
fim_enquanto:
enquanto:
CMP cond
JNcond fim_enquanto
repita:
JMP enquanto
fim_enquanto:
LinguagemdeAltoNvel
para contador de n a 1, faa
Fim para
LinguagemAssembly
MOV contador, 1
para:
MOV contador, 1
para:
CMP contador, n
JE fim_para
JMP para
fim_para:
CMP contador, n
JNE para
fim_para:
LinguagemAssembly
MOV CX,n
para:
LOOP para
fim_para:
LinguagemdeAltoNvel
Case
cond_1:
...
cond_n:
Seno:
Fim case
LinguagemAssembly
case:
CMP (cond_1)
Jcond_1 caso_1
...
CMP (cond_n)
Jcond_n caso_n
JMP senao
caso_1:
JMP fim_case
...
caso_n:
seno:
JMP fim_case
fim_case:
Interrupes e Excees
6 Interrupes e Excees
As interrupes so sinais enviados ao microprocessador, atravs
dos quais tarefas sendo executadas so suspensas temporariamente e
atendida um outra tarefa que necessita de uma ateno imediata. Muitas
interrupes so destinadas a tarefas comuns que praticamente todos os
softwares necessitam, como por exemplo a obteno de digitaes feitas
no teclado ou a abertura de arquivos.
Os tipos de interrupes possveis no processador so:
as interrupes por hardware: a INTR (interrupo mascarvel)
e a NMI (interrupo no mascarvel);
a TRAP, quando ocorre um pedido de execuo de programa em
passo nico (trap flag ativado: TF = 1);
a INTO, quando verificado um erro de transbordamento
(overflow);
a de erro de diviso por zero; e
as interrupes por software do tipo INT n.
A interrupo por hardware iniciada pelos circuitos existentes na
placa do sistema, por uma placa expanso ou atravs de uma porta
conectada a um dispositivo externo. As interrupes por hardware podem
ser iniciadas por eventos to diversos como um pulso do chip do timer do
computador, um sinal vindo de um modem ou o pressionar de um boto
do mouse. A interrupo do teclado um exemplo tpico de interrupo
por hardware. Existe um circuito controlador do teclado na placa de
sistema do computador que monitora o teclado para receber entrada de
dados. O controlador do teclado gera a interrupo 09H todas as vezes
que receber um byte de dados (cdigo correspondente a tecla
pressionada). O BIOS possui uma rotina de tratamento para a interrupo
09H, cuja finalidade ler o byte de dados a partir do controlador de
teclado, processando-o em seguida. Se a interrupo do teclado no
processar o cdigo de tecla recebido no momento da chegada, o cdigo
pode ser perdido quando outra tecla for pressionada.
Por outro lado, as interrupes por software sero iniciadas atravs
de programas do usurio, e no pelo hardware do computador. Um
programa chama as interrupes por software para poder realizar suas
tarefas, como por exemplo apresentar um caracter na tela.
Algumas interrupes executam mais de uma tarefa, e, ao serem
chamadas, deve ser especificado um nmero de funo. Por exemplo, a
funo 00h da interrupo 01h retorna a contagem da hora do dia
existente no BIOS do computador, e a funo 01h da mesma interrupo
ajusta esta contagem. Os nmeros das funes so quase sempre
colocados no registrador AH do processador antes da chamada da
interrupo. Na Linguagem Assembly pode-se chamar a funo 0Ah
(apresentar caractere) da interrupo 10h do BIOS, escrevendo:
Interrupes e Excees
MOV
INT
AH,0Ah
10h
Interrupes e Excees
Interrupes e Excees
Memria
Principal
00000
n4
...
IP
IP
CS
CS
...
CS:IP
003FFh
...
CS:IP
Rotina de
Serviode
Interrupo
Figura 39
Interrupes e Excees
Vetores de interrupo
passo nico
INT 02h
NMI
INT 03h
breakpoint
INT 04h
overflow
INT 05h
INT 06h
reservada
INT 07h
reservada
INT 08h
IRQ0
INT 09h
IRQ1
Interrupes e Excees
0034h
0037h
0038h
003Bh
003Ch
003Fh
0040h
0043h
...
0084h
0087h
...
01BCh
01BFh
01C0h
01C3h
01C4h
01C7h
01C8h
01CBh
01CCh
01CFh
01D0h
01D3h
01D4h
01D7h
01D8h
01DBh
01DCh
01DFh
01E0h
01E3h
...
00FCh
03FFh
IRQ9
INT 72h
IRQ10
INT 73h
IRQ11
INT 74h
IRQ12
INT 75h
IRQ13
INT 76h
IRQ14
INT 77h
IRQ15
Interrupes e Excees
Interrupes e Excees
Interrupes e Excees
Interrupes e Excees
INT
Programa
Rotina deServiode
Interrupo(ISR)
IRET
Figura 40
Interrupes e Excees
6.3 Interrupo
por
Interrupes 8259
Hardware:
Controlador
de
Escravo
Mestre
IRQ
IRQ0
IRQ1
IRQ2
IRQ8
IRQ9
IRQ10
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
IRQ3
Interrupes e Excees
IRQ4
IRQ5
IRQ6
IRQ7
INT
INTA
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
INT
INTA
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
IRQ8
IRQ10
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
PIC Escravo
Figura 41
Interrupes e Excees
6.4 Habilitao,
Interrupes
Desativao
ou
Mascaramento
de
Interrupes e Excees
Tecla
Ctrl @
Ctrl A
Ctrl B
Ctrl C
Ctrl D
Ctrl E
Ctrl F
Ctrl G
Ctrl H
Ctrl I
Ctrl J
Ctrl K
Ctrl L
Ctrl M
Ctrl N
Ctrl O
Ctrl P
Ctrl Q
Ctrl R
Ctrl S
Ctrl T
Ctrl U
Ctrl V
Ctrl W
Ctrl X
Ctrl Y
Ctrl Z
Ctrl [
Ctrl \
Ctrl ]
Decim Hexa
al
0
00
1
01
2
02
3
03
4
04
5
05
6
06
7
07
8
08
9
09
10
0A
11
0B
12
0C
13
0D
14
0E
15
0F
16
10
17
11
18
12
19
13
20
14
21
15
22
16
23
17
24
18
25
19
26
1A
27
1B
28
1C
29
1D
Anna Catharina/CEFET-RN/2000
Ctrl ^
Ctrl _
30
31
1E
1F
34
22
#
35
23
#
$
36
24
$
%
37
25
%
&
38
26
&
39
27
(
40
28
(
)
41
29
)
*
42
2A
*
+
43
2B
+
,
44
2C
,
45
2D
.
46
2E
.
/
47
2F
/
0
48
30
0
1
49
31
1
2
50
32
2
3
51
33
3
4
52
34
4
5
53
35
5
6
54
36
6
7
55
37
7
8
56
38
8
9
57
39
9
:
58
3A
:
;
<
=
>
?
;
<
=
>
?
Smbo
lo
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Tecla
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
59
60
61
62
63
3B
3C
3D
3E
3F
Decim Hexa
al
64
40
65
41
66
42
67
43
68
44
69
45
70
46
71
47
72
48
73
49
74
4A
75
4B
76
4C
77
4D
78
4E
79
4F
80
50
81
51
82
52
83
53
84
54
85
55
86
56
87
57
88
58
Y
Z
[
\
]
^
_
Y
Z
[
\
]
^
_
Smbo
lo
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
Tecla
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
89
90
91
92
93
94
95
59
5A
5B
5C
5D
5E
5F
Decim Hexa
al
96
60
97
61
98
62
99
63
100
64
101
65
102
66
103
67
104
68
105
69
106
6A
107
6B
108
6C
109
6D
110
6E
111
6F
112
70
113
71
114
72
115
73
116
74
117
75
118
76
1
2
4
w
x
y
z
{
|
}
~
Ctrl <-
119
120
121
122
123
124
125
126
127
77
78
79
7A
7B
7C
7D
7E
7F
Anna Catharina/CEFET-RN/2000
1
2
5
Smbo
lo
Tecla
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Decim Hexa
al
128
80
129
81
130
82
131
83
132
84
133
85
134
86
135
87
136
88
137
89
138
8A
139
8B
140
8C
141
8D
142
8E
143
8F
144
90
145
91
146
92
147
93
148
94
149
95
150
96
151
97
152
98
153
99
154
9A
155
9B
156
9C
157
9D
158
9E
Anna Catharina/CEFET-RN/2000
Alt 159
Smbo
lo
Tecla
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
159
9F
Decim Hexa
al
160
A0
161
A1
162
A2
163
A3
164
A4
165
A5
166
A6
167
A7
168
A8
169
A9
170
AA
171
AB
172
AC
173
AD
174
AE
175
AF
176
B0
177
B1
178
B2
179
B3
180
B4
181
B5
182
B6
183
B7
184
B8
185
B9
186
BA
187
BB
188
BC
Alt 189
Alt 190
Alt 191
Smbo
lo
Tecla
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
189
190
191
BD
BE
BF
Decim Hexa
al
192
C0
193
C1
194
C2
195
C3
196
C4
197
C5
198
C6
199
C7
200
C8
201
C9
202
CA
203
CB
204
CC
205
CD
206
CE
207
CF
208
D0
209
D1
210
D2
211
D3
212
D4
213
D5
214
D6
215
D7
216
D8
217
D9
218
DA
Smbo
lo
Alt
Alt
Alt
Alt
Alt
219
220
221
223
223
Tecla
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
219
220
221
222
223
DB
DC
DD
DE
DF
Decim Hexa
al
224
E0
225
E1
226
E2
227
E3
228
E4
229
E5
230
E6
231
E7
232
E8
233
E9
234
EA
235
EB
236
EC
237
ED
238
EE
239
EF
240
F0
241
F1
242
F2
243
F3
244
F4
245
F5
246
F6
247
F7
248
F8
1
2
6
Alt
Alt
Alt
Alt
Alt
Alt
Alt
249
250
251
252
253
254
255
249
250
251
252
253
254
255
F9
FA
FB
FC
FD
FE
FF
Anna Catharina/CEFET-RN/2000
1
2
7
Decim Hexa
al
30
1E
Alt + A
48
30
Alt + B
46
2E
Alt + C
32
20
Alt + D
18
12
Alt + E
33
21
Alt + F
34
22
Alt + G
35
23
Alt + H
23
17
Alt + I
36
24
Alt + J
37
25
Alt + K
38
26
Alt + L
50
32
Alt + M
49
31
Alt + N
24
18
Alt + O
25
19
Alt + P
16
10
Alt + Q
19
13
Alt + R
31
1F
Alt + S
20
14
Alt + T
22
16
Alt + U
47
2F
Alt + V
17
11
Alt + W
45
2D
Alt + X
21
15
Alt + Y
44
2C
Alt + Z
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt
+
+
+
+
+
+
+
+
+
+
0
1
2
3
4
5
6
7
8
9
129
120
121
121
123
124
125
126
127
128
81
78
79
7A
7B
7C
7D
7E
7F
80
Anna Catharina/CEFET-RN/2000
Tecla
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
Decim Hexa
al
59
3B
60
3C
61
3D
62
3E
63
3F
64
40
65
41
66
42
67
43
68
44
133
85
134
86
Alt + F1
Alt + F2
Alt + F3
Alt + F4
Alt + F5
Alt + F6
Alt + F7
Alt + F8
Alt + F9
Alt + F10
Alt + F11
Alt + F12
104
105
106
107
108
109
110
111
112
113
139
140
68
69
6A
6B
6C
6D
6E
6F
70
71
8B
8C
Ctrl + F1
Ctrl + F2
Ctrl + F3
Ctrl + F4
Ctrl + F5
Ctrl + F6
Ctrl + F7
Ctrl + F8
Ctrl + F9
Ctrl +
F10
Ctrl +
F11
Ctrl +
F12
94
95
96
97
98
99
100
101
102
103
5E
5F
60
61
62
63
64
65
66
67
137
89
138
8A
Shift +
F1
Shift +
F2
Shift +
F3
Shift +
84
54
85
55
86
56
87
57
1
2
8
1
2
8
Anna Catharina/CEFET-RN/2000
1
2
9
1
2
9
Anna Catharina/CEFET-RN/2000
1
3
0
1
3
0
Anna Catharina/CEFET-RN/2000
1
3
1
1
3
1
Anna Catharina/CEFET-RN/2000
1
3
2
1
3
2
Anna Catharina/CEFET-RN/2000
1
3
3
1
3
3
Anna Catharina/CEFET-RN/2000
1
3
4
1
3
4
Anna Catharina/CEFET-RN/2000
1
3
5
1
3
5
Anna Catharina/CEFET-RN/2000
1
3
6
1
3
6
Anna Catharina/CEFET-RN/2000
1
3
7
1
3
7
F4
Shift +
F5
Shift +
F6
Shift +
F7
Shift +
F8
Shift +
F9
Shift +
F10
Shift +
F11
Shift +
F12
88
58
89
59
90
5A
91
5B
92
5C
93
5D
135
87
136
88
Tecla
Decim Hexa
al
130
82
Alt + 131
83
Alt + =
83
53
Del
79
4F
End
71
47
Home
82
52
Ins
81
51
PgDn
73
49
PgUp
72
48
75
4B
77
4D
80
50
115
73
Crtl +
116
74
Crtl +
117
75
Crtl +
End
119
77
Crtl +
Home
118
76
Crtl +
PgDn
132
84
Crtl +
PgUp
114
72
Ctrl +
PrtSc
15
0F
Shift+Tab
Anna Catharina/CEFET-RN/2000
1
3
8
1
3
8
Anna Catharina/CEFET-RN/2000
1
3
9
1
3
9
Interrupes do BIOS
INT 10h Funes de Vdeo
Funo 00h Seleciona Modo de Tela
Entrada:
AL = Modo
AH = 0
Modos de Tela
Mxim
Mod Resolu
o
Core
o
o
Pgina
s
s
00h
8
16
4025
Tipo
Adaptadores
Texto
01h
4025
16
Texto
02h
8025
4/8
16
Texto
03h
8025
4/8
16
Texto
04h 320200
Grfico
05h 320200
Grfico
06h 640200
Grfico
1/8
Texto
16
16
2
4/16
2
Grfico
Grfico
Grfico
Grfico
Grfico
CGA, EGA,
VGA
CGA, EGA,
VGA
CGA, EGA,
VGA
CGA, EGA,
VGA
CGA, EGA,
VGA
CGA, EGA,
VGA
CGA, EGA,
VGA
MDA, EGA,
VGA
EGA, VGA
EGA, VGA
EGA, VGA
EGA, VGA
VGA
07h
8025
0Dh
0Eh
0Fh
10h
11h
320200
640200
640350
640350
640480
2
2
1
Anna Catharina/CEFET-RN/2000
Caract
ere
Buf
er
916
B800
916
B800
916
B800
916
B800
88
B800
88
B800
88
B800
916
B800
88
814
814
814
816
A000
A000
A000
A000
A000
1
1
16
256
Grfico
Grfico
VGA
VGA
816
88
A000
A000
Anna Catharina/CEFET-RN/2000
1
4
1
Erro
Nenhum erro
Comando ruim passado ao
controlador
Marca de endereo no
encontrada
Disco protegido
Setor no encontrado
Falha na reinicializao
Parmetros para o disco
errados
DMA ultrapassou fim do
segmento
Flag de trilha ruim no
encontrada
Verificao de setor ruim
encontrada
Dado erro corrigido
Falha no controlador
Falha em operao de busca
Nenhuma resposta do disco
Erro indefinido
Falha no sentido da operao
Anna Catharina/CEFET-RN/2000
1
4
3
Anna Catharina/CEFET-RN/2000
Bit de
AH
Status
ativo
7
Intervalo
6
Bit de
AL
Status
ativo
7
Detecta sinal de linha
recebido
6
Indicador de anel
4
3
Registrador shift
vazio
Registrador holding
vazio
Break detectado
Erro de estrutura
2
1
Erro de paridade
Erro de excesso
2
1
Dados preparados
4
3
Anna Catharina/CEFET-RN/2000
1
4
5
Anna Catharina/CEFET-RN/2000
1
4
6
Anna Catharina/CEFET-RN/2000
1
4
7
Interrupes do DOS
INT 21h Funes de Teclado, Vdeo, Disco, Relgio e
Memria
Funo 00h Trmino de programa
Entrada:
AH = 0
Funo 01h Entrada de caractere do teclado com eco
Entrada:
AH = 1
Sada:
AL = Cdigo ASCII da tecla ou 0
Observao:
Aguarda que um caractere seja digitado, caso nenhum seja
encontrado. Gera um eco do caractere na tela, na posio atual do
cursor. AL=0 quando um cdigo estendido for interceptado. A
interrupo deve ser repetida para que seja retornado o segundo
byte do cdigo em AL. Detecta a condio de Ctrl-Break. Ignora a
tecla <Esc>, e interpreta normalmente uma digitao de <Tab>.
<Backspace> faz com que o cursor retroceda um espao, mas o
caractere existente nessa posio no apagado, sendo coberto
pelo caractere recebido a seguir. <Enter> move o cursor para o
incio (CR), sem avano de linha (LF).
Funo 02h Sada de caractere na tela
Entrada:
AH = 2
DL = Cdigo ASCII do caractere
Funo 05h Sada de caractere na impressora
Entrada:
AH = 5
DL = Cdigo ASCII do caractere
Funo 06h I/O na console sem eco
Entrada:
Anna Catharina/CEFET-RN/2000
AH = 6
DL = FFh: ZF = 1 (nenhum caractere digitado) ou AL =
cdigo ASCII do caractere
DL < FFh: cdigo ASCII presente em DL enviado para a
tela
Observao:
Retorna digitaes sem espera (caso nenhuma disponvel).
No verifica Ctrl-C ou Ctrl-Break.
Funo 07h Entrada no filtrada de caractere sem eco
Funo 08h Entrada de caractere sem eco
Entrada:
AH = 7 ou 8, respectivamente
Sada:
AL = Cdigo ASCII da tecla
Observao:
Quando AL = 0, um cdigo estendido ter sido recebido e
ser necessrio repetir a interrupo para que o segundo byte seja
retornado em AL. A funo 08h detecta a condio de
Ctrl-Break. No ecoa na tela.
Funo 09h Escreve string na tela
Entrada:
DS:DX aponta para uma string terminada com o caractere $
AH = 9
Funo 0Ah Entrada de string pelo teclado
Entrada:
DS:DX aponta para o local onde a string ser armazenada
(mximo 254 caracteres)
[DS:DX] = quantidade de bytes alocados para a string
AH = 0Ah
Sada:
DS:DX = string digitada
[DS:(DX+1)] = nmero de caracteres lidos
Observao:
Faz eco da entrada na tela. Primeiro byte da string deve ser
inicializado com o tamanho. Segundo byte da string receber o
nmero de caracteres efetivamente lidos. ltimo caractere da
string = <ENTER>. A string comear a partir do terceiro byte.
Para ler uma string de n caracteres, deve-se alocar (n+3) bytes de
1
4
8
Anna Catharina/CEFET-RN/2000
1
4
9
AH = 13h
Sada:
AH = 21h
Sada:
Anna Catharina/CEFET-RN/2000
1
5
2
Anna Catharina/CEFET-RN/2000
1
5
4
Anna Catharina/CEFET-RN/2000
1
5
6
Anna Catharina/CEFET-RN/2000
1
5
8
acesso
negado,
17 no o mesmo dispositivo)
Observao:
O arquivo a ser renomeado no pode estar em uso ou deve
estar fechado.
Funo 57h Obtm ou determina data e hora de um arquivo
Entrada:
AH = 57h
BX = Descritor de arquivo
AL = 0 (obtm data e hora) ou 1 (fixa hora e data; CH =
hora, DX = data)
Sada:
Na obteno de data e hora, CX = Hora e DX = Data
CF = 0 (sucesso) ou 1 (erro; AL = 1 nmero de funo
invlido, 6 descritor invlido)
Observao:
Hora=2048horas+32minutos+segundos/2
e
Data=512(Ano-1980)+32ms+dia
Anna Catharina/CEFET-RN/2000
1
6
1