Assembly Crash Course

Curso de assembly feito de forma simples e prática.

Página Principal View on GitHub

Linguagem assembly

Introdução à Linguagem

A linguagem Assembly é classificada como uma linguagem de baixo nível, contrastando com linguagens de alto nível como BASIC, C e Pascal. A principal característica das linguagens de baixo nível é sua proximidade com o hardware, o que permite que os programadores interajam diretamente com a arquitetura do processador.

O que Define uma Linguagem de Baixo Nível?

Assembly é considerado de baixo nível devido ao seu conjunto de instruções simples, como mov, out, in, pop, push, e add. Estas instruções correspondem a operações diretamente executadas pelo processador, ao contrário das linguagens de alto nível que são compostas por várias instruções de baixo nível.

Embora seja possível programar em binário ou hexadecimal, essas abordagens são extremamente propensas a erros. A linguagem Assembly surge como uma solução, oferecendo mnemônicos e símbolos que tornam a programação mais compreensível para os humanos, sem perder a proximidade com a máquina.

Terminologia e Conceitos

Tipos de Dados Fundamentais

Na arquitetura IA-32, os tipos de dados fundamentais incluem bytes, words, doublewords, quadwords e double quadwords. Estes tipos de dados variam em tamanho e capacidade de armazenamento, conforme mostrado na tabela abaixo:

Tipos de Dados - Intel

Tipo Tamanho (Bits) Tamanho (Bytes) Faixa de Valores
Bit 1   0 ou 1
Nibble 4   0 a 15
Byte 8 1 0 a 255
Word 16 2 -32.768 a 32.767
Doubleword 32 bits 4 -2.147.483.648 a 2.147.483.647
Quadword 64 bits 8 -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
Double Quadword 128 bits 16 Faixa maior que Quadword

Registradores na Arquitetura IA-32

Os registradores são a base para operações em Assembly. Eles armazenam valores temporários e permitem acesso rápido durante a execução do programa. Alguns exemplos incluem:

Instruções IA-32 e Operações com Dados

Um subconjunto de instruções da arquitetura IA-32 permite manipular os tipos de dados fundamentais diretamente, sem a necessidade de operandos adicionais.

O tipo de dado Quadword foi introduzido na arquitetura IA-32 a partir do processador Intel 486. Esse tipo de dado tem 64 bits e é utilizado para operações que exigem maior precisão.

A Double Quadword (128 bits) foi introduzida a partir do processador Intel Pentium III, com a extensão SSE, permitindo operações ainda mais complexas e precisas.

Tópicos Relacionados