O Modo Longo é ativado através de um bit de controle chamado LMA, do inglês “Long Mode Active”. Quando o LMA estiver desativado, o processador operará no modo padrão x86 e será compatível com os sistemas operacionais e aplicativos de 16 e 32 bits, ou seja, será compatível com tudo que existe nos dias de hoje. Quando o LMA for ativado (Modo Longo), a extensão de 64 bits estará habilitada, oferecendo uma nova CPU de 64 bits. O Modo Longo é ainda dividido em dois submodos: o Modo 64-bits e o Modo Compatível. Esses dois submodos são controlados pelos bits D e L, presentes no descritor apontado pelo registrador CS (Segmento de Código). O Modo Compatível é interessante porque permite que, a nível de programa, se rodem aplicativos de 16 ou 32 bits dentro do Modo 64-bits. É algo semelhante ao modo virtual 86 dos processadores 386. A Figura 1 apresenta um quadro explicativo desses modos.
 clique para ampliar Figura 1: Modos de operação da família x86-64.
O antigo modo x86 (32 ou 16 bits) é denominado Modo Legal (LMA=0). Quando nesse modo, as CPUs x86-64 podem trabalhar com dados de 16 ou 32 bits. Note que, quando nesse modo, o estado do bit CS.L não tem significado, ou seja, ele é um “don’t care”.
Quando colocado em Modo Longo 64-bits (LMA=1, CS.L=1 e CS.D=0), o tamanho padrão do operando é de 32 bits e o tamanho padrão para o endereçamento é de 64 bits. Com o uso de prefixos de instrução, o tamanho do operando pode ser alterado para 64 ou 16 bits e o tamanho do endereço para 32 bits.
Se colocado no Modo Longo Compatível (LMA=1 e CS.L=0), passa a existir a compatibilidade binária com as aplicações escritas em 16 e 32 bits x86. Isso é interessante, pois um sistema operacional em Modo Longo pode rodar os atuais programas de 16 e 32 bits apenas colocando em zero o bit CS.L do descritor apontado pelo segmento de código desses aplicativos. No submodo Compatível, o bit CS.D continua a selecionar entre os modos de 16 e 32 bits. Deve ainda ser notado que, quando o processador está no Modo Legal, o estado do bit CS.L não tem significado, ou seja, é um “don’t care”. A Figura 2 apresenta os detalhes de programação dessa nova arquitetura.
 clique para ampliar Figura 2: Características de programação da arquitetura x86-64 da AMD.
|