Propriedades Básicas da Arquitetura x86
A arquitetura x86 é um comprimento variável de instrução, primeiramente são modelados dois endereços “CISC” com ênfase em compatibilidade com versões anteriores. No entanto o conjunto de instruções não é típico CISC, mas, basicamente, uma versão estendida e ortogonal de simples oito bits, das arquiteturas 8008, 8080 e 8085. O Byte de endereçamento é suportado e as palavras são armazenadas na memória com ordem de little-endian byte. O acesso à memória para endereços desalinhados é permitido em todos os tamanhos de palavras suportadas. O maior tamanho nativo para aritmética de inteiros e endereços de memória (ou deslocamentos) é de 16, 32 ou 64 bits dependendo da geração da arquitetura (processadores mais recentes incluem um suporte direto para inteiros menores também). Vários valores escalares podem ser tratados simultaneamente, através da unidade SIMD presente em gerações posteriores, conforme descrito abaixo. Compensações imediatas de endereçamento e dados de imediato podem ser expressos em quantidades de 8 bits conforme a frequência que ocorrem os casos ou contextos em que o intervalo de 128 .. 127 é o suficiente. Instruções típicas são, portanto, de 2 ou 3 bytes de comprimento (embora alguns são muito mais longos, e algumas são de byte único). Para melhor conservar o espaço de codificação, a maioria dos registros são expressos em opcodes usando três bits, e no máximo um operando em uma instrução que pode ser um local de memória (alguns projetos "CISC" altamente ortogonais, como o PDP-11, podem utilizar dois). No entanto, esta memória operando também pode ser de destinação (ou a combinação entre fonte e destinação), enquanto o outro operando, a fonte, pode ser tanto registrada quanto imediata. O número relativamente pequeno de registros gerais (também herdados de seus antecessores de 8 bits) fez-se endereçamento de registro relativo (usando pequenas compensações imediatas) como um importante método de acesso a operandos,