View
33
Download
3
Embed Size (px)
DESCRIPTION
Curso de Assembly PDF
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 1 de 9
1. Introduo aos Microcomputadores Digitais
1.1 Organizao de um computador digital
Um computador digital pode ser descrito de uma forma simplificada segundo o diagrama de blocos:
CLOCK
MEMRIAPRINCIPAL
DE ENTRADA
E SADA
UNIDADE CENTRAL DE PROCESSAMENTO - CPU
UNIDADE
DISPOSITIVOSDE E/S
Barramento de dados
Barramento de endereos
Barramento de controle
REGS. DE
PROPSITOGERAL
UNIDADE DEARITMTICA E LGICA
UNID. DE
CONTROLE
REGS.ESPECIAIS
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 2 de 9
Unidade Central de Processamento: - UCP ou CPU Unidade de Controle - UC Unidade de Aritmtica e Lgica - UAL ou ULA Registradores de Propsito Geral Registradores Especficos
Reg. de Dados da Memria - RDM Reg. de Endereos da Memria - REM Contador de Programa (Program Counter) - PC Registrador de Instrues - RI Apontador de Pilha (Stack Pointer) - SP Outros (conforme a CPU)
Memria Principal
Memria Secundria
Unidade de E/S Interfaces Canais de E/S Processadores de E/S
Dispositivos de E/S
Histrico:
Primeiros computadores eletrnicos surgiram na dcada de 30 IBM PC foi concebido em 1980
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 3 de 9
1.2 Memria
Memria: local do computador (hardware) onde se armazenam temporria ou definitivamente dados (nmeros, caracteres e instrues)
Posio de memria ou endereo: localidade fsica da memria onde se encontra o dado.
Organizao da memria:
Endereo Contedo ... ...
4MB 10110101 ... ...
1048576 01001010 ... ...
1765 01001101 ... ...
4 01010000 3 11111111 2 11101001 1 11011010 0 01100100
Obs: no 8086, a memria organizada em bytes (conjunto de 8 bits).
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 4 de 9
1.3 A CPU e a execuo de um programa
MEMRIA
UNIDADE CENTRAL DE PROCESSAMENTO - CPU
Barramento de dadosBarramento de endereosBarramento de controle
UNIDADE DEARITMTICA E LGICA
UNID. DE
CONTROLE
A B
C D
E F
... ...
RI
SP
RDM REM PC
Ciclo de busca e execuo de uma instruo
1a. etapa: Busca da instruo na memria (FETCH) REM
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 5 de 9
1.4 Linguagem de mquina e linguagem montadora
Exemplo de um mesmo programa em linguagens de mquina e montadora:
Instruo de mquina (binrio) Operao
10100001 00000000 00000000 Busca o contedo da palavra de memria 0 e o coloca no reg. AX
00000101 00000100 00000000 Adiciona 4 ao reg. AX
10100011 00000000 00000000 Armazena o contedo de AX na palavra de memria de endereo 0
Instruo em linguagem montadora Comentrios
MOV AX,A ; busca o contedo da posio de ; memria dada por A e o coloca no ; reg. AX
ADD AX,4h ; adiciona 4 a AX, resultado em AX ;
MOV A, AX ; armazena o contedo de AX na ; posio de memria definida por A
Observa-se que:
para cada instruo em linguagem montadora corresponde apenas uma instruo em linguagem de mquina;
uma instruo em linguagem de mquina pode corresponder a mais de um byte;
a programao em linguagem de mquina tediosa e suscetvel a erros.
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 6 de 9
1.5 Atividade prtica: Criando e rodando um programa
A especificao do programa ECO DO TECLADO NA TELA:
- iniciar - apresentar um prompt ao usurio - ler um caracter do teclado - exibir o caracter lido na prxima linha da tela do monitor - terminar
O fluxograma:
Incio
Apresentar um prompt
Ler um caracter do teclado
Mudar de linha
Exibir caracter lido
Fim
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 7 de 9
O programa ECO completo:
TITLE PROGRAMA DE ECO DO TECLADO NA TELA .MODEL SMALL .STACK 100h .CODE MAIN PROC ; ;apresentacao do prompt ? MOV AH,2 ;funcao DOS para exibir caracter MOV DL,? ;caracter ? INT 21h ;exibir ; ;entrada do caracter pelo teclado MOV AH,1 ;funcao DOS para leitura de caracter INT 21h ;caracter e lido em AL MOV BL,AL ;salvando-o temporariamente em BL ; ;movendo de linha MOV AH,2 ;funcao DOS para exibir caracter MOV DL,0Dh ;caracter ASCII - return INT 21h ;executando MOV DL,0Ah ;caracter ASCII - line feed INT 21h ;executando ; ;exibindo na tela o caracter lido: efeito de ECO MOV DL,BL ;recuperando o caracter salvo INT 21h ;exibir ; ;retorno ao DOS MOV AH,4Ch ;funcao DOS para saida INT 21h ;saindo MAIN ENDP END MAIN
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 8 de 9
Explicando as partes:
a) O programa inicia sua operao ao ser lanado pelo DOS.
b) O usurio estimulado a interagir pela apresentao de um ?:
MOV AH,2 ;funcao DOS para exibir caracter MOV DL,'?' ;caracter '?' INT 21h ;exibir
c) Lendo o caracter teclado pelo usurio e salvando-o em num registrador:
MOV AH,1 ;funcao DOS para leitura de caracter INT 21h ;caracter e' lido em AL MOV BL,AL ;salvando-o em BL
d) Movendo o cursor da tela para o incio da prxima linha:
MOV AH,2 ;funcao DOS para exibir caracter MOV DL,0Dh ;caracter ASCII - return INT 21h ;executando MOV DL,0Ah ;caracter ASCII - line feed INT 21h ;executando
e) Recuperando o caracter lido e exibindo-o:
MOV DL,BL ;recuperando o caracter salvo INT 21h ;exibir
f) O programa termina devolvendo controle ao DOS:
MOV AH,4Ch ;funcao DOS para saida INT 21h ;saindo
Cap.1 Introduo aos Microcomputadores Digitais
Pgina 9 de 9
Como obter o programa ECO.EXE executvel.
1. Edite o program ECO utilizando um editor de texto simples, com sada em texto ASCII. Sugesto: use o EDIT do DOS ou o Bloco de Notas (NOTEPAD) do Windows. Sugere-se que o arquivo (texto ASCII) tenha a extenso .ASM
C:\ > EDIT ECO.ASM
2. Rode o programa Montador TASM (Borland). Como resultado, aparece em seu diretrio de trabalho um arquivo ECO.OBJ
C:\ > TASM ECO. ASM
3. Rode o programa Lincador TLINK. Como resultado, aparece em seu diretrio de trabalho um arquivo ECO.EXE.
C:\ > TLINK ECO.OBJ
4. Rode o programa ECO.EXE, respondendo ao ? com uma letra K, por exemplo.
C:\ > ECO.EXE ?K
Cap2 Representao de Nmeros e Caracteres.
Pgina 1 de 9
2. Representao de Numeros e Caracteres.
2.1 Conceitos bsicos
Bit = BInary digiT = vale sempre 0 ou 1 elemento bsico de informao
Byte = 8 bits processados em paralelo (ao mesmo tempo)
Word = 2 bytes = 16 bits
Double word = 2 words = 4 bytes = 32 bits
Nibble = 4 bits (utilidade para BCD)
Posio de bits:
Para 1 byte: 7 6 5 4 3 2 1 0 0 1 0 1 0 1 0 1
Para 1 word: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
byte alto (high byte) | byte baixo (low byte)
Obs: Words so armazenados em bytes consecutivos em memrias de 8 bits. Byte baixo = byte inferior ou byte de menor ordem -> endereo N Byte alto = byte superior ou byte de maior ordem -> endereo N+1
Cap2 Representao de Nmeros e Caracteres.
Pgina 2 de 9
2.2 Representao de nmeros
Nmeros em base binria (base 2):
a) 1 byte
00100111b = 0.27 + 0.26 + 1.25 + 0.24 + 0.23 + 1.22 + 1.21 + 1.20 = 0 + 0 + 32 + 0 + 0 + 4 + 2 + 1 = 39d = 2716 ou 27h
b) 1 word
0101011101101110b = 0.215 + 1.214 + ... + 1.22 + 1.21 + 0.20 = 22382d = 576E16 ou 576Eh (mais fcil de representar!)
high byte = 0101 0111b = 57h low byte = 0110 1110b = 6Eh
Nmeros em base octal (base 8):
a) byte
2578 = 2.82 + 5.81 + 7.80 = 128 + 40 + 7 = 175d = 010_101_111b = 10101111b
b) word
0573268 = 0.85 + 5.84 + 7.83 + 3.82 + 2.81 + 6.80 = 0 + 20480 + 3584 + 192 + 16 + 6 = 24278d = 000_101_111_011_010_110b = 0101111011010110b
Cap2 Representao de Nmeros e Caracteres.
Pgina 3 de 9
Nmeros em base hexadecimal (base 16):
a) byte
D516 = 13.161 + 5.160 = 208 + 80 = 288d = 1101_0101b = 11010101b
b) word
A03916 = 10.163 + 0.162 + 3.161 + 9.160 = 40960 + 0 + 48 + 9 = 41017d = 1010_0000_0011_1001b = 1010000000111001b
Converso entre bases numricas:
Tipo de converso Procedimento
Decimal => Binrio Divises sucessivas por 2 at se obter zero no quociente; leitura dos dgitos binrios de baixo para cima.
Binrio = > Decimal Soma de potncias de 2 cujo expoente a posio do bit e cujo coeficiente o prprio bit.
Hexadecimal => Binrio Expandir cada dgito hexa em quatro dgitos binrios segundo seu valor.
Binrio => Hexadecimal Compactar cada quatro dgitos binrios em um nico dgito hexa segundo seu valor.
Decimal => Hexadecimal