A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Cap. III - Registradores do Microprocessador

Sab

15

Dez

2007


13:46

(11 votos, média 4.09 de 5) 


Nível Intermediário

Masm32+RadASM

Capítulo III: Registradores do Microprocessador

Escrito por: ^A|An M0r3N0^
Conselheiro: RedH@wk
Tradução: ~Uglinho~
O presente texto foi escrito para fins educacionais e de pesquisa e é de livre distribuição contanto que se preserve o conteúdo e os direitos do autor.

Registradores do Microprocessador

Nosso processador precisa de registradores para armazenar dados que podem ser utilizados livremente. Entre os principais registradores temos:

Registradores de propósito geral

São 4 registradores - EAX, EBX, ECX, EDX - que são empregados para uso geral. Subdividem-se em:

EAX, EBX, ECX, EDX (32 bits)
AX, BX, CX, DX (16 bits)
AH, BH, CH, DH (8 bits, H = High) AL, BL, CL, DL (8 bits, L = Low)

Exemplo:

EAX = 12345678
 AX =     5678
 AH =     56
 AL =       78

O processador 80386 permite o uso destes registradores - EAX, EBX, ECX, EDX - que são de 32 bits.

Registradores de uso geralDescrição
EAX (Acumulador) É utilizado para operações aritméticas (soma, subtração, divisão e multiplicação). Algumas funções, depois de serem utilizadas, devolvem um valor para EAX.
EBX (Base) É utilizado para direcionar o acesso a dados situados na memória. Também pode ser utilizado para operações aritméticas.
ECX (Contador) É utilizado como contador por algumas instruções. Também é utilizado para operações aritméticas.
EDX (Dados) Algumas operações de entrada/saída requerem seu uso e as operações de multiplicação e divisão com algarismos grandes supõem que EDX e EAX trabalhem juntos. Pode usar os registradores para soma e subtração de valores de 8, 16, 32 bits.
.
Registradores de ÍndiceDescrição
ESI Este registrador de índice de 16 bits é requerido por algumas operações com cadeias (de caracteres).
EDI Este registrador de índice de destino também é requerido por algumas operações com cadeias de caracteres.
.
Registradores de Bandeiras (Flags)Descrição
São usados para registrar a informação de estado e de controle das operações do microprocessador. São 9: CF, OF, ZF, SF, PF, AF, DF, IF, TF.

Instruções do microprocessador

As instruções são sequências de bits (uns e zeros). Indicam qual operação deve ser feita e com que dados operação deve ser realizada. Por enquanto veremos 11 instruções:

MOV (mover) DESTINO FONTE

Esta instrução MOV significa mover e se encarrega de passar o conteúdo do operando Fonte para o do Destino. Na programação devemos respeitar as seguintes regras: Destino - Podem ser variáveis e registradores de 8, 16 e 32 bits; Fonte - Podem ser variáveis, registros do Windows e valores inteiros.

ADD (soma) DESTINO FONTE

A instrução ADD significa Somar. Soma o conteúdo dos dois operandos e o resultado é repassado para o operando Destino.

Destino - Podem ser variáveis e registradores de 8, 16 e 32 bits. Fonte - Podem ser variáveis, registros do Windows e valores inteiros.

SUB (subtração) DESTINO FONTE

A instrução SUB significa Subtrair. Subtrai o conteúdo do operando Fonte do Destino e o resultado é armazenado no operando Destino.

Destino - Podem ser variáveis e registradores de 8, 16 e 32 bits. Fonte - Podem ser variáveis, registros do Windows e valores inteiros.

INC (incrementa 1) DESTINO DEC (decrementa 1) DESTINO

Estas instruções incrementam e decrementam respectivamente o valor contido no operando Destino. Destino - Podem ser variáveis e registradores de 8, 16 e 32 bits.

PUSH (guarda) FONTE

PUSH se encarrega de guardar o conteúdo do operando Fonte na Pilha. Fonte - Podem ser variáveis, valores inteiros e registradores de 16 e 32 bits.

POP (recupera) DESTINO

Ao contrário de PUSH, esta instrução recupera o conteúdo guardado na pilha. Destino - Podem ser variáveis e registradores de 16 e 32 bits.

Quando guardamos vários valores com a instrução PUSH e quiseremos recuperar estes valores, utilizamos a instrução POP respeitando a seguinte regra:

"O último valor guardado será o primeiro a ser recuperado".

Informações adicionais