Aula Prática - Assembly
description
Transcript of Aula Prática - Assembly
![Page 1: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/1.jpg)
AULA PRÁTICA - ASSEMBLYCiro Luiz Araujo Ceissler
![Page 2: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/2.jpg)
ROTEIRO Projeto DOS DOSBox HelpCC TASM Exemplos
![Page 3: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/3.jpg)
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
![Page 4: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/4.jpg)
DOS – DISK OPERATING SYSTEM Interface de linha de comando
Interpretador de comandos: command.com
Versão mais conhecida MS-DOS
![Page 5: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/5.jpg)
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
![Page 6: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/6.jpg)
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
![Page 7: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/7.jpg)
DOSBOX Após a instalação digite os comandos
mount c c:\<diretório> c: dir/w
![Page 8: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/8.jpg)
HELPCC Auxiliar no desenvolvimento
Instruções Interrupções
![Page 9: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/9.jpg)
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
![Page 10: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/10.jpg)
EXEMPLO 1.model small.stack.data
HelloMessage DB 'Hello, World!',13,10,'$'.codestart:
mov ax, @datamov ds, axmov ah, 9mov dx , OFFSET HelloMessageint 21hmov ah, 4chint 21h
end start
![Page 11: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/11.jpg)
EXEMPLO 2.model small.stack.codestart:
mov al, 13hint 10hxor ax, ax
loop1:mov ah, 01hint 16hcmp al, 71hje Saidajmp loop1
Saida:xor ax, axmov al, 0int 21h
end start
![Page 12: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/12.jpg)
EXEMPLO 3.model small.stack.data.codestart:
mov ax, 012hint 10hxor ax, axxor bx, bx
ponto:mov ax,0A000h
mov es,ax mov dx,03C4h mov ax,0202h
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 pontoSaida: xor ax, ax mov al, 0 int 21h
end start
![Page 13: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/13.jpg)
EXEMPLO 4.model small.stack.data.codestart:mov ax, 012hint 10hxor ax, axxor bx, bxponto:xor ax, axxor bx, bxxor cx, cxxor dx, dx
mov ax,0A000hmov es,ax mov dx,03C4h mov ax,0102h out dx,ax mov di,0 mov cx,38400 mov ax,0FFh rep stosb
mov bx, 200loopDelay:push dx axmov dx, 03DAh
loop1:in al, dxtest al, 8jnz loop1
loop2:in al, dxtest al, 8jz loop2
pop ax dx
dec bxcmp bx, 0jne loopDelay
xor ax, axxor bx, bxxor cx, cxxor dx, dx
mov ax,0A000hmov es,ax mov dx,03C4h mov ax,0F02h
out dx,ax mov di,0 mov cx,38400 mov ax,0FFhrep stosb
mov bx, 200loopDelay1:push dx axmov dx, 03DAh
loop11:in al, dxtest al, 8jnz loop11
loop21:in al, dxtest al, 8jz loop21
pop ax dxdec bxcmp bx, 0jne loopDelay1
xor ax, axmov ah, 01hint 16hcmp al, 71hje Saidajmp pontoSaida:xor ax, axmov al, 0int 21h
end start
![Page 14: Aula Prática - Assembly](https://reader031.fdocumentos.com/reader031/viewer/2022013108/56815c68550346895dca7909/html5/thumbnails/14.jpg)
REFERÊNCIAS www.cin.ufpe.br/~arfs/Assembly/dosoutros/c
urso_de_assembly/
http://www.cin.ufpe.br/~clac/infra_de_software/aula_teclado_video.pdf
www.krull.com.br/geo/prog/asm/tut05pt.htm