Подумайте об этом: Memtest86 должен хранить информацию о том, какой объем ОЗУ, что он поместил в ОЗУ для последующего сравнения, где обновлять экран и многое другое. Использование переменной требует, чтобы ОЗУ функционировало должным образом. Но как вы можете получить надежные результаты, когда вы запускаете программу, возможно, с дефектом оперативной памяти?
Ну, это то, что делает Memtest - он записывает различные (известные) шаблоны в вашу оперативную память, считывает их обратно и сравнивает. Если есть несоответствие, ваша RAM должна быть повреждена.
Аналогия с этим - запуск программы проверки жесткого диска с жесткого диска, который вы проверяете. Вы бы никогда этого не сделали, плохой блок может повлиять на программу многими неожиданными способами.
Хотя это и правда, в некоторых случаях у вас нет выбора. Если вы можете успешно загрузить программу, она должна выполнять диагностические задачи (даже если она работает на каком-то неисправном носителе).
Как Memtest86 работает с плохой оперативной памятью?
Ну, сначала он должен загрузить себя в память. В большинстве случаев эта память все равно будет хорошей. Если это не так, Memtest, скорее всего, определит, что сама программа повреждена, сравнив некоторые переменные на месте с контрольной суммой. В случае, если они не совпадают, вы сразу узнаете, что у вас плохая оперативная память или поврежденная загруженная копия (и было бы тривиальной задачей определить, является ли последняя причиной или нет).
TL, DR: Memtest86+ работает только при условии, что первый мегабайт вашей оперативной памяти все еще в порядке (место, где она будет загружена, скорее всего). Предполагая, что эта область повреждена, сам Memtest86+ просто не будет функционировать (что является довольно быстрым показателем того, что ваша ОЗУ плоха даже без запуска тестов).