Я бачу, що ви дуже заплутані. :-)
По-перше, код є даними, це лише дані, які мають специфічне значення для процесора [1].
По-друге, "біти" - це рівні заряду, що рухаються, як водопровідні води, по проводах логіки. Зауважте, що рівень заряду (напруги) не є реальними електронами навколо: хоча електрони рухаються, вони рухаються досить повільно в порівнянні зі зміною напруги.
RAM означає оперативну пам'ять, а D в DRAM - для "Dynamic", тому що вона не триває довго без оновлення. Сучасні мікросхеми мають внутрішню логіку оновлення, яка зчитує всі біти і записує їх назад, що призводить до підзарядки магазину. Майже всі ОЗУ зберігають біти як два рівні заряду, наприклад потенціал 0 вольт для логіки 0 і потенціал 1,5 вольт для логіки 1. Можна, хоча і зовсім не загальне, мати багатозначні біти, так що 0 .. 0,1 вольт за 0, 0,9 .. 1,1 вольт за 1, 1,9 .. 2,1 вольт за 2 і 2,9 .. 3,1 вольт за 3, для стільника, що зберігає 2 біти (двійкові розряди) даних.
Фактичні напруги, що використовуються в логіці (пам'яті або іншим чином), не є важливими, але, звичайно, кожен кінець компонентів дроту, що з'єднує, повинен узгоджуватися з ними. Якщо ви подивитеся на електронні таблиці, ви знайдете заяву щодо напруг, які чіп інтерпретує як кожен логічний рівень. Загальний для TTL логіки на 5 вольт (номінальний) був між 0 і 0.5V є логікою 0, і 3,5 вольт до 5,1 вольт логіки 1.
Коли в пам'ять записується розташування, електроніка встановлюється таким чином, що все, що було там, перезаписується - будь то 0 або 1. Іноді ця логіка працює "неправильно": "природне" значення логічне 1 значення, яке повинно бути примусовим, дорівнює 0. У будь-якому випадку, це все в DRAM-чіпі: все інше вважає пам'ять місцем, яке можна записати і переписати стільки і часто, скільки потрібно. Якщо вам цікаво, що сталося з "старими" даними, заряд відправляється на землю, і він є частиною причини того, що мікросхеми споживають енергію.
Коли процесор отримує код з пам'яті, він передається через конвеєр етапів: вони служать для прискорення процесора. Багато сучасних процесорів також є мікропрограмованими: внутрішня логіка виконує кілька "інструкцій" з одного вхідного, і ці внутрішні інструкції ще нижчі. Щоб зрозуміти все це правильно, потрібно зрозуміти внутрішні процесори, і x86 не є місцем для запуску на цьому !! Щось простіше було б Роквеллом 6502 (Acorn BBC / C = 64 et al). Більше того, люди написали емулятори, так що ви можете грати всілякі ігри дуже легко.
Під час завантаження більша частина процесора буде утримуватися в стані скидання, поки вся зовнішня логіка не перейде в стабільний стан. Потім він або завантажить значення в покажчик інструкцій і витягне інструкції з цієї точки, або завантажить значення з фіксованої точки в пам'яті в покажчик інструкцій, а потім витягне інструкції з цієї точки. Останнє називається непрямою адресацією.
BIOS на ПК є кодом, який процесор x86 працює під час завантаження. Свого часу вона також використовувалася під час виконання операційної системи. Під час завантаження завдання полягає в тому, щоб перевести всі апаратні засоби у хороше (а не просто стабільне) стан, створити таблицю, що описує апаратне забезпечення, яке операційна система буде використовувати пізніше, знайти завантажувальний диск і, якщо буде успішно, завантажити перший сектор з диска RAM і стрибати в неї, очікуючи, що цей сектор міститиме завантажувальний код.
Реальні комп'ютери є більш складними, ніж це, і EFI також ускладнює питання, тому я настійно рекомендую дотримуватися 8-бітових мікросхем для початку, оскільки вони простіші всередині, а також більш вузькі.
HTH
[1] Деякі процесори розрізняють мікросхеми пам'яті, що використовуються для коду, з тих, що використовуються для даних, які називаються "архітектурною пам'яттю Гарварда". Тим не менш, "код даних" все ще вірно навіть тоді.