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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 00:15   #1
gefest58
Пользователь
 
Регистрация: 21.10.2010
Сообщений: 87
По умолчанию Как программировались первые процессоры ?

Воот !)
Гуглил и яндексил , но увы , ничего не нашёл .Вот может кто нибудь знает как программировались первые процессоры ?
мы все врём , скомпилированный исходник - нет !
gefest58 вне форума Ответить с цитированием
Старый 20.02.2011, 00:19   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

В машинных кодах.
Т.е. у вас была табличка вида (точно я, конечно, не помню ):
01 - сложение
02 - вычитание
и так далее.
Полная команда 01 88 89 - сложить число из ячейки 88 с числом в ячейке 89 и результат поместить в ячейку 88.
Это, естественно, в упрощенном виде...
asmodey1 вне форума Ответить с цитированием
Старый 20.02.2011, 00:58   #3
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

Не силен в асме/машинном языке, но похоже вам нужны оп коды:
http://www.mlsite.net/8086/
и книжка
http://web.archive.org/web/200802031.../mlb/index.php
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 20.02.2011, 01:08   #4
grenles
минимакс
Участник клуба
 
Аватар для grenles
 
Регистрация: 11.06.2008
Сообщений: 1,143
По умолчанию

Насколько я помню историю программирования. Грубо говоря было все так.
Начнем издалека.

Сначала проектировалось все все на бумаге.
1. Задача - что хотим получить - вычислительное устройство. Конечно все было не совсем так, но все же. Уже была элементная база. Она построена была на логике "ДА / НЕТ". Говорят. электронщики шутят. что есть три состояния - да, нет и хрен его знает. Ну не важно.
2. Потом блоки проектировались на бумаге и математически и логически просчитывалось их действие. Думаю и модельки работающие собирали-паяли, чтобы тестировать. В итоге набиралась некая элементная база с готовыми элементарными решениями. Не зря же в СССР выпускались всякие СБИС, и микросхемы да и не только.
3. В итоге все это хозяйство из электроники собирали в блоки, решающие свою логику - вычисление, ввод данных, вывод на устройство вывода и прочее.

Вас интересует, как программировали. НУ вот где-то подходим к этому.

Поскольку вся элетроника и в том числе компьютер - это сигналы. То появление сигналов на определенных проводах - есть одновременно действие и данные. Грубо говоря - появление сигнала - это ВКЛ или ВЫКЛ лампочки, только каждая лампочка отвечает за свою логику и действия. Итак, набор этих сигналов - это команды.
В зависимости от того, как инженеры спроектировали свою вычислительную машину, раньше и были команды сложения, вычитания, вывода, чтения из памяти и прочее. То есть, условно 0101010 - это чтение. 1111000 - запись. Причем сделано так. что первое - команда. а за ней данные и логика микросхем это отрабатывает.

Поскольку раньше было сложнее и еще особо ничего не было, то вся логика разбивалась на элементарные действия, согласно логики работы той ЭВМ, на которой планировались вычисления. Причем, до появления ассемблеров и ЯВУ (языков высокого уровня), все учились думать в кодах. Точнее в логике кодов.

В итоге (и я это еще застал на первом курсе). Я дня два сидел с учебником и задачей. В учебнике были написаны коды и команды. А задача была простая, типа - сложить два числа или вывести число на экран. В итоге я разбивал это на такие где-то действия
1. Взять адрес числа
2. Ввести число в регистр
3. Ввести адрес шины в регистр 2
4. Послать в порт
5. Читать шину
6. Если ноль перети на адрес 8.
7. Переход на адрес 6.
8. Идти дальше

НУ и как-то так. А потом руками, головой просчитывал все действия машины. ПОтом писал все в кодах, типа A6 F6 D5 12 32... и шел в вычислительный центр, где у девочки это все пробивали в перфокарты - бумага с дырочками. ГДе по сути эти команды были закодированы.
Был еще один способ - те же самые коды тыкать на клавиатуре.
А потом эти бумажки с дырочками вставляли в устройства ввода и из читали программу и данные. То есть просто уже заранее сделанное устройство ввода переводило "дырочки" в электрические сигналы.

В итоге программист знал такие тонкости, что ужас. А потом все больше и больше автоматизировали. Грубо говоря появился БИОС (BIOS), который половину действий по загрузке компа взял на себя.

А раньше не было ничего. ЭВМ включилась и ждала команд, и, кажется, ее заводили сначала с тех же перфокарт, а потом перешли на магнитные ленты. А потом...вот до блютусов и флэшек докатились....

Понятно? или я не на тот вопрос отвечал?

То есть кратко.
Программирование раньше было - это создание кодов, соответствующих электрическим сигналам выбранной ЭВМ. Эти сигналы подавались на электронные блоки, которые что-то простое умели делать. Соответственно последовательность этих сигналов и была программой. А до этого умные инженеры электронщики и математики придумали, как это электронное устройство будет работать и логику манипулирования с данными и командами.
А потом собрали это все в "железе". И с одной стороны по соображениям зависящим от собранной схемы, с другой по чистой логике - ну захотелось им присвоить 1 номер регистру ввода, а 3 - экрану и все, а могли и наоборот, - написали коды команд, то есть простые цифры.
Грубо
1 - сложение
2 - вычитание.
А потом придумали их синтаксис. что
1 1.2 - это сложить число регистр и регистр 2
2 1.2. - это вычесть регистр 1 и регистр 2.
и так далее.
А потом решили , что удобнее будет 1 заменить на ADD, 2 на SUB и где-то в микросхемке зашить переводчик SUB на 2 и так далее.
и это пройдет...

