|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.05.2014, 15:54 | #21 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
lighting, твой вопрос пускает корни в архитектуру процесора, без фанатизма тут никак. Я преложил ассемблер именно как самое наглядное знакомство с процессорами. У Калашникова была очень интересная рассылка по ассемблеру.
|
16.05.2014, 15:57 | #22 | ||||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
В него встроен словарь зарезервированных слов, который ассоциирован с тем или иным действием. Например: Код:
А далее уже процессор эти записанные коды обрабатывает по точно такому же принципу. В нем как в шкафу с электроинструментами есть на полочках разные микросхемы. Каждая микросхема (допустим) нумеруется, и код 0Bh, поступивший в недра процессора говорит о том что нужно подать ток на микросхему по номеру 12. Процессор просто плюет 5 вольт в 12-й провод. Это грубый пример, но я не знаю как тебе еще объяснить. Компилятор тоже грубо говоря "плюет вольты" в нужный "проводок", только то и отличие что провода его не нумеруются а имеют свои имена - if, for, call и т.д. Цитата:
Цитата:
Цитата:
I'm learning to live...
|
||||
16.05.2014, 16:00 | #23 |
Новичок
Джуниор
Регистрация: 16.05.2014
Сообщений: 9
|
ds.Dante, т.е. именно на железе завязано все.
Тогда такой вопрос к тебе, ассемблер действительно даёт полный и исчерпывающий ответ на этот или около оный вопрос, или стоит копать(и изучать) чуть глубже? Возможно есть какая то специализация этого вопроса на более релевантном уровне. Не хотелось бы затрачивать ресурсы на ассемблер ради неполноценного ответа. |
16.05.2014, 16:07 | #24 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
16.05.2014, 16:09 | #25 |
МегаМодератор
СуперМодератор
Регистрация: 27.11.2012
Сообщений: 5,672
|
lighting, Вы можете объяснить, как в Вашей голове клетки понимают "да" и "если"?
То шутка, конечно, а тут все просто: Есть несколько уровней организации: 1. аппаратная часть 2. программная: а) низкоуровневая - по сути последовательность названий команд аппаратной части (ассемблер) б) высокоуровневая - всякие if, while и прочее. Комп. в аппаратной части понимает if на уровне установке флага - значения в спец. ячейки памяти микросхемы: Установлен флаг - выполняется переход по указанному адресу. И все. if(a == b) может "выглядеть примерно так": 1) вычислили a-b, и если все биты 0 то устанавливается специальный флаг. 2) переход в зависимости от того установлен флаг или нет. Но это конечно все зависит от конкретной архитектуры, т.е. на железо может отличаться, главное чтобы используемый "ассемблер" ему соответствовал.
Благими намерениями устлана дорога на programmersforum.ru
Последний раз редактировалось MihalNik; 16.05.2014 в 16:12. |
16.05.2014, 16:11 | #26 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
lighting, я не знаю, твой вопрос действительно непонятно сформулирован. Но вся логика программ сводится до уровня машинных команд (язык ассемблера - это типа человекочитаемая форма двоичных кодов). Конкретно if существует как отдельный код ("если флаг установлен в 1, продолжить выполнение программы с другого места"); более сложные конструкции типа while реализуются из этих примитивных кирпичиков.
Работа с ассемблером требует понимания, какие в процессоре есть флаги и регистры, и какие из них влияют на последовательность выполняемых команд. Последний раз редактировалось ds.Dante; 16.05.2014 в 16:23. |
16.05.2014, 16:20 | #27 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
16.05.2014, 16:25 | #28 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Чаво? Эмуляторы, выполняют команды, на уровне машинных кодов, но только последовательно, по мере поступленя и расшивровки команд языка, более высокого уровня.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
16.05.2014, 16:26 | #29 |
Новичок
Джуниор
Регистрация: 16.05.2014
Сообщений: 9
|
Stilet, вы про статью "Компилятор домашнего приготовления"? Если нет, просьба указать ссылку. В статье которую вы предлагаете, есть объяснения процесса сравнения строк, о котором вы говорите?
Т.е. вы утверждаете что железо имеет смысл в данном аспекте только как некий базис списка кодов процессора(которые не стоит воспринимать принципиально в решении того же объяснения со случаем if)? MihalNik, хорошо, но в таком случаи, что такое этот "указанный адрес"? Естественно подразумевается то, как будет он реально выглядеть в случаи с if-ом? Пример с if-ом не принципиален, аналогичные ему или просто более сложные тоже подойдут. Интересует сам процесс, пусть даже на уровне железа. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" | Alexsandrr | Microsoft Office Excel | 4 | 19.10.2013 14:22 |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |