Assembly
-
Upload
roberto-oliveira -
Category
Documents
-
view
8 -
download
1
Transcript of Assembly
-
Exerccios em Assembly
Interface Hardware SoftwareAula 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 umEntry 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.CODEinicio:...
mov ah, 01hmov 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: 1Remaining 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 tecladoinput: AH = 01houtput: AL = caracter(ASCII em hexa)*funo 02h: escreve um caractere na telainput: AH = 02h
DL = caracter a ser escritooutput: 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/3722.html
The Pentium Microprocessor - James l. Antonakos/Editora Prentice Hall, 1997.
Tabela ASCII