Curso de Assembly, Notas de aula de Informática
arnaldo-araujo-11
arnaldo-araujo-11

Curso de Assembly, Notas de aula de Informática

37 páginas
50Números de download
1000+Número de visitas
66%de 0 votosNúmero de votos
Descrição
Materia de Introdução à linguagem de programação Assembly
100 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização3 páginas / 37
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas
Assembly

Assembly

Centro de Ciências e Tecnologia Departamento de Estatística e Computação

Software Básico Apresentação de Monitoria

Apresentação

Juliano Efson Norberto Sales

4º Semestre

julianoens@gmail.com

Agenda

A linguagem Assembly - Breve histórico Abordagem da apresentação

Montagem e Linkedição Configuração de Ambiente

Diretivas Sistemas de Numeração

Hello World sem Hello World! Interrupção - Hello World!

Operações aritméticas Funções

Estruturas de controle Arquitetura e Segmentos de Memória

Alocação de Variáveis Pilha

Outros Assuntos Importantes Bibliografia

Contato

A linguagem Assembly - Breve histórico

 Cenário e Motivação

 Aplicação atual

Comparação entre linguagens

Abordagem da apresentação  Visão geral e principais estruturas e

instruções;

 Comparação com linguagem de alto nível;

 Tutorial direcionado e indicação de materiais adicionais.

Linguagem, Montagem e Linkedição

 Linguagem voltada para arquitetura;

 Sintaxe relacionada com o montador.

ATENÇÃO

TASM e TLINK

Configuração de Ambiente  Extração dos arquivos;

 Configuração da variável de ambiente;

 Teste.

Sistemas de Numeração  Binário;  Decimal;  Hexadecimal;  Conversão;  Sintaxe para o montador.

Diretivas do Montador

 Definição;

 MODEL;

 CODE;

 Outras no futuro.

Hello World Sem Hello World!  Ver a cara da aplicação;  Conhecer a sintaxe geral;  Tipos de Movimento;  Finalização do programa;  Como gerar o executável.

pre.asm

Cuidado com caminhos e nomes de arquivos grandes...

Interrupção – Hello World!

 Conceitução;  Tipo de Interrupção;  Funções;  Parâmentros;  Exemplos;  Hello World!

hello.asm

Solucionando o problema da impressão

 Tabela ASCII;  Conversão.

Operações aritméticas

 Soma e subtração;  ADD destino, parcela  SUB destino, subtraendo  INC destino  DEC destino

aritm.asm

Operações aritméticas

 Multiplicação:  MUL divisor

Operações aritméticas

 Divisão:  DIV divisor

multDiv.asm

Funções  Modularização;  Reaproveitamento;  Parametrização;  Marcação;  CALL;  RET.

func.asm

Estruturas de controle  A vida das linguagens de programação;  Desvios Incondicionais;  Desvios Condicionais;  Laço.

Desvios Incondicionais

 call;  Interrupções;  JUMP;  Utiliza marcação.  Exemplo.

Devios Condicionais

 Jumps condicionados;  Ex.: JGE calculo

 Verificação de registradores de flag;  Formas de alteração dos flags;

 CMP;  Flag Zero;  CX.

Compare - CMP

 Instrução CMP operando1, operando2

 Flag por subtração.

Tabela de JUMPS

Outros Flags

 Flag Zero;  JZ ou JE.

 Flag Zero CX  JCXZ.

Desafio

 Como criar um laço, 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 variável 'i' foi declarada previamento como inteiro.

Solução ‏(...) MOV CX, 10 laco: intrucao A intrucao B

DEC CX JCXZ saida JMP laco

saida: instrucao C ‏(...)

Arquitetura e Segmentos de Memória

 Lembrando a teoria;  Forma de acesso a memória;  Capacidade máxima de endereçamento;  Diretivas;  Chegando ao futuro:

 Diretiva DATA

Alocação de Variáveis  Motivação;  Vantagens e desvantagens;  De volta ao futuro:

 Diretiva Dx

<identificador> Dx <valor_inicial>

x?

Manipulação de Memória com Interrupções de Escrita

 Função 02H x 09H

 09H  DS:DX = Endereço  ?

 Caracter de parada (\0)‏.

 @<nome_do_segmento>  OFFSET memoria

Atenção

MOV DS, @DATA ; Não funciona.

MOV AX, @DATA ; Agora funciona. MOV DS, AX

Ver exemplo

 Aplicação da função 09H;

 Cola: men.asm

Manipulação de Memória com Interrupção de Leitura

 Função 0AH;  Similar a 09H

 Formato do dado capturado:

Pilha

 Princípio (FILO)‏;  Diretiva STACK;  Instruções:

 PUSH dado;  POP destino;

pilha.asm

Exercício

 Escrever uma função para converter de caracter (ASCII)‏ para numero e vice-versa.

Outros Assuntos Importantes

 Outras Funções da Interrupção 21H;  Instrução LOOP;  Operações lógicas;  Procedures.  Importação de Bibliotecas;  Desvios Condicionais de detecção de erro

Bibliografia  Organização Estruturada de Computadores –

Tanenbaum  Professional Assembly Language - Richard Blum  Wikipédia  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 atenção!

julianoens@gmail.com

Até o momento nenhum comentário
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas