Что преобразует двоичный код / ​​машинный код в электрические сигналы и как?

1868
dev gr

Я просмотрел множество блогов и постов, но не смог точно выяснить, как машинный код преобразуется в электрические сигналы?

Любая программа компилируется в машинный код, который является ничем иным, как множеством единиц и нулей. 1 означает высокое напряжение, например, 5 В, а 0 означает сравнительно низкое напряжение, например, 0 В или землю, что за компонент, который понимает, что все в порядке, я получил 1 (один), поэтому мне нужно увеличить напряжение до 5 В, а для 0 (ноль) мне нужно понизить уровень напряжения и как это сделать?

-1
Вы ищете пример того, как тривиальный фрагмент машинного кода переводится из его сохраненного формата в электрическую активность в CPU, и как это дает результат? fixer1234 8 лет назад 0
Вам нужно потратить больше времени на изучение того, что делают ЦП (внутренне), как они интерпретируют машинный код (фактические инструкции) и, как указывает Дэвид, состав ЦП ... Подумайте о миллиардах транзисторов для современного компьютерный процессор ... Но также взгляните на базовые процессоры, такие как процессоры PIC ... Kinnectus 8 лет назад 0
@ fixer1234 Да, это поможет. Пожалуйста, оставьте ссылку, если у вас есть. Спасибо. dev gr 8 лет назад 0

2 ответа на вопрос

1
David Schwartz

There is no such component, nor could there be. 1's and 0's are purely theoretical objects, and there is no component that turns theoretical things into physical effects. Physical objects can only cause physical effects of one kind into other kinds of physical effects. 1's and 0's only live in people's minds.

You can look at computers at an abstract level as manipulating 1's and 0's or you can look at them at a physical level manipulating voltages and currents. But these are two different ways of looking at the same components doing the same things.

1's and 0's are real things that can be fed into a physical device to be converted into something else.

Вы согласны, что мы пишем код в текстовом редакторе, как этот код управляет машиной? Ваш код - это не физическая вещь, а машина. Я прав? dev gr 8 лет назад 0
Даже после ваших правок мой вопрос остается прежним. У нас должно быть что-то, что управляет машиной в соответствии с кодом, который мы пишем. Что такое «одни и те же компоненты», что «делают одни и те же вещи» и как? dev gr 8 лет назад 0
Вы хотели бы пройти этот блог http://www.quora.com/How-exactly-is-the-machine-code-or-even-a-programming-language-converted-to-binaries-and-how- эти двоичные файлы передаются как электрические сигналы или, скорее, наоборот, так что вы понимаете, что я ищу. Благодарю. dev gr 8 лет назад 1
@devgr: Похоже, что на ваш вопрос в значительной степени ответил пост Quora Артема Бойцова. Karan 8 лет назад 0
@devgr Код - это одновременно и физическая, и концептуальная вещь. Вы можете думать об этом как 1 или 0 или буквы или другие математические и концептуальные символы. Но в то же время в компьютере есть физическое представление этого кода в виде напряжений и токов. Одним из них является то, как мы, люди, думаем о другом. David Schwartz 8 лет назад 0
@DavidSchwartz Я хочу перейти от логических вещей к практическим вещам. Но дискуссия у нас чисто логическая. Но все равно спасибо. dev gr 8 лет назад 0
@devgr Нет компонента, который делает это, потому что логические вещи - это не физические объекты, а то, как люди думают о физических объектах. Каждый компонент может быть рассмотрен физически с точки зрения того, что физический материал входит и выходит, и логически с точки зрения того, что материал, который входит, означает, что означает материал, который выходит. David Schwartz 8 лет назад 0
@DavidSchwartz Иногда логические разработки приводят к разработке физических компонентов и наоборот. Должна быть связь между ними или, точнее говоря, интерфейс между ними, который фактически превращает вещи в реальность. dev gr 8 лет назад 0
@devgr Нет, такого интерфейса не может быть. Там нет компонента, который принимает концептуальные вещи и выплевывает физические вещи. О каждом компоненте можно думать концептуально или думать физически. Например, мы можем воспринимать ваше ухо как восприятие слов и музыки или восприятие колебаний воздуха. Они оба способа описать вход для вашего уха. David Schwartz 8 лет назад 2
@DavidSchwartz Это действительно хороший пример, позвольте мне описать себя, используя то же самое. Физический вклад в ваше ухо - это воздушные вибрации, создаваемые другим физическим компонентом, который называется динамиком. Логично, что вибрации воздуха могут быть для вас музыкой, речью и т. Д. Теперь файл MP3, который вы храните в своем компьютере / мобильном устройстве, переходит к некоторому физическому компоненту, который преобразует содержимое вашего MP3 в аналоговые звуковые сигналы. У вас есть две вещи: MP3-файл и аналоговый преобразователь, поскольку MP3-файл - это не физическая вещь. dev gr 8 лет назад 0
@devgr Файл MP3 - это логическая вещь, которая существует от начала до конца. Это не вход и не выход из какого-либо компонента, а то, как мы думаем об информации, представленной по-разному в разных местах. (Точно так же, как «слова» или «музыка» - это то, как мы думаем о давлении воздуха, попадающем в ваши уши, и об ощущаемых ощущениях в конце процесса слуха.) David Schwartz 8 лет назад 0
Как программист, мы пишем программное обеспечение на любом языке в текстовом редакторе, а не строим схемы. Поэтому, когда этот код скомпилирован, вы можете передать этот код на машину, чтобы он выполнял необходимые операции с использованием физических компонентов, таких как транзисторы и диоды и т. Д., Которые понимают только уровни напряжения. Таким образом, некоторые компоненты переключают уровни напряжения в соответствии с написанным вами кодом, поэтому вы получаете желаемые результаты. Что это за компонент? dev gr 8 лет назад 0
Давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/24555/discussion-between-david-schwartz-and-dev-gr). David Schwartz 8 лет назад 0
0
Mokubai

