Tutorial Assembly
37 pág.

Tutorial Assembly


DisciplinaAnálise Textual10.325 materiais293.900 seguidores
Pré-visualização1 página
*
*
*
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 \u2013 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:
(...)\u200f
for(i=0; i<10; i++) {
 Instrucao A;
 Instrucao B;
}
Instrucao C;
(...)\u200f
supondo que a variável 'i' foi declarada previamento como inteiro.
*
*
*
Solução
(...)\u200f
MOV CX, 10
laco:
 intrucao A
 intrucao B
DEC CX
JCXZ saida
JMP laco
saida:
instrucao C
(...)\u200f
*
*
*
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 \u2013 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