Arquitetura e organização de computadores

11
Arquitetura e organização de computadores Programação em linguagem assembly continuação Aula 18 Prof. Diovani Milhorim

description

Arquitetura e organização de computadores. Programação em linguagem assembly continuação Aula 18 Prof. Diovani Milhorim. Linguagem assembly. Os componentes da linguagem Assembly - PowerPoint PPT Presentation

Transcript of Arquitetura e organização de computadores

Page 1: Arquitetura e organização de computadores

Arquitetura e organização de computadores

Programação em linguagem assembly continuação

Aula 18Prof. Diovani Milhorim

Page 2: Arquitetura e organização de computadores

Linguagem assembly

Os componentes da linguagem Assembly

Os componentes da linguagem Assembly são basicamente as instruções para o processador. os componentes da linguagem Assembly podem ser divididos nas seguintes categorias:

Instruções de registradores Instruções de pilha Instruções de execução Instruções de memória Instruções de flag Declarações de memória Diretivas para o assembler Comentários Instruções para o sistema operacional (Windows)

Page 3: Arquitetura e organização de computadores

Linguagem assembly

Instruções de registradoresEstas instruções transferem dados ou realizam cálculos utilizando os registradores de 32 bits da CPU. Existem seis registradores de uso geral chamados de EAX, EBX, ECX, EDX, ESI e EDI. Exemplos deste tipo de instrução são:

Page 4: Arquitetura e organização de computadores

Linguagem assembly

Instruções de pilhaA pilha é uma área de memória reservada pelo sistema operacional como área de arquivamento temporário para cada programa que estiver rodando. São exemplos deste tipo de instrução:

Page 5: Arquitetura e organização de computadores

Linguagem assembly

Instruções de execuçãoEstas instruções desviam o processador para que execute código a partir de um ponto que não seja a próxima linha de execução. São exemplos:

Page 6: Arquitetura e organização de computadores

Linguagem assembly

Instruções de memória Estas instruções lêem ou escrevem em áreas de memória que não sejam

da pilha. Normalmente estas áreas estão na seção de dados do próprio executável ou podem ser alocadas pelo sistema operacional em tempo de execução. São exemplos:

Page 7: Arquitetura e organização de computadores

Linguagem assembly

Instruções de flagAs principais flags usadas são a Z (flag zero), C (flag carry), S (flag de sinal) e D (flag de direção). A maioria das instruções alteram as flags automaticamente para mostrarem o resultado da instrução. Existem determinadas instruções que podem ser usadas para alterar o valor das flags manualmente:

Page 8: Arquitetura e organização de computadores

Linguagem assembly

Declarações de memória

O sistema operacional reserva memória para o executável quando ele é executado. Declarações são feitas para reservar memória na seção de dados ou na seção de constantes se os dados devem ser inicializados, isto é, devem receber um valor. Se forem dados não inicializados, a área de dados pode ficar reservada na seção de dados não inicializados. Isto não toma espaço algum no arquivo executável, por que um espaço de memória é alocado para este tipo de dado quando o executável é iniciado pela primeira vez.

Page 9: Arquitetura e organização de computadores

Linguagem assembly

Declarações de memória

Seguem exemplos de como a memória é declarada, o que pode variar de acordo com o assembler utilizado:

Page 10: Arquitetura e organização de computadores

Linguagem assembly

Diretivas para o assembler São instruções que orientam onde o Assembler deve colocar o código fonte

que as segue. O Assembler marca a seção de código como apenas para leitura e executável; as seções de dados definidos e indefinidos como leitura/escrita. Veja alguns exemplos (que podem variar de acordo com o assembler):

Page 11: Arquitetura e organização de computadores

Linguagem assembly

Comentários

Após ponto e vírgula, o texto é ignorado até a próxima quebra de linha. Desta forma é possível associar descrições e explicações ao código fonte, as quais serão ignoradas pelo assembler.