Aula Prática - Assembly

14
AULA PRÁTICA - ASSEMBLY Ciro Luiz Araujo Ceissler

description

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. - PowerPoint PPT Presentation

Transcript of Aula Prática - Assembly

Page 1: Aula Prática - Assembly

AULA PRÁTICA - ASSEMBLYCiro Luiz Araujo Ceissler

Page 2: Aula Prática - Assembly

ROTEIRO Projeto DOS DOSBox HelpCC TASM Exemplos

Page 3: Aula Prática - Assembly

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

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

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

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

DOSBOX Após a instalação digite os comandos

mount c c:\<diretório> c: dir/w

Page 8: Aula Prática - Assembly

HELPCC Auxiliar no desenvolvimento

Instruções Interrupções

Page 9: Aula Prática - Assembly

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

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

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

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

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