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