Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2017, 12:51   #1
Loengreen
Новичок
Джуниор
 
Регистрация: 11.10.2017
Сообщений: 8
По умолчанию Хранение данных в двоичном коде.

Всем добрый день. Меня интересует следующий вопрос - вся информация хранится на дискете/диске/жестком диске и т.п. в двоичном коде в, грубо говоря, единицах и нулях. Каким образом компьютер понимает что одни единицы и нули - это набор данных, а другие - команды?
Пример: допустим у нас есть простая операция, допустим 199 умножить на 555. Число 199 в двоичном варианте это 11000111, 555 это 1000101011.
Не знаю как будет выглядеть умножение в двоичном коде, но допустим 111000111.
В итоге получаем следующую строку:
110001111110001111000101011.
У нас нет ни отдельных знаков ни пробелов, только логические единицы и нули. Как компьютер понимает, что часть этих единиц и нулей - это цифра, другая часть - другая цифра и еще часть - это операция для этих чисел?

Последний раз редактировалось Loengreen; 11.10.2017 в 12:56.
Loengreen вне форума Ответить с цитированием
Старый 11.10.2017, 12:55   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

У процессора есть система команд, вот по ней и действует. Там и написано, например, что первые 10 бит команда, еще 2 - флаги, если флаг 1 установлен, то операнды лежат в регистрах и указаны их номера.
p51x вне форума Ответить с цитированием
Старый 11.10.2017, 12:57   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так вы ему об этом и говорите. Он ж не где попало читает/пишет что попало.

Ну или если таки где попало, то скорее всего это ошибка в программе и все упадет
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.10.2017, 13:07   #4
Loengreen
Новичок
Джуниор
 
Регистрация: 11.10.2017
Сообщений: 8
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
У процессора есть система команд, вот по ней и действует. Там и написано, например, что первые 10 бит команда, еще 2 - флаги, если флаг 1 установлен, то операнды лежат в регистрах и указаны их номера.
Согласен, у каждого процессора есть своя архитектура, согласно которой он выполняет те или иные операции с разными числами. Есть отдельный блок - АЛУ, который этим занимается. Но как процессор, получив строчку из устройства ввода данных, где он просто видит нули и единицы определяет, что из этого цифры, что команды?
Loengreen вне форума Ответить с цитированием
Старый 11.10.2017, 13:19   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Никак. Для него все команды. Он их и разбирает.
p51x вне форума Ответить с цитированием
Старый 11.10.2017, 13:35   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

http://asmworld.ru/spravochnik-komand/imul/
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.10.2017, 14:05   #7
Loengreen
Новичок
Джуниор
 
Регистрация: 11.10.2017
Сообщений: 8
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Вы скинули синтаксис команд ассемблера. Тут все более менее понятно. Таким образом мы указываем процессору в какие адреса памяти можно что либо записать и что потом с этим делать и куда вывести результат.
Мой вопрос на уровень ниже. Ассемблер потом переводит эти команды в те же логические нули и единицы и с ними уже работает процессор. Но когда процессор видит только нули и единицы - как он понимает что вот эту часть надо записать сюда, вот эта часть - это адрес памяти, другая часть - это информация из памяти такого-то адреса, которую надо умножить/вычесть/сложить на информации другого адреса памяти.

"Никак. Для него все команды. Он их и разбирает." - интересная мысль. Т.е. получается что ему нет разницы между цифрами, обозначающими числа и цифрами, обозначающими команды. Тут надо подумать.
Loengreen вне форума Ответить с цитированием
Старый 11.10.2017, 14:09   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

А с чего для него должна быть разница?
p51x вне форума Ответить с цитированием
Старый 11.10.2017, 14:13   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Loengreen Посмотреть сообщение
Вы скинули синтаксис команд ассемблера. Тут все более менее понятно. Таким образом мы указываем процессору в какие адреса памяти можно что либо записать и что потом с этим делать и куда вывести результат.
Мой вопрос на уровень ниже. Ассемблер потом переводит эти команды в те же логические нули и единицы и с ними уже работает процессор.
12.jpg
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.10.2017, 14:52   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Loengreen Посмотреть сообщение
Но когда процессор видит только нули и единицы - как он понимает что вот эту часть надо записать сюда, вот эта часть - это адрес памяти, другая часть - это информация из памяти такого-то адреса, которую надо умножить/вычесть/сложить на информации другого адреса памяти.
13.jpg
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск вызова библиотечной функции в двоичном коде Alex071 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 07.05.2013 17:44
Обратный порядок битов в двоичном коде. (Си) ivan1492 Помощь студентам 4 18.03.2013 21:44
представить картинку в двоичном коде Dimarik Общие вопросы C/C++ 22 16.04.2011 22:52
Хранение текста в двоичном файле Nitrino Общие вопросы C/C++ 63 04.06.2009 02:46