Posts Tagueados ‘registradores’
Linguagens de Montagem Aula 1 – Introdução ao IA-32
Hoje estou começando a escrever sobre Linguagens de Montagem (LM). Muitos acham que Assembly é um bicho de 7 cabeças (ou mais), mas veremos que não é bem assim.
Começarei falando sobre a arquitetura IA-32 (Intel Architecture 32 bits) a qual estarei lidando durante todos os posts dessa série. (mais sobre IA-32)
- Memória principal (Física) 4GB
Registradores
- Ponteiros – 32 bits
- Inteiros – 32 bits
- Ponto flutuante – 80 bits, 64 bits, 32 bits
Registradores “visíveis”
Uso geral:
- Ponteiros ou dados com 32, 16 ou 8 bits
- eax
- ebx
- ecx
- edx
- Ponteiros ou dados com 32 ou 16 bits
- esi
- edi
- Ponteiro para registro de ativação
- ebp
- Ponteiro para topo da pilha
- esp
eax:
0 █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ 31
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
ax
0 █ █ █ █ █ █ ███ █ █ █ █ █ █15
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
al█ █ █ █ █ █ █ ah
Registradores indicadores (flags)
- Z – indica que o resultado da última operação foi zero. (Z = 1)
- S – indica o sinal do resultado da última operação. (S = 0 => positivo; S = 1 => negativo)
- C – indica o resultado do “vai-um” do bit mais significativo da útima operação.
- O – indica estouro de capacidade em operação com inteiros sinalizados.
- P – indica a paridade dos 8 bits menos significativos do resultado da útima operação.
- D – comanda a direção de incremento de ponteiros em instruções com arranjos.
Conteúdo baseado nas aulas do professor Augusto Silva da Universidade Católica de Goiás.