Assembly x86/Registos: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição |
Sem resumo de edição |
||
Linha 2:
{{Wikipedia|Registrador (informática)}}
== Registos de
Os 8 GPRs, ou Registos de Uso Geral, são os seguintes (por ordem de introdução
*'''EAX''' -
*'''ECX''' -
*'''EDX''' - Registo de
*'''EBX''' -
*'''ESP''' - Apontador da Pilha (''Stack Pointer''). Aponta para o topo da pilha (endereço mais baixo dos elementos da pilha).
*'''EBP''' - Apontador do frame. Usado para aceder a argumentos de funções passados pela pilha
*'''ESI''' - Índice da fonte de dados a copiar (''Source Index''). Aponta para dados a copiar para DS:EDI.
*'''EDI''' - Índice do destino de dados a copiar (''Destination Index''). Aponta para o destino dos dados a copiar de DS:ESI.
Estes 8 registos têm 32 bits cada um e dizem-se
As versões não
''
== Registos de segmento ==
Há 6 registos de segmento.
*'''CS''' - Segmento do Código
*'''DS''' - Segmento de Dados
*'''ES''' - Segmento com dados
*'''FS''' - Segmento com mais dados
*'''GS''' - Segmento com ainda mais dados
*'''SS''' - Segmento da Pilha
Os segmentos são uma
== Registo das flags ==
O registo das flags é chamado '''EFLAGS''' (Extended
No esquema
|-
| 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0
| 0 || 0 || ID || VIP || VIF || AC || VM || RF
▲<tr style="background-color: blue; color: white;">
|-
! colspan="16" |
|-
| 15 || 14 || 13 || 12 || 11 || 10 || 9 || 8
| 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0
| 0 || NT || colspan=2 | '''IOPL''' || OF || DF || IF || TF
| SF || ZF || 0 || AF || 0 || PF || 1 || CF
|}
▲<tr style="background-color: #777777; color: white;">
Ao carregar um novo valor no EFLAGS, os bits que aparecem no esquema como 1 ou 0 devem ser carregados como tal, de modo a preservar a compatibilidade do software com gerações futuras da arquitectura.
Linha 67 ⟶ 60:
O Apontador de execução, ou Instruction Pointer (genericamente conhecido na ciência da computação por Program Counter), do x86 é um registo interno que aponta para a '''próxima''' instrução a ser executada.
Como sempre, o seu nome é EIP e a parte que contem os 16 bits menos significativos denomina-se IP. Note-se que utilizar um método convencional para aceder a este registo produz um erro do
[[Categoria:
|