Obviamente, o memtest86 + não pode testar a região da memória que atualmente contém o código executável do memtest86 + (mas se houver erros de memória nessa região, é muito provável que o teste em si seja travado). No entanto, o memtest86 + é capaz de realocar seu próprio código para um endereço diferente em tempo de execução e, usando esse truque, é possível testar toda a memória que é permitida pelo firmware (BIOS) - mas não de uma só vez.
Essa realocação de código é descrita em README.background dentro do arquivo de código-fonte do memtest86 + (o arquivo está um pouco desatualizado - por exemplo, ele afirma que os endereços usados para o código do memtest86 + são 0x2000 e 0x200000, mas o endereço baixo, conforme definido na origem, é na verdade, 0x10000, e o endereço alto é 0x2000000 ou 0x300000, dependendo da quantidade de memória na máquina).
Mas mesmo com esse truque de realocação, o memtest86 + não pode testar toda a memória pelos seguintes motivos:
Normalmente, o firmware (BIOS) reserva algumas regiões de RAM para seu próprio uso (por exemplo, tabelas ACPI). Embora essas regiões de RAM possam ser acessadas pela CPU, escrever qualquer coisa nelas pode resultar em comportamento imprevisível.
Alguma parte da RAM é usada para o Modo de Gerenciamento do Sistema e nem é acessível a partir da CPU fora do código SMM privilegiado.
O intervalo de endereços de RAM entre 640K e 1M é inacessível devido a peculiaridades do layout de memória do PC herdado (parte dessa RAM pode ser usada como sombra para a ROM do BIOS e para o SMM, outras partes podem ser completamente inacessíveis).