LINUX.ORG.RU

МП К580ИК80


0

1

Всем привет.

Хочется поинтересоваться у жителей ЛОРа. Сейчас по учебе проходим микропроцессоры. Так возникла идея смоделировать работу МП К580ИК80 на С...(почему на С?, извините я не очень силен в программирование, только учусь, данный язык считаю, более подходящим для себя, на данное время).

Про МП многое слышал на лекциях, + полезная инфа тута.

Так вот. Насколько я понял у меня будет ровно 55 шагов, работы процессора. Пример работы в нете есть вот и он.

Помогли добрые люди с идеей проекта, вот она такова:

  • Регистры микропроцессора описываете как переменные
  • Память системы - как массив байтов
  • Цикл выборки-исполнения команд - как таблицу переходов

Получим, что в исходный массив записываете код программы. На каждом шаге выбираете данные. В таблице переходов выполняете действия соответствующие опкоду. + Ко всему хочется это сопроводить анимацией, как в примере)

И так, как правильно начать писать? А главное с чего? Я немного растерялся... Извините за нубовский вопрос конечно, но я не так умён, как многие здесь... Вот надеюсь вы мне поможете!

★★★★★

извините я не очень силен в программирование

Да ты и в русском не очень-то…

mmarkk
()

я не очень силен в программирование

u cannot into russian. пиши на питоне, с сями тебе будет геморно и результат будет быдлокоден

anonymous
()
Ответ на: комментарий от mmarkk

русском не очень-то

я и не отрицаю, но по крайней мере я стараюсь замечать ошибки, стараюсь перечитывать, что написал и исправлять их...

Licwin ★★★★★
() автор топика

Обычный конечный автомат, где тут могут быть проблемы?

PS У меня до сих пор где-то 2 таких процессора валяются.

gentoo_root ★★★★★
()

МП К580ИК80

Это i8080, шо морочишь людм голову:)

Прикинь, и мы его сейчас проходим. Спасибо за сцылки на русском. Может тоже запилю что-нибудь такое

Zorn
()
Ответ на: комментарий от Zorn

Это i8080, шо морочишь людм голову:)

да не морочю я голову людям) тут и так понятно, что это i8080, тем более есть ссылки, там все красиво расписано про него)

да не зачто юзайте на здоровье)

Licwin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

В гугле эмуляторов 8080 больше,чем дохрена.

Одно дело взять готовое, а другое самому написать)

Licwin ★★★★★
() автор топика

Регистры микропроцессора описываете как переменные
Память системы - как массив байтов
Цикл выборки-исполнения команд - как таблицу переходов

всё верно. только регистры тоже можно в виде массива сделать. тогда удобно будет пары регистров извлекать. кроме того, там регистры имеют номер. например b111 - аккумулятор, дальше не помню, кури даташит.

В таблице переходов выполняете действия соответствующие опкоду

тайминги учти. помню, что самые простые - 4 такта генератора, в общем, в мануале i8080 всё есть.

nanoolinux ★★★★
()

есть уже эмулятор, афаик.

dikiy ★★☆☆☆
()
Ответ на: комментарий от nanoolinux

это и есть i8080

Хм, тормознул. Конечно это он.

blexey ★★★★★
()
Ответ на: комментарий от exception13

VHDL/Verilog

Хоть С и VHDL/Verilog чем-то похожу... все же обойдусь С :)

Licwin ★★★★★
() автор топика

Я бы сделал так:
- нарисовал форму в Glade
- создаешь память (массив и функции для загрузки/сохранения)
- создаешь процессор (самый простой способ - такой здоровый switch по текущему опкоду, который вызывает мелкие функции типа получить из памяти, загрузить в регистр и тп)ю Также проц умеет изменять состояние отдельных элементов в окне (подсветка шин, например). Если операция длится более 1го такта, то дописываешь еще 1н свитч по номеру такта.
- по кнопке «Старт» запускаешь таймер и по его таймауту запускаешь процедуру, в которой имитируется работа процессора, точнее 1го такта.
- по кнопе стоп - останавливаешь таймер.

Rubbiroid
()

раньше я находил эмуляторы данного проца в нете. Его очень любят ставить в чемоданы на которых студенты шестнадцатиричным кодом забивали проги.

visual ★★★
()

У нас в универе была на русском языке готовая прога,

досовская еще.

mio ★★
()
Ответ на: комментарий от quickquest

Учебная программа (c исходниками) «Эмулятор МикроЭВМ-580».

спасибо, буду сидеть ковырять)

Licwin ★★★★★
() автор топика

Скиньте сцылок, где можно почитать про:

Память системы - как массив байтов...

Licwin ★★★★★
() автор топика
Ответ на: комментарий от Licwin

Licwin

Скиньте сцылок, где можно почитать про:

Память системы - как массив байтов...

зачем там ссылки?

unsigned char memory[65536];

вот и вся память.

с регистрами сложнее - они и двойные бывают, и одиночные

union {
 struct {
  unsigned char BL;
  unsigned char BH;
 };
 unsigned short W;
}AF,BC,DE,HL,PC,SP;
код распарсить можно массивом указателей на функции - даёшь ему код, он даёт функцию.

Как-то так...

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.