Você está na página 1de 37

Assembly

Centro de Cincias e Tecnologia Departamento de Estatstica e Computao Software Bsico Apresentao de Monitoria

Apresentao

Juliano Efson Norberto Sales 5 Semestre julianoens@gmail.com

Agenda
A linguagem Assembly - Breve histrico Abordagem da apresentao Montagem e Linkedio Configurao de Ambiente Sistemas de Numerao Diretivas Hello World sem Hello World! Interrupo - Hello World! Operaes aritmticas Funes Estruturas de controle Arquitetura e Segmentos de Memria Alocao de Variveis Pilha Outros Assuntos Importantes Bibliografia Contato

A linguagem Assembly - Breve histrico

Cenrio e Motivao

Aplicao atual

Comparao entre linguagens

Abordagem da apresentao

Viso geral e principais estruturas e instrues; Comparao com linguagem de alto nvel; Tutorial direcionado e indicao de materiais adicionais.

Linguagem, Montagem e Linkedio

Linguagem voltada para arquitetura;

Sintaxe relacionada com o montador.

ATENO

TASM e TLINK

Configurao de Ambiente

Extrao dos arquivos;


Configurao da varivel de ambiente; Teste.

Sistemas de Numerao

Binrio; Decimal; Hexadecimal; Sintaxe para o montador.

Diretivas do Montador

Definio;
MODEL; CODE; Outras no futuro.

Hello World Sem Hello World!


Ver a cara da aplicao;


Conhecer a sintaxe geral; Tipos de Movimento; Finalizao do programa; Como gerar o executvel.
Cuidado com caminhos e nomes de arquivos grandes...
pre.asm

Interrupo Hello World!


Conceituo;
Tipo de Interrupo; Funes; Parmentros; Exemplos;

Hello World!
hello.asm

Solucionando o problema da impresso


Tabela ASCII;
Converso.

Operaes aritmticas

Soma e subtrao;
ADD destino, parcela SUB destino, subtraendo INC destino DEC destino

aritm.asm

Operaes aritmticas

Multiplicao:
MUL divisor

Operaes aritmticas

Diviso:
DIV divisor

multDiv.asm

Funes

Modularizao;
Reaproveitamento; Parametrizao; Marcao; CALL;

RET.
func.asm

Estruturas de controle

A vida das linguagens de programao;


Desvios Incondicionais; Desvios Condicionais; Lao.

Desvios Incondicionais

call;
Interrupes; JUMP; Utiliza marcao. Exemplo.

Devios Condicionais

Jumps condicionados;
Ex.: JGE calculo Verificao de registradores de flag;

Formas de alterao dos flags;


CMP; Flag Zero; CX.

Compare - CMP

Instruo CMP operando1, operando2


Flag por subtrao.

Tabela de JUMPS

Outros Flags

Flag Zero;

JZ ou JE. JCXZ.

Flag Zero CX

Desafio

Como criar um lao, como por exemplo, um for da linguagem C utilizando os desvios condicionais e incodicionais?
Ex: (...) for(i=0; i<10; i++) { Instrucao A; Instrucao B; } Instrucao C; (...)
supondo que a varivel 'i' foi declarada previamento como inteiro.

Soluo
(...) MOV CX, 10 laco: intrucao A intrucao B DEC CX JCXZ saida JMP laco saida: instrucao C (...)

Arquitetura e Segmentos de Memria


Lembrando a teoria;
Forma de acesso a memria; Capacidade mxima de endereamento; Diretivas; Chegando ao futuro:

Diretiva DATA

Alocao de Variveis

Motivao;
Vantagens e desvantagens; De volta ao futuro:

Diretiva Dx

<identificador> Dx <valor_inicial>

x?

Manipulao de Memria com Interrupes de Escrita

Funo 02H x 09H


09H

DS:DX = Endereo ?

@<nome_do_segmento>

OFFSET memoria

Caracter de parada (\0).

Ateno
MOV DS, @DATA ; No funciona.

MOV AX, @DATA


MOV DS, AX

; Agora funciona.

Ver exemplo

Aplicao da funo 09H;


Cola: men.asm

Manipulao de Memria com Interrupo de Leitura


Funo 0AH;
Similar a 09H Formato do dado capturado:

Pilha

Princpio (FILO);
Diretiva STACK; Instrues:

PUSH dado; POP destino;

pilha.asm

Exerccio

Escrever uma funo para converter de caracter (ASCII) para numero e vice-versa.

Outros Assuntos Importantes


Outras Funes da Interrupo 21H;


Instruo LOOP; Operaes lgicas; Procedures. Importao de Bibliotecas;

Desvios Condicionais de deteco de erro

Bibliografia

Organizao Estruturada de Computadores Tanenbaum


Professional Assembly Language - Richard Blum

Wikipdia
Outros Sitios:

http://magnum.ime.uerj.br/~alexszt/cursos/softsis/material/asm/tutasm/program.html

http://www.numaboa.com.br/informatica/oiciliS/assembler/textos/lingAssembly.php
http://www.drpaulcarter.com/pcasm/ http://www.saladoprogramador.hpg.ig.com.br/assembler1.htm www.cise.ufl.edu/~mssz/CompOrg/CDA-lang.html

Grato pela ateno!

julianoens@gmail.com

Você também pode gostar