Think about it: Memtest86 needs to store information about how large
the RAM is, what it put in RAM to compare later, where to update the
screen, and a lot more information. The act of using a variable
requires RAM to be functioning properly. But how can you get reliable
results when your running the program on possibly defective RAM?
Bem, isso é o que o Memtest faz - ele grava vários padrões (conhecidos) na sua RAM, lê e compara. Se houver uma correspondência incorreta, sua RAM deve estar corrompida.
An analogy to this is running a hard drive checking program from the
hard drive that your checking. You would never do that, a bad block
could affect the program in lots of unexpected ways
Embora isso seja verdade, há alguns casos em que você não tem escolha. Contanto que você possa carregar o programa com sucesso, ele deve ser capaz de executar suas tarefas de diagnóstico (mesmo se estiver sendo executado em algum tipo de mídia defeituoso).
How does Memtest86 function with bad RAM?
Bem, ele precisa se carregar primeiro na memória. Na maioria dos casos, essa memória ainda será boa. Caso não seja , o Memtest provavelmente determinará que o próprio programa está corrompido, comparando algumas variáveis no local com uma soma de verificação. No caso de não coincidirem, você saberia instantaneamente que sua RAM está ruim ou que a cópia baixada está corrompida (e seria uma tarefa trivial determinar se a última é a causa ou não).
TL, DR: O Memtest86 + funciona apenas supondo que o primeiro megabyte da sua RAM ainda esteja bem (o local onde seria mais provável o carregamento). Assumindo que esta área está corrompida, o próprio Memtest86 + simplesmente não funcionaria (o que é um indicador bastante rápido de que sua RAM está ruim, mesmo sem ter executado os testes).