Assembly x86/Modos de operação: diferenças entre revisões

Origem: Wikilivros, livros abertos por um mundo aberto.
[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
mSem resumo de edição
Linha 1: Linha 1:
A compatibilidade com versões anteriores de software tem sido desde o princípio a principal fonte de decisões de design da arquitectura x86. Quando a Intel desenhou o 8086, utilizou nele um modelo de memória que permitia que os programas desenvolvidos para microprocessadores anteriores da Intel pudessem ser facilmente adaptados para correr na nova arquitectura.
A compatibilidade com versões anteriores de software tem sido desde o princípio a principal fonte de decisões de design da arquitectura x86. Quando a Intel desenhou o 8086, utilizou nele um modelo de memória que permitia que os programas desenvolvidos para microprocessadores anteriores da Intel pudessem ser facilmente adaptados para correr na nova arquitectura.


Posteriormente à introdução do 8086, as alterções de fundo à arquitectura têm sido isoladas por meio de modos de operação distintos. Define-se modo de operação como os elementos do estado interno do processador que afectam o comportamento da execução da totalidade ou parte das instruções. Esse estado interno é atingido por execução de uma sequência de instruções.
Posteriormente à introdução do 8086, as alterações de fundo à arquitectura têm sido isoladas por meio de modos de operação. Define-se modo de operação como os elementos do estado interno do processador que afectam o comportamento da execução da totalidade ou de parte das instruções. Esse estado interno é atingido por execução de uma sequência de instruções.


Seja ''C'' o comportamento do processador após a operação de Reset, ou seja, quando o processador acabou de se inicializar. Neste caso, ''C'' representa o comportamento do processador ''8086''. ''F1'' e ''F2'' são modos de operação, e ''f1'' e ''f2'' as sequências de instruções que é necessário executar para que o processador atinja os estados ''F1'' e ''F2'', respectivamente. Representemos por <math>M(C, F)</math> o comportamento resultante de aplicar o modo de operação ''F'' ao comportamento ''C''. ''P1'' é um programa que é a composição de <math>f1</math> com um programa que assume <math>M(C, F1)</math>, e ''P2'' um programa que é a composição de <math>f2</math> com um programa que assume <math>M(C, F2)</math>.
Seja ''C'' o comportamento do processador após a operação de Reset, ou seja, quando o processador acabou de se inicializar. Neste caso, ''C'' representa o comportamento do processador ''8086''. ''F1'' e ''F2'' são modos de operação, e ''f1'' e ''f2'' as sequências de instruções que é necessário executar para que o processador atinja os estados ''F1'' e ''F2'', respectivamente. Representemos por <math>M(C, F)</math> o comportamento resultante de aplicar o modo de operação ''F'' ao comportamento ''C''. ''P1'' é um programa que é a composição de <math>f1</math> com um programa que assume <math>M(C, F1)</math>, e ''P2'' um programa que é a composição de <math>f2</math> com um programa que assume <math>M(C, F2)</math>.

Revisão das 00h41min de 20 de dezembro de 2007

A compatibilidade com versões anteriores de software tem sido desde o princípio a principal fonte de decisões de design da arquitectura x86. Quando a Intel desenhou o 8086, utilizou nele um modelo de memória que permitia que os programas desenvolvidos para microprocessadores anteriores da Intel pudessem ser facilmente adaptados para correr na nova arquitectura.

Posteriormente à introdução do 8086, as alterações de fundo à arquitectura têm sido isoladas por meio de modos de operação. Define-se modo de operação como os elementos do estado interno do processador que afectam o comportamento da execução da totalidade ou de parte das instruções. Esse estado interno é atingido por execução de uma sequência de instruções.

Seja C o comportamento do processador após a operação de Reset, ou seja, quando o processador acabou de se inicializar. Neste caso, C representa o comportamento do processador 8086. F1 e F2 são modos de operação, e f1 e f2 as sequências de instruções que é necessário executar para que o processador atinja os estados F1 e F2, respectivamente. Representemos por o comportamento resultante de aplicar o modo de operação F ao comportamento C. P1 é um programa que é a composição de com um programa que assume , e P2 um programa que é a composição de com um programa que assume .

  • Se o processador suporta o modo de operação F1 mas não o modo F2, a execução de P2 vai falhar porque o processador não vai reconhecer f2. No entanto, a execução de P1 vai ser bem sucedida, uma vez que f1 é reconhecida pelo processador.
  • Se o processador suporta os modos de operação F1 e F2, a execução de P1 vai ser bem sucedida, uma vez que f1 vai ser reconhecida. Por sua vez, o suporte ao modo F2 é silenciosamente ignorado, já que o programa P1 ignora a sua existência. Em contrapartida, uma vez que a sequência f2 não é executada, as modificações patentes em F2 não afectam a execução de P2.

A arquitectura x86 define 5 modos de operação oficiais.

Modo Real

Modo Protegido

Modo de 8086 Virtual

Modo Longo

Modo de Compatibilidade

Modo de 64-bits