Your machine code is not "converted" into electrical signals at all. It is a set of electrical signals. The fact that you see numbers and letters on your screen is irrelevant, all of that data is simply the processing of very precisely arranged electrical signals under a strict set of rules.

Your machine code is represented by bytes of data, sets of 0's and 1's, in some kind of memory device. In reading a byte from memory, which is simply a set of electrical signals, the processor is set up in specific ways to handle the next batch of electrical signals it will see. This process repeats itself millions of times and you see something on the screen.

The problem that you are having is that you are misreading the results (seeing an image on screen) as the result of some final conversion stage, it is not. What you see is the result of a massive number of electrical state changes within some massively complex devices.

For a visual indication of what is actually happening within a processor I'd recommend having a look at Visual Simulation of a 6502 processor

The closest to "conversion" is when data is written to storage devices such as a HDD where it is stored magnetically on the platter. Even there though it is stored in a way that makes it easier to restore it to an exact electrical replica of the original.

Basically everything you see on your screen is just electrons being moved around quickly, the fact that your brain can "see" patterns and images is down to how we told those electrons to move. The pictures are the product of electrical operations, not a conversion from one to the other.

Это очень близко, теперь у меня в голове рабочий образ, спасибо. Но самая интересная часть «Ближайшее к« преобразованию »- это когда данные записываются на устройства хранения, такие как жесткий диск, где они хранятся магнитным способом на пластине. Даже там, где они хранятся таким образом, что их легче восстановить точной электрической копии оригинала. " Я действительно заинтересован в том, что это формирует данные, которые хранятся, и кто восстанавливает эти данные обратно в электрические сигналы? dev gr 8 лет назад 0
Ах, теперь это совсем другой вопрос ... http://www.explainthatstuff.com/harddrive.html Mokubai 8 лет назад 0
Пост выше описывает преобразование магнитных сигналов в электрические сигналы в случае жесткого диска. Когда вы говорите, что компилятор компилирует программу на машинный язык, что он на самом деле делает? Он генерирует эквивалентные электрические сигналы? Я думаю, нет. dev gr 8 лет назад 0
Компилятор генерирует данные, данные хранятся в запоминающих устройствах, и существует логическое разъединение между тем, что вы видите как компилятор, и электрическими операциями, которые происходят под ним. Компилятор представляет собой конструкцию данных поверх чисто электрической системы. Эта конструкция способна инструктировать электрическую систему создавать данные в определенном порядке, которые могут быть сохранены и затем обработаны электрической системой. Вам нужно выбросить из головы то, что необходимо любое преобразование или генерация сигналов, одна система построена поверх другой системы и является ее особенностью. Mokubai 8 лет назад 0

Похожие вопросы