Последний раз редактировалось grenles; 20.02.2011 в 01:19.
grenles вне форума Ответить с цитированием
Старый 20.02.2011, 01:20   #5
grenles
минимакс
Участник клуба
 
Аватар для grenles
 
Регистрация: 11.06.2008
Сообщений: 1,143
По умолчанию

Вот где-то так. И все это есть, если знак по каким словам искать

Это сейчас дошли до такого уровня. что программируют абстрактно, особо не думая об архитектуре. Во многом спасибо в этом Биллу Гейтсу и его винде. Это он заставил производителей писать драйвера под свои стандарты и многое еще чего они придумал. А иначе - не дай Бог думать о том, какие команды теже производители жестких дисков придумали для своих продуктов. чтобы парковать головку, перевести головку на дорожку, управлять вращением поверхностей и мало ли там еще чего. Мы бы тут с вами такого напрограммировали. что компы бы просто горели на раз. ДА и без толку бы это было.

Так что с одной стороны хорошо, а с другой стороны знание архитектуры дает больше возможностей, но резко замедляет по времени программирование и уменьшает его универсальность.
и это пройдет...
grenles вне форума Ответить с цитированием
Старый 20.02.2011, 01:41   #6
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

А я начинал с перфолент
Вернее, даже с клавишного ввода вначале...
Перфоленты - это был уже следующий этап развития ВТ.

Последний раз редактировалось asmodey1; 20.02.2011 в 01:43.
asmodey1 вне форума Ответить с цитированием
Старый 20.02.2011, 02:26   #7
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

У меня дед программистом работал некоторое время, то ли в 60-х то ли еще когда, ну так вот он рассказывал что они "писали" программы на конфигурационных пластинах, такая штука вставлялась в ЭВМ/Полу-ЭВМ и последняя считала что надо

Смысл был в том что бы замкнуть определенные цепи МВМ/ЭВМ(механическая вычислительная машина) и заставить ее работать по определенному принципу. Операционные блоки в таких штуках вообще отдельный разговор, все что я понял так это то что там использовались некие барабаны для перевода из бинарной СС в десятичную.

А так вообще если хотите понять как работали первые компьютеры, то стоит посмотреть в сторону МК. Вообще ЯП появились довольно давно, ассемблеру наверно уже лет 50 будет, учитывая то что тому же С уже 40. А до них были бинарные коды, а что касается перфокарт и префолент - это всего-навсего способ введения данных в ЭВМ, на них наносился узор дырок и пропусков который и кодировал бинарные данные.

Кстати если у вас в институте преподают цифровую схемотехнику, вам возможно покажут как создаются простейшие автоматы с жесткой и програмируемой логикой. Последние и есть самые простые компьютеры. У меня в институте как раз преподавали и цифровую схемотехнику и основы микропроцессоров и как раз было задание спроектировать простенький автомат с программируемой логикой и с жесткой логикой. Вот к первому еще и надо было написать прошивку, в тех самых бинарных кодах
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 20.02.2011, 07:36   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Говорят. электронщики шутят. что есть три состояния - да, нет и хрен его знает.
Состояние "хрен его знает" называется "состояние высокого импеданса". В логисеских микросхемах это делается для того, что-бы к одной шине можно бало-бы подклюсить несколько выходов разных микросхем.

А вообще-то самое древнее счётное устройство, это Абак. Он насчитывает уже более 2000 лет. Кто хочет подробнее:

http://www.perelman100.narod.ru

А по теме. Вся логика любой машины строится на таких типах команд:
1. Пересылка.
2. Сложение.
3. Сдвиг.
4. Инкремент.
5. Декремент
6. Сравнение.
7. И.
8. ИЛИ.
9. Исключающее ИЛИ.
10. НЕ.

Вот пожалуй и всё. Из комбинации этих команд состоит всё мыслемое (и немыслемое ПО) .
Правда, в последнее время, ведуться разработки, так называемых "нейрокомпьютеров". Эти устройства - цифроаналоговые, с использованием перепрограммируемых ПЛИС, компараторов и операционных усилителей.
Известно, например, что операционный усилитель способен выполнять операцию суммирования, в сотни (если не в тысячи) раз быстрее цифровых микросхем, хотя и с меньшей точностью. Схемотехнически, он гораздо проще цифровых сумматоров. Т. е. на той-же площади кристалла их можно разместить в разы больше, чем цифровых элементов.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 20.02.2011, 14:16   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...к примеру, так
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.02.2011, 14:50   #10
gefest58
Пользователь
 
Регистрация: 21.10.2010
Сообщений: 87
По умолчанию

Если я правильно понял , то программирование процессора , является запись 1 и 0-ликов по средствам эл. импульсов на кеш память проца .
Поправьте меня если не правильно , после того , как прошло обращение к тому или иному регистру в кеш память процессора , происходит проверка на существование регистра в оперативной памяти , а дальше и отработка процедуры ...(ПРАЛЬНО ?)
мы все врём , скомпилированный исходник - нет !
gefest58 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процессоры elektroniks Компьютерное железо 5 15.02.2011 00:47
6-ти ядерные процессоры? Mixim Компьютерное железо 22 11.11.2010 13:35
первые шаги в с++ ploik Общие вопросы C/C++ 2 16.07.2010 23:35
Первые шаги trave1er Общие вопросы C/C++ 2 10.09.2008 20:32
Как из строки получить первые три символа experts91 Помощь студентам 2 07.04.2008 21:58