
Я просмотрел множество блогов и постов, но так и не смог понять, как именно машинный код преобразуется в электрические сигналы?
Любая программа компилируется в машинный код, который представляет собой множество единиц и нулей. 1 означает высокое напряжение, например 5 В, а 0 означает сравнительно низкое напряжение, например 0 В или заземление. Какой компонент это понимает? Хорошо, у меня 1 (один), поэтому мне нужно повысить напряжение до 5 В, а для 0 (ноль) мне нужно понизить напряжение до более низкого уровня. Как он это делает?
решение1
Такого компонента нет и быть не может. 1 и 0 — это чисто теоретические объекты, и нет компонента, который превращает теоретические вещи в физические эффекты. Физические объекты могут вызывать только физические эффекты одного вида в другие виды физических эффектов. 1 и 0 живут только в умах людей.
Вы можете рассматривать компьютеры на абстрактном уровне как манипуляции единицами и нулями, или вы можете рассматривать их на физическом уровне как манипуляции напряжениями и токами. Но это два разных способа смотреть на одни и те же компоненты, делающие одни и те же вещи.
1 и 0 — это реальные вещи, которые можно подать на физическое устройство и преобразовать во что-то другое.
решение2
Ваш машинный код вообще не «конвертируется» в электрические сигналы. Онявляетсянабор электрических сигналов. Тот факт, что вы видите цифры и буквы на экране, не имеет значения, все эти данные — просто обработка очень точно организованных электрических сигналов в соответствии со строгим набором правил.
Ваш машинный код представлен байтами данных, наборами нулей и единиц, в каком-то запоминающем устройстве. При считывании байта из памяти, которая является просто набором электрических сигналов, процессор настроен определенным образом для обработки следующей партии электрических сигналов, которые он увидит. Этот процесс повторяется миллионы раз, и вы видите что-то на экране.
Проблема, с которой вы сталкиваетесь, заключается в том, что вы неправильно интерпретируете результаты (видите изображение на экране) как результат некоего конечного этапа преобразования, это не так. То, что вы видите, является результатом огромного количества изменений электрического состояния в некоторых чрезвычайно сложных устройствах.
Для визуального представления того, что на самом деле происходит внутри процессора, я бы рекомендовал взглянуть наВизуальное моделирование процессора 6502
Ближе всего к «конверсии» — когда данные записываются на устройства хранения, такие как HDD, где они хранятся магнитно на пластине. Но даже там они хранятся таким образом, что их легче восстановить до точной электрической копии оригинала.
По сути, все, что вы видите на экране, это просто электроны, которые быстро перемещаются, тот факт, что ваш мозг может «видеть» узоры и изображения, зависит от того, как мы приказали этим электронам двигаться. Изображения являются продуктом электрических операций, а не преобразованием одного в другое.