Baixe Curso de Assembly e outras Notas de aula em PDF para Informática, somente na Docsity! 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 Comparação entre linguagens
. temp =vIk]; TEMP = V(K)
High-level Language kl =v[k+1]; VIK) =VIK+)
v|k+1] = temp; V(K+1)= TEMP
Cava Compiler 1 rorran Compiler
lw Sto, (52)
Assembly Language Iw St, (52)
sw St, 452)
sw St, 452)
1 MIPS Assembler
0000 1001 1100 0110 1010 1111 0101 1000
Machine L: . 1010 1111 0101 1000 0000 1001 1100 0110
acnme Language 1100 0110 1010 1111 0101 1000 0000 1001
0101 1000 0000 1001 1100 0110 1010 1111
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 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 Operações aritméticas
* Multiplicação:
» MUL divisor
Multiplicação
Operando fonte Segundo operando Resultado da operação
8 bits AL AX
l6 bits AX DKAX
32 bits* EAX EDX:EAX
Operações aritméticas
* Divisão:
»- DIV divisor
Divisão
Dividendo Tamanho do Quociente Resto
dividendo
AH l6 bits AL AH
DEAX 32 bits AH DX
EDXEAX* b4 bits EAX EDX
multDiv.asm
Funções Modularização; Reaproveitamento; Parametrização; Marcação; CALL; RET. func.asm 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
Instrução Verdade quando... (efetua o desvio quando...)
JE (operando? — operandol)=0
Jo (operando? — operando 1) = 0
TGE (operando? — operando 1) <=
IL (operando? — operando 1) > 0
ILE (operando? — operando 1) >=
INE coperando? — operando 1) |= À
ING | iloperando? — operando 1) « 0)
INGE | itoperando? — operando 1) <= 0)
INL | loperando? — operando 1) > O)
INLE [loperando? — operando 1) >= 0)
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> 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: 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