Assembly

13
Exercícios em Assembly Interface Hardware Software Aula Prática 2

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