aula prática - assembly

14
AULA PRÁTICA - ASSEMBLY Cleivson Siqueira de Arruda

Upload: tevin

Post on 24-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Aula Prática - Assembly. Cleivson Siqueira de Arruda. 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

Page 1: Aula Prática - Assembly

AULA PRÁTICA - ASSEMBLYCleivson Siqueira de Arruda

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

Page 10: Aula Prática - Assembly

EXEMPLO 1

.model small

.stack

.dataHelloMessage 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

.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

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

.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

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

REFERÊNCIAS

www.cin.ufpe.br/~arfs/Assembly/dosoutros/curso_de_assembly/