1 / 26

IHS Aula Prática 1 Instruções Assembly e Introdução ao Debug

IHS Aula Prática 1 Instruções Assembly e Introdução ao Debug. Rubens de Souza Matos Júnior – rsmj Carlos Julian Menezes Araújo - cjma. Debug. Útil para observar a execução passo a passo das instruções de programa. Disponível em qualquer PC com o Windows/MS-DOS.

Download Presentation

IHS Aula Prática 1 Instruções Assembly e Introdução ao Debug

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IHS Aula Prática 1 Instruções Assembly e Introdução ao Debug Rubens de Souza Matos Júnior – rsmj Carlos Julian Menezes Araújo - cjma

  2. Debug • Útil para observar a execução passo a passo das instruções de programa. • Disponível em qualquer PC com o Windows/MS-DOS. • Para iniciá-lo, basta digitar “debug” no promptde comandos do Windows (antigo MS-DOS).

  3. Debug

  4. Comandos do Debug • a - Monta instruções simbólicas em código de máquina

  5. Comandos do Debug • d - Mostra o conteúdo de uma área da memória

  6. Comandos do Debug • e - Edita dados na memória, iniciando num endereço específico

  7. Comandos do Debug • t - Executa passo a passo instruções

  8. Comandos do Debug • t - Executa passo a passo instruções

  9. Comandos do Debug • t - Executa passo a passo instruções

  10. Comandos do Debug • t - Executa passo a passo instruções

  11. Comandos do Debug • r - Mostra o conteúdo de um ou mais registradores

  12. Comandos do Debug • r - Mostra o conteúdo de um ou mais registradores

  13. Comandos do Debug • r - Mostra o conteúdo de um ou mais registradores

  14. Comandos do Debug • u - Desmonta o código de máquina em instruções simbólicas

  15. Comandos do Debug • q – Sai do programa Debug

  16. Comandos do Debug • ? – Para visualizar os demais comandos.

  17. Programando em Assembly • Diretivas assembly: • Diferentemente das instruções assembly (mov, add, push, jmp...), que são comandos direcionados à CPU, as diretivas assembler são comandos direcionados ao assembler(exemplo: TASM). As diretivas assembler são executadas em tempo de “compilação” (montagem). Já as instruções assembly são executadas em tempo de execução. • Diretivas assembly podem ser comandos para reservar áreas de memória, definir procedimentos, definir constantes, entre outros

  18. Programando em Assembly • Diretivas assembly: • .model - define o modelo de memória do programa. Modelo Segmento de dados Segmento de código *TINY UM UM SMALL UM UM MEDIUM UM VÁRIOS COMPACT VÁRIOS UM LARGE VÁRIOS VÁRIOS HUGE VÁRIOS VÁRIOS FLAT UM UM *Obs.: No modelotiny, o segmento de dados e o de códigocompartilham a mesmaregião de memória.

  19. Programando em Assembly • Diretivas assembly: • .stack - reserva espaço de memória para instruções da pilha. • .code - define o início de um programa.

  20. Programando em Assembly • Diretivas assembly: • .data – define as variáveis e constantes de um programa.

  21. Programando em Assembly Exemplo: .model small .stack 10 .data x dw 4h y dw 3h .code main: movax, @data movds, ax movax, x movbx, y addax, bx movax,4c00h int 21h endmain

  22. Compilando • Ferramentas necessárias: • Montador: gera “*.obj” a partir de um “.asm”. • Tasm • Masm • Linker: transforma os arquivos “.obj” em executáveis. • Tlink • Download

  23. Compilando • Passo a passo: • Abra o prompt de comando; • Digite: “tasm nomedoarquivo.asm” • Digite: “tlink nomedoarquivo.obj” • Digite: “nomedoarquivo.exe” para executar

  24. Exercícios • 1- Escreva um programa que calcula a média aritmética entre dois números e guarde o quociente no registrador AL. • 2- Escreva um programa que lê dois números da memória e verifica se eles são divisíveis. Caso sejam, armazene 1 em DX, senão guarde 0.

  25. Referências • The Pentium Microprocessor, James Antonakos. • Tabela de Instruções Intel x86

More Related