![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 87
|
![]()
Воот !)
Гуглил и яндексил , но увы , ничего не нашёл .Вот может кто нибудь знает как программировались первые процессоры ?
мы все врём , скомпилированный исходник - нет !
|
![]() |
![]() |
![]() |
#2 |
Подтвердите свой е-майл
Регистрация: 19.12.2010
Сообщений: 808
|
![]()
В машинных кодах.
Т.е. у вас была табличка вида (точно я, конечно, не помню ![]() 01 - сложение 02 - вычитание и так далее. Полная команда 01 88 89 - сложить число из ячейки 88 с числом в ячейке 89 и результат поместить в ячейку 88. Это, естественно, в упрощенном виде... |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.01.2011
Сообщений: 186
|
![]()
Не силен в асме/машинном языке, но похоже вам нужны оп коды:
http://www.mlsite.net/8086/ и книжка http://web.archive.org/web/200802031.../mlb/index.php
Lingua c++ non penis caninus est.
|
![]() |
![]() |
![]() |
#4 |
минимакс
Участник клуба
Регистрация: 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. |
![]() |
![]() |
![]() |
#5 |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]()
Вот где-то так. И все это есть, если знак по каким словам искать
Это сейчас дошли до такого уровня. что программируют абстрактно, особо не думая об архитектуре. Во многом спасибо в этом Биллу Гейтсу и его винде. Это он заставил производителей писать драйвера под свои стандарты и многое еще чего они придумал. А иначе - не дай Бог думать о том, какие команды теже производители жестких дисков придумали для своих продуктов. чтобы парковать головку, перевести головку на дорожку, управлять вращением поверхностей и мало ли там еще чего. Мы бы тут с вами такого напрограммировали. что компы бы просто горели на раз. ДА и без толку бы это было. Так что с одной стороны хорошо, а с другой стороны знание архитектуры дает больше возможностей, но резко замедляет по времени программирование и уменьшает его универсальность.
и это пройдет...
|
![]() |
![]() |
![]() |
#6 |
Подтвердите свой е-майл
Регистрация: 19.12.2010
Сообщений: 808
|
![]()
А я начинал с перфолент
![]() Вернее, даже с клавишного ввода вначале... Перфоленты - это был уже следующий этап развития ВТ. Последний раз редактировалось asmodey1; 20.02.2011 в 01:43. |
![]() |
![]() |
![]() |
#7 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
![]()
У меня дед программистом работал некоторое время, то ли в 60-х то ли еще когда, ну так вот он рассказывал что они "писали" программы на конфигурационных пластинах, такая штука вставлялась в ЭВМ/Полу-ЭВМ и последняя считала что надо
![]() Смысл был в том что бы замкнуть определенные цепи МВМ/ЭВМ(механическая вычислительная машина) и заставить ее работать по определенному принципу. Операционные блоки в таких штуках вообще отдельный разговор, все что я понял так это то что там использовались некие барабаны для перевода из бинарной СС в десятичную. А так вообще если хотите понять как работали первые компьютеры, то стоит посмотреть в сторону МК. Вообще ЯП появились довольно давно, ассемблеру наверно уже лет 50 будет, учитывая то что тому же С уже 40. А до них были бинарные коды, а что касается перфокарт и префолент - это всего-навсего способ введения данных в ЭВМ, на них наносился узор дырок и пропусков который и кодировал бинарные данные. Кстати если у вас в институте преподают цифровую схемотехнику, вам возможно покажут как создаются простейшие автоматы с жесткой и програмируемой логикой. Последние и есть самые простые компьютеры. У меня в институте как раз преподавали и цифровую схемотехнику и основы микропроцессоров и как раз было задание спроектировать простенький автомат с программируемой логикой и с жесткой логикой. Вот к первому еще и надо было написать прошивку, в тех самых бинарных кодах ![]()
"Тяжело в учении, легко в бою" - А.В. Суворов
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
А вообще-то самое древнее счётное устройство, это Абак. Он насчитывает уже более 2000 лет. Кто хочет подробнее: http://www.perelman100.narod.ru А по теме. Вся логика любой машины строится на таких типах команд: 1. Пересылка. 2. Сложение. 3. Сдвиг. 4. Инкремент. 5. Декремент 6. Сравнение. 7. И. 8. ИЛИ. 9. Исключающее ИЛИ. 10. НЕ. Вот пожалуй и всё. Из комбинации этих команд состоит всё мыслемое (и немыслемое ПО) ![]() Правда, в последнее время, ведуться разработки, так называемых "нейрокомпьютеров". Эти устройства - цифроаналоговые, с использованием перепрограммируемых ПЛИС, компараторов и операционных усилителей. Известно, например, что операционный усилитель способен выполнять операцию суммирования, в сотни (если не в тысячи) раз быстрее цифровых микросхем, хотя и с меньшей точностью. Схемотехнически, он гораздо проще цифровых сумматоров. Т. е. на той-же площади кристалла их можно разместить в разы больше, чем цифровых элементов.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...к примеру, так
![]() ![]()
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 87
|
![]()
Если я правильно понял , то программирование процессора , является запись 1 и 0-ликов по средствам эл. импульсов на кеш память проца .
Поправьте меня если не правильно , после того , как прошло обращение к тому или иному регистру в кеш память процессора , происходит проверка на существование регистра в оперативной памяти , а дальше и отработка процедуры ...(ПРАЛЬНО ?)
мы все врём , скомпилированный исходник - нет !
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Процессоры | 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 |