1 / 14

Aula Prática - Assembly

Aula Prática - Assembly. Ciro Luiz Araujo Ceissler. Roteiro. Projeto DOS DOSBox HelpCC TASM Exemplos. Projeto. Todo em Assembly Pelos menos 5 segundos Tecla de saída Utilizar o TASM Proibido: Gerar código a partir de outra linguagem Assembly inline. DOS – Disk Operating System.

lark
Download Presentation

Aula Prática - Assembly

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. Aula Prática - Assembly Ciro Luiz Araujo Ceissler

  2. Roteiro • Projeto • DOS • DOSBox • HelpCC • TASM • Exemplos

  3. Projeto • Todo em Assembly • Pelos menos 5 segundos • Tecla de saída • Utilizar o TASM • Proibido: • Gerar código a partir de outra linguagem • Assembly inline

  4. DOS – Disk Operating System • Interface de linha de comando • Interpretador de comandos: command.com • Versão mais conhecida MS-DOS

  5. DOS - Comandos • dir/w : exibe lista de arquivos • md : criar pasta • cd : entrar numa pasta • rd : excluir uma pasta • cls : limpar tela • date : data • time : tempo • echo : exibir conteúdo na tela • help : relação de comandos

  6. DOSBox • Emulador de x86 com DOS • Suporte a várias plataformas: Linux, Windows, Mac • Limitações de acesso nos computadores do GRAD • www.dosbox.com

  7. DOSBox • Após a instalação digite os comandos • mount c c:\<diretório> • c: • dir/w

  8. HelpCC • Auxiliar no desenvolvimento • Instruções • Interrupções

  9. TASM – Turbo Asssembler • Assembler • Turbo Linker • Responsável por combinar vários objetos gerados por um compilador em um executável (.exe) • Uso: • tasm <arquivo>.asm • tlink <arquivo>.obj • <arquivo>.exe • http://www.cin.ufpe.br/~clac/infra_de_software/tasm_aula.rar

  10. Exemplo 1 .model small .stack .data HelloMessage DB 'Hello, World!',13,10,'$' .code start: mov ax, @data mov ds, ax mov ah, 9 mov dx , OFFSET HelloMessage int 21h mov ah, 4ch int 21h end start

  11. Exemplo 2 .model small .stack .code start: mov al, 13h int 10h xor ax, ax loop1: mov ah, 01h int 16h cmp al, 71h je Saida jmp loop1 Saida: xor ax, ax mov al, 0 int 21h end start

  12. Exemplo 3 out dx,ax mov di,0 mov cx,38400 ;(640 * 480)/8 = 38400 mov ax,0FFh rep stosb xor ax, ax mov ah, 01h int 16h cmp al, 71h je Saida jmp ponto Saida: xor ax, ax mov al, 0 int 21h end start .model small .stack .data .code start: mov ax, 012h int 10h xor ax, ax xor bx, bx ponto: mov ax,0A000h mov es,ax mov dx,03C4h mov ax,0202h

  13. Exemplo 4 mov ax,0A000h mov es,ax mov dx,03C4h mov ax,0102h out dx,ax mov di,0 mov cx,38400 mov ax,0FFh rep stosb mov bx, 200 loopDelay: push dx ax mov dx, 03DAh loop1: in al, dx test al, 8 jnz loop1 loop2: in al, dx test al, 8 jz loop2 pop ax dx dec bx cmp bx, 0 jne loopDelay xor ax, ax xor bx, bx xor cx, cx xor dx, dx mov ax,0A000h mov es,ax mov dx,03C4h mov ax,0F02h out dx,ax mov di,0 mov cx,38400 mov ax,0FFh rep stosb mov bx, 200 loopDelay1: push dx ax mov dx, 03DAh loop11: in al, dx test al, 8 jnz loop11 loop21: in al, dx test al, 8 jz loop21 pop ax dx dec bx cmp bx, 0 jne loopDelay1 xor ax, ax mov ah, 01h int 16h cmp al, 71h je Saida jmp ponto Saida: xor ax, ax mov al, 0 int 21h end start .model small .stack .data .code start: mov ax, 012h int 10h xor ax, ax xor bx, bx ponto: xor ax, ax xor bx, bx xor cx, cx xor dx, dx

  14. Referências • www.cin.ufpe.br/~arfs/Assembly/dosoutros/curso_de_assembly/ • http://www.cin.ufpe.br/~clac/infra_de_software/aula_teclado_video.pdf • www.krull.com.br/geo/prog/asm/tut05pt.htm

More Related