![]() |
|
|
![]()
|
|
| krasgames |
|
|||
|
Старый мастер ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 4.12.2009 Репутация: нет Всего: нет |
Пробую разобраться с МП I8086 в Proteus
Это сообщение отредактировал(а) krasgames - 18.12.2011, 10:54 |
|||
|
||||
| scuter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 13.6.2008 Репутация: 1 Всего: 1 |
||||
|
||||
| krasgames |
|
|||
|
Старый мастер ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 4.12.2009 Репутация: нет Всего: нет |
Я не могу понять, вот пишу я программу, которая, кстати, должна находиться в памяти, а не процессоре, как Proteus моделирует, для процессора без ОС вообще. И что меняется, когда процессор выполняет еще и команды Windows? Когда я тыкаю на приложение, Windows прерывает какие-то менее приоритетные процессы и передает адрес моей программы, однако в самой программе созданы прерывания для периодической деятельности Windows? Почему у меня не получается с помощью masm32 на RadAsm скомпилить то, что успешно компилится .batами или чем там после Farа. Что это за баты, я так до конца и не понял?
|
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
ТС а что ты хочеш сделать? я что то не понимаю просто
тебе дебугер нужен или что? -------------------- |
|||
|
||||
| krasgames |
|
|||
|
Старый мастер ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 4.12.2009 Репутация: нет Всего: нет |
Нет. Вообще написал немного не в ту ветку, я говорю все-таки больше о железе, сейчас нашел тут раздел про микроконтроллеры и микропроцессоры, но просто сразу не видел:( Основная цель - собрать на микропроцессорном комплекте генератор сигнала с параметрами, вводимыми с клавиатуры. Но тут по ходу начал писать в RadAsm и отлаживать в Ollydbg такой генератор на компе (ну и на 32-разрядном процессоре), в результате понял, что по крайней мере функция
Так вот, я пытаюсь додуматься, как тут можно сопоставить аналогию между 16- и 32- разрядными процессорами. Ставлю такое ТЗ, визуально у меня должно быть два собранных устройства (с программами), которые мне еще не под силу до конца представить из-за пробелов в знаниях. Одно из устройств - мой комп. И первое, на чем я споткнулся - приложение-прошивка под 16-разрядный процессор не компилится masm32 на RadAsm, хотя, может быть, компилится при том же самом masm32+Far+... А должно ли идти оно на компе, это же ведь простая прошивка? Отчего? Как будет произведен возврат к Windows, если программа зациклена? |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
архитектура то какая у "микропроцессорном комплекте" ?
-------------------- |
|||
|
||||
| krasgames |
|
|||
|
Старый мастер ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 4.12.2009 Репутация: нет Всего: нет |
Фон Неймана, хотя вообще без разницы.
Это сообщение отредактировал(а) krasgames - 24.12.2011, 09:05 |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
krasgames
у вас такая каша в голове, путаете процессор память и ОС -------------------- |
|||
|
||||
| krasgames |
|
|||
|
Старый мастер ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 4.12.2009 Репутация: нет Всего: нет |
Ну а что поделаешь? Я даже не понял, где я спутал их
Это сообщение отредактировал(а) krasgames - 26.12.2011, 10:47 |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 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 и указываете что грузится будем с флоппи В, наслаждаетесь полученным результатом. -------------------- |
|||
|
||||
| krasgames |
|
|||
|
Старый мастер ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 4.12.2009 Репутация: нет Всего: нет |
Я пока хочу визуально представить выходные сигналы. Вот у меня МП I8086. В Proteus, например, прошивка и частота определяются как параметры самой модели I8086. Рассматриваю одну эту модель. Например, просто пишу
mov al,1234h out 112,al Тогда, как я понимаю, процессор должен в любом случае подать на выходную шину сначала 112, а затем 1234h. Тогда первые два разряда числа должны быть нулевыми. В действительности МП начал работать почти как счетчик, причем наибольшая частота с выходов от А0 более чем на несколько порядков ниже тактовой. Проверил все выводы от А0 до А20, вроде везде что-то да есть. Причем напомню, что я ничего не подключал, может проблема в сигналах готовности, записи, чтения? Но пока я дальше смущаюсь зайти Это сообщение отредактировал(а) krasgames - 7.1.2012, 13:20 |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |