как исходный код конвертируется в 1 и 0? - PullRequest
3 голосов
/ 01 сентября 2010

компьютеры не понимают ничего, кроме единиц и нулей. Но я хочу узнать подробности того, как исходный код или набор инструкций преобразуются в 1 и 0. Файл exe содержит только 1 и 0?

Ответы [ 4 ]

8 голосов
/ 01 сентября 2010

Каждый тип операции в наборе команд микропроцессора определяется кодом операции, который представлен в виде шаблона 1 и 0. компилятор или интерпретатор переводит код на исходном языке в машинный код , составленный из этих инструкций.

Например, возьмем этот код, где переменной x присвоено значение 50:

x = 50;

Компилятор может перевести это на следующий язык ассемблера, где регистр AX (для переменной x) установлен со значением 50 (в шестнадцатеричном формате), используя инструкцию MOV :

mov ax, 0x32

Если код операции для MOV был 0xA0 , а код для регистра AX был 0xB , то машинный код в двоичном виде будет выглядеть следующим образом:

10100000 00001011 00110010
4 голосов
/ 01 сентября 2010

Вам нужно исследовать Компиляторы

2 голосов
/ 01 сентября 2010

Да. .Exe по сути является двоичным форматом файла, который содержит 0 и 1 (он также содержит другую важную информацию об ОС для запуска вашей программы)

Процессор поставляется со спецификацией некоторых основных операций, таких как SUM, MOV и т. Д. Это единственные операции, о которых знает процессор. Задача компилятора - интерпретировать что-то вроде 2 + 3 и преобразовать его во что-то, что процессор может интерпретировать (SUM и проверка флагов на переполнение и т. Д.).

Таким образом, по сути, написание высокоуровневого кода, такого как 2 + 3, это просто более короткий способ написания большого количества ассемблерного кода (который является просто читабельной версией двоичного кода).

0 голосов
/ 01 сентября 2010

Когда вы компилируете свой код, компилятор создает эквивалент в Assembly, который затем переходит к процессору для запуска. Ассемблер выполняет работу по преобразованию сборки в двоичный файл.

Каждая инструкция высокого уровня (на вашем языке программирования) как инструкции по сборке связана с ней. Эти инструкции по сборке могут быть сильно оптимизированы (отсюда и GCC, и другие компиляторы, флаги оптимизации).

Возможно, вы захотите прочитать http://computer.howstuffworks.com/bytes.htm

...