Você está na página 1de 13

Exerccios em Assembly

Interface Hardware Software


Aula Prtica 2
Criao de programas em
Assembly
Ferramentas necessrias:
- Editor
- Montador
- Linker (ligador)
Existem diversas ferramentas no
mercado: Masm, Nasm, Tasm, etc...
Tasm
Montador da Borland (age em conjunto
com o linkador Tlinker, tambm da
Borland)
Gera programas *.obj a partir de um
*.asm
O linkador ento transforma os arquivos
*.obj em executveis (*.exe ou
*.com - dependendo da forma de
montar e ligar)
Diretivas Assembly Importantes
.MODEL (define o modelo de memria
do programa)
.STACK (reserva espao de memria
para instrues da pilha)
.CODE (define o incio de um
programa)
END (finaliza um programa Assembly)
Observao
Um programa no Tasm dever ter um
Entry Point (ou seja, ponto onde o
programa comecar realmente a
executar) explcito, caso contrrio o
Tlink emitir o seguinte erro: No
program entry point.
Corpo bsico de um programa no
Tasm
.MODEL ...
.STACK
.CODE
inicio:
...
mov ah, 01h
mov cx, 07h
...
mov ah, 04h
...
END inicio
O label inicio o
Entry Point do programa!!!
Como gerar e rodar o executvel
do meu programa?
Exemplo:
C:\>tasm ex1.asm
Turbo assembler Version 2.0 Copyright (c) 1988, 1990
Borland International
Assembling file: exam1.asm
error messages: None
Warning messages: None
Passes: 1
Remaining memory: 471k
C:\>tlink ex1.obj
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland
International
C:\>ex1 [enter]
Interrupes
Evento que ocorre enquanto o
processador est executando uma
instruo
Suspende temporariamente o que o
processador est fazendo no momento
de sua ocorrncia
Podem ser de hardware ou de software
(SO / usurio), externas ou internas.
INT 21H (interrupo do DOS)
int 21h
;invoca a interrupo do DOS
*funo 01h: l um caractere do teclado
input: AH = 01h
output: AL = caracter(ASCII em hexa)
*funo 02h: escreve um caractere na tela
input: AH = 02h
DL = caracter a ser escrito
output: nenhuma
Exemplo 1:
Programa que l um caracter do teclado
e imprime este mesmo na tela
www.cin.ufpe.br/~if817/arquivos/aula2.zip
=> ex1.asm
Exemplo 2:
Programa que retorna 1 se o argumento
dado pelo usurio for um caractere
entre 0 e 9 e 0 se no for.
www.cin.ufpe.br/~if817/arquivos/aula2.zip
=> ex2.asm
Exerccios
Escreva um programa que mostre na
tela os 256 caracteres do cdigo ASCII.
Escreva um programa que receba dois
dgitos entre 0 e 9 do teclado e imprima
o maior deles.
Referncias
http://pjtsalina.codigolivre.org.br/news/asm/37
22.html
The Pentium Microprocessor - James l.
Antonakos/Editora Prentice Hall, 1997.
Tabela ASCII

Você também pode gostar