![]() |
|
Модераторы: Се ля ви |
![]()
|
|
| EnrolL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Привет всем!
Есть следуйщий вопрос, мен интеренсо с чего всё началось, пожалусат елси можно подробнее об этом::: я никак непойму откуда процессор знает, что куда делать, если С++ то тут ясно он был написан в ассме, ассм и руководить им грубо говоря, а как тогда сам ассм. Зарание благодарин! |
|||
|
||||
| Caramel |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4190 Регистрация: 7.8.2004 Где: Дюссельдорф Репутация: нет Всего: 142 |
Модератор:
EnrolL, проверяйте ваши сообщения прежде чем постить их в форуме. Это не русский язык. Это его суррогат. Вашу вторую тему я удаляю. |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
А может ещё рассказать откуда дети берутся Добавлено @ 19:50 Сформулируй, пожалуйста, свой вопрос по-человечески, может тогда чего-нибудь толковое и расскажем -------------------- Да. Именно так. |
|||
|
||||
| Caramel |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4190 Регистрация: 7.8.2004 Где: Дюссельдорф Репутация: нет Всего: 142 |
Это ты рядом топик организуй)))) EnrolL, я не поняла вашего вопроса |
|||
|
||||
| EnrolL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Сорри писал быстро, голодный, хотел успеть как побыстрее.
Нащёт детей, давай обьясни. Я хотел спросить как процессор понимает код вернее язык ассемблера, а потом и С++, у него етсь своя память или что, просто немогу понять как люди это сделали, как он сам знает что делать. Блин тяжело обьяснить даже, ну там 0 и 1, как он понимает слово for puts и другие, как люди сделал так тчо б он это понимал. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Тяжело ответить на такой вопрос... Почитай чего-нибудь по архитектуре процессора и машинным кодам... Могу скинуть институтский курс...
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Если я тебя правильно понял, то тебя интересует как возникли компиляторы.
Вначале программы писали в машинных кодах (у меня препод по информатике до сих пор помнит некоторые команды). Потом появился ассемблер, и самый первый писался в машинных кодах. Последующие уже писались, с помощью предыдущих версий его же. Так же и многие компиляторы, или пишутся на предыдущей версии или на другом языке. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Мне тоже доводилось пробовать, на лабораторных стендах. Непередаваемые ощущения... -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Vex |
|
|||
![]() кацапосрачмученiкъ ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3103 Регистрация: 28.3.2002 Где: strawberry fields Репутация: нет Всего: 88 |
Наверное чувствовал себя человеком забравшимся в святая святых или напримаер нейрохирургом? -------------------- Слава Україні. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Не, неандертальцем -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| EnrolL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Lamer George
Скинь плиззз Да вы всё правельно поняли, так растолкуйте плиз на пальцах, как это делали они там что, за ниточки дёргали каиктео или как там каиетео электрические импульси, ну просто неясно откуда проц знает что от него хотят, откуда он занет тчо это 0 и 1, где у него память. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Я покопаюсь дома. Не уверен, что эти лекции можно понять без объяснений, но хуже не будет. Вот схема простого процессора там точно есть.
Я себя чувствовал придатком этого стенда. Этакий преобразователь шестнадцатеричных кодов в механические пальцевые усилия. EnrolL Скажу тебе по секрету <оглядываюсь по сторонам и перехожу на шепот>, я и сам до сих пор уверен, что без шаманизма не обошлось... -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
Ок. Чуть по позже попытаюсь объяснить (не о детях
-------------------- Да. Именно так. |
|||
|
||||
| AgereS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 426 Регистрация: 23.6.2004 Репутация: нет Всего: 3 |
вначале было слово |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
Итак.
Языки высокого уровня, такие как Паскаль или С++ сначала компилируются в машинные коды. Как происходит компиляция это целый университетский курс, так что в двух словах объяснить сложно, но попрообую Сначала исходный текст разбивается на "лексемы", т.е. находятся все слова for, do, переменные и прочие символы. Дальше, грубо говоря, в компиляторе задано соответствие каждой комбинации слов и машинного кода. Т.е., например, цикл for превращается в некоторый набор чисел, и т.д. Языки высокого уровня характерны тем, что из одной команды возникает довольно много машинного кода. Ассемблер, кстати, тут совсем не причём. Язык ассемблера, грубо говоря, это запись машинных кодов при помощи слов, так называемых мнемоник. Там каждой команде соответсвует несколько байт в машинном коде. Например команде INC AX, соответствует один байт с шестнадцатеричным кодом 40. Как именно выполняются машинные коды расскажу ещё чуть позже. -------------------- Да. Именно так. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Дрон
Валяй, у меня сегодня работы много -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| EnrolL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Спасибо, чуть чтуь светлее стало, давай в тмо же духе. |
|||
|
||||
| Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
Процессор же в принципе микросхема, тока сложная... Очень... На контакт поступает импульс 0 или 1, они обрабатываются и на выходе получаются то же 0 и 1, тока другие... Вобщем так, я думаю.... -------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
Правильно думаешь Вся цифровая электроника работает с двоичными числами, т.е. всё представляется в виде 0 и 1. И задача любого электронного устройства (проца, калькулятора, часов) заключается в преобразовании одних последовательностей нулей и единиц в другие. Примитивнейшими элементами, из которых состоит простейший процессор являются блоки выполняющие операции И, ИЛИ, НЕ, а также регистры, хранящие данные (ну и позволяющие их изменять). Читая команды из памяти, процессор переходит из одного состояния в другое. Состояние процессора это всего лишь число хранящееся во внутреннем регистре. А переходы между этими состояниями это выполнение каких либо логических операций над числами. Всё работает так: 1. прочитал вход 2. выполнил одни действия И/ИЛИ/НЕ с битами входа и битами состояния и получил биты выхода 3. выполнил другие действия И/ИЛИ/НЕ с теми же битами и получил номер следующего состояния 4. запомнил состояние и вернулся к 1. Состояния могут быть например такие: - ожидание команды - ожидание номера регистра назначения - ожидание номера исходного регистра - ожидание первого байта данных - ожидание второго байта данных и т.п. Например в моей курсовой, где надо было спроектировать электронные часы, их "процессор" содержал всего семь состояний. Но и функций то у них кот наплакал Вообще, всё это рассказывается в курсе теории автоматов. Если есть какие-то вопросы и замечания, буду рад ответить. Это сообщение отредактировал(а) Дрон - 22.4.2005, 00:40 -------------------- Да. Именно так. |
|||
|
||||
| EnrolL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Хоро а откуда он знает что 0 это 0 а не 1 и 1 это 1 а не наоборот. И что из себя представляет ригистр.И ещо где можно почерпнуть про микроэлектронику в краце, что б понять как эти импульси происходят.
|
|||
|
||||
| Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
0 - есть напряжение
1 - нет напряжения или наоборот смотря, что за устройство
Сам уже толком не помню.
В книжках, в интернете Ничего конкретного посоветовать не могу. -------------------- Да. Именно так. |
||||
|
|||||
| batigoal |
|
||||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Это зависит от способа кодирования, который, в принципе, может быть различным. Например, можно "договориться", что положительный заряд - это 1, а отрицательный - это 0. Или если есть заряд - 1, если нет - 0. Или намагниченный учаток - 1, размагниченный - 0. И т.д.
Регистры - группа блоков в процессоре, в которых он хранит данные, с которыми в данный момент работает. Сейчас наиболее распространены 32-разрядные процессора, но уже идут 64-разрядные. Это значит, что он оперирует 32-разрядными операторами и регистры у него такие же. 32 разряда - это возможность хранить последовательность из 32 нулей и единиц (1100100101010000...). То есть, по сути, регистр - это просто 32 примитивных ячейки. Добавлено @ 10:56 Забыл я выложить инфу вчера. Пьяный был. Сейчас напоминалку поставлю. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
||||
|
|||||
| Dexter |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
Вот график напряжения на контакте процессора, вот нули и единицы обозначены, теперь понял как узнает? -------------------- The only thing you really know about me is... ...that's all you'll ever know |
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Кстати, в сетевых технологиях часто применяется так называемый манчестерский код. Объяснять не буду, просто скажу - его используют из-за того, что если в вышеприведенном способе будет несколько одинаковых символов подряд, то оборудование может "сбиться".
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
Ну это я для простоты понимания...
-------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
| EnrolL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Мммм...
Так а как проц понимает что слово for это слово fo, у него что етсь своя комбинация чесел 110010001110 - что то в виде этого. И как тогда понять какая алгоритм существует. |
|||
|
||||
| Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
фора в ассемблере нет, та все более примитивно... А если ты про языки высокого уровня, то конструкция фор переводится в конструкцию фор для ассемблера, а у ассемблера в свою очередь, каждому оператору соответствует набор нулей и единиц...
-------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
| EnrolL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
всё ясно, спасибо дрзья разжывали мне.
|
|||
|
||||
| EnrolL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
всё ясно, спасибо дрзья разжывали мне.
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Нашел наконец этот конспект. Там есть принципы построения ЭВМ, работы процессора, видов памяти и т.д., но здесь не прикрепить - больше мегабайта в архиве получается. Если есть у кого возможность, может, выложите на фтп?
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Может, выложим
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
ОК
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Сорри, совсем из головы вылетело. Вот ссылка на скачивание
http://dm9.ru/vingrad/books/computer_architecture.rar Размер - 1182 КБ. |
|||
|
||||
| Амортизатор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 17.4.2005 Где: в Караганде Репутация: нет Всего: 8 |
EnrolL, я думаю это как раз то, что тебе нужно. Компиляция, сборка.
http://is.ifmo.ru/download/kmake.pdf Добавлено @ 00:34 Я попал сюда с поисковика и не обратил внимание на время последнего поста -------------------- Поехали! |
|||
|
||||
| xaoc2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Репутация: нет Всего: нет |
А может быть с этого всё начиналось, с жёсткой логики? AND имеет на выходе4 1 только если на входе1 и входе2 будут 1, а OR если хотябы на один из входов4 и входе3 будет 1 в итоге получаются програмки: "Программа 1" Входа и биты на них выход [1] [2] [3] 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 "Программа 2" Входа и биты на них выход [1] [2] [3] 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 |
|||
|
||||
![]()
|
| Правила раздела "Философия программирования": | |
|
|
Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО: • вопросы перспективного развития методов написания ПО; • изменяющиеся языки и методологии программирования; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Философия программирования | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |