Programação em Linguagem Assembly - Introdução

Geração de um programa

Registradores

Modelo de Memória

O pentium suporta mais que uma forma de endereçamento. No curso vamos usar apenas o chamado modelo de memória plano (flat memory model), onde valores de 32 bits são usados para endereçar posições de 0 a 232.

Modos de endereçamento

Diversas instruções (soma, comparação, etc) precisam especificar operandos. Como isso pode ser feito?

Nos exemplos abaixo, a instrução movl indica transferência do dado indicado pelo primeiro operando para o segundo operando.

Sufixos

Como podemos notar na seção anterior a instrução mov (como várias outras) possui o sufixo l. O propósito deste é indicar o tamanho do operando:

Declaração de dados

O assembler do gcc permite a declaração de variáveis de diferentes tipos, geralmente declaradas na seção de dados (.data) do código fonte. Alguns exemplos:

Grupos de Instruções

  1. Movimento de Dados
  2. Aritmética Inteira
  3. Instruções Lógicas
  4. Instruções de Ponto Flutuante
  5. Instruções de Controle

referência: CS:APP, seções 3.1, 3.2, 3.3, 3.4, 3.5.