Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запустить процессор 
:(
    Опции темы
krasgames
Дата 18.12.2011, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый мастер
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 4.12.2009

Репутация: нет
Всего: нет



Пробую разобраться с МП I8086 в Proteus  smile . Скачал эмулятор emu8086, а так же нашел пример калькулятора в Proteus. Но насчет того, как выполняется программа и как ее написать, а не понял. Я сейчас хотел бы получить с выхода какой-нибудь ноги ША/ШД конкретное значение, определенное в коде, как это сделать? Пока у меня на выходе все подряд бешено мигает после того, как ставлю exe от emu8086. Поигрался бы с кодом, но пример калькулятора, кстати, нерабочий, так как я очистил компилы вместе с exe случайно, а я не знаю, что за С-компилятор надо использовать:(

Это сообщение отредактировал(а) krasgames - 18.12.2011, 10:54
PM MAIL   Вверх
scuter
Дата 18.12.2011, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 13.6.2008

Репутация: 1
Всего: 1



чёта я не понял что тебе нужно то,
если хочешь включить процессор( сначало включи компьютер)

эмулятор у тебя уже есть


Цитата(krasgames @  18.12.2011,  10:53 Найти цитируемый пост)
а я не знаю, что за С-компилятор надо использовать:(

это форум для ассемблера.

PM MAIL   Вверх
krasgames
Дата 19.12.2011, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый мастер
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 4.12.2009

Репутация: нет
Всего: нет



Я не могу понять, вот пишу я программу, которая, кстати, должна находиться в памяти, а не процессоре, как Proteus моделирует, для процессора без ОС вообще. И что меняется, когда процессор выполняет еще и команды Windows? Когда я тыкаю на приложение, Windows прерывает какие-то менее приоритетные процессы и передает адрес моей программы, однако в самой программе созданы прерывания для периодической деятельности Windows? Почему у меня не получается с помощью masm32 на RadAsm скомпилить то, что успешно компилится .batами или чем там после Farа. Что это за баты, я так до конца и не понял?  
PM MAIL   Вверх
500mhz
Дата 19.12.2011, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



ТС а что ты хочеш сделать? я что то не понимаю просто
тебе дебугер нужен или что?


--------------------

PM MAIL ICQ   Вверх
krasgames
Дата 19.12.2011, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый мастер
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 4.12.2009

Репутация: нет
Всего: нет



Нет. Вообще написал немного не в ту ветку, я говорю все-таки больше о железе, сейчас нашел тут раздел  про микроконтроллеры и микропроцессоры, но просто сразу не видел:( Основная цель - собрать на микропроцессорном комплекте генератор сигнала с параметрами, вводимыми с клавиатуры. Но тут по ходу начал писать в RadAsm и отлаживать в Ollydbg такой генератор на компе (ну и на 32-разрядном процессоре), в результате понял, что по крайней мере функция 
Код
invoke  SetTimer, NULL, 0, 200, addr timer
 не для 16разрядного компилятора. 
Так вот, я пытаюсь додуматься, как тут можно сопоставить аналогию между 16- и 32- разрядными процессорами. Ставлю такое ТЗ, визуально у меня должно быть два собранных устройства (с программами), которые мне еще не под силу до конца представить из-за пробелов в знаниях. Одно из устройств - мой комп. И первое, на чем я споткнулся - приложение-прошивка под 16-разрядный процессор не компилится masm32 на RadAsm, хотя, может быть, компилится при том же самом masm32+Far+... А должно ли идти оно на компе, это же ведь простая прошивка? Отчего? Как будет произведен возврат к Windows, если программа зациклена?
PM MAIL   Вверх
500mhz
Дата 19.12.2011, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



архитектура то какая у "микропроцессорном комплекте" ?


--------------------

PM MAIL ICQ   Вверх
krasgames
Дата 24.12.2011, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый мастер
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 4.12.2009

Репутация: нет
Всего: нет



Фон Неймана, хотя вообще без разницы.

Это сообщение отредактировал(а) krasgames - 24.12.2011, 09:05
PM MAIL   Вверх
500mhz
Дата 24.12.2011, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



krasgames
у вас такая каша в голове, путаете процессор память и ОС


--------------------

PM MAIL ICQ   Вверх
krasgames
Дата 26.12.2011, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый мастер
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 4.12.2009

Репутация: нет
Всего: нет



Ну а что поделаешь? Я даже не понял, где я спутал ихsmile У пока представляю себе картину так, компилятор пишется под Windows, а при компиляции запускается компилятор уже командами запущенной ОС и сравнивает записи языка высокого уровня с тем, что надо записать в бинарник. При обращении к бинарнику выполняется либо голый машинный код бинарника, либо ссылки к стандартным командам ОС (прерывания). Но без ОС на обращения к системным командам прерываний не должно происходить, поэтому компилятор должен быть другим, но приложение с машинными командами, а не со "ссылками", все-равно должно запускаться под Windows. Что не верно? Короче, дай тогда что-нибудь в сторону того, как пишутся компиляторы. 

Это сообщение отредактировал(а) krasgames - 26.12.2011, 10:47
PM MAIL   Вверх
500mhz
Дата 26.12.2011, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



Начнем с того что ОС (пусть винда будет для удобства) это набор библиотек которые предоставляют определенные функции приложению, к примеру опрос клавиатуры, мыши, работа со звуком и так далее.
Соответственно наше компилятор при компиляции к примеру этой строки invoke  SetTimer, NULL, 0, 200, addr timer
автоматически добавит в таблицу импорта имя библиотеки в которой находится функция SetTimer.
При за пуске приложения загрузчик винды прочитает таблицу импорта и автоматически загрузит нужную библиотеку.
Если у нас нет никакой ОС то наше приложение должно все делать само, работа с оборудованием, файловой системой итд итп.
Но есть одно НО, у процессора есть несколько режимов работы, RING называется, вот ядро винды находится в RING 0 и имеет прямой доступ у железу, может читать писать в порты, итд итп. Все остальные приложения, блокнот к примеру, или любое другое скомпиленое вами (за исключением драйверов устройств) работают в RING 3, с ограниченными правами, и прямого доступа к железу не имеют.

Если вы хотите писать код без всякой ос то вам нужно писать или на асме в формате raw binary или на С но без использования любых библиотек. Как С компилятор могу посоветовать open watcom он прекрасно с этим справляется.

Для тестов советую
1) эмулятор Bochs (там есть встроенный отладчик)
2) эмулятор флоппи
3) найти образ флоппи с загрузочным сектором

Далее, ставите эмулятор флоппи, грузите в него образ, он у вас появится к примеру как дисковод В:, пишете ваш код, компилируете, копируете бинарник на флоппи В с учетом имени которое прописано в бут секторе, запускаете эмулятор Bochs и указываете что грузится будем с флоппи В, наслаждаетесь полученным результатом.


--------------------

PM MAIL ICQ   Вверх
krasgames
Дата 7.1.2012, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый мастер
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 4.12.2009

Репутация: нет
Всего: нет



Я пока хочу визуально представить выходные сигналы. Вот у меня МП I8086. В Proteus, например, прошивка и частота определяются как параметры самой модели I8086. Рассматриваю одну эту модель. Например, просто пишу
 mov al,1234h
 out 112,al
Тогда, как я понимаю, процессор должен в любом случае подать на выходную шину сначала 112, а затем 1234h. Тогда первые два разряда числа должны быть нулевыми. В действительности МП начал работать почти как счетчик, причем наибольшая частота с выходов от А0 более чем на несколько порядков ниже тактовой. Проверил все выводы от А0 до А20, вроде везде что-то да есть. Причем напомню, что я ничего не подключал, может проблема в сигналах готовности, записи, чтения? Но пока я дальше смущаюсь зайтиsmile Я сейчас боюсь, что я даже не понял, что ожидать с выходов при той или иной команде.

Это сообщение отредактировал(а) krasgames - 7.1.2012, 13:20
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.2144 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.