pokk
Помогающий
Offline
|
|
« : 08-10-2011 04:28 » |
|
Здравствуйте не как не могу разобраться с командами in out.
в общем мне надо вывести на шину данных или адреса процессора К1810 ВМ86 какое-то число. Как такое сделать можно ?
out номер порта,акамулятор так вот самая не понятная часть номер порта что это такое ?
|
|
« Последнее редактирование: 08-10-2011 05:26 от pokk »
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #1 : 08-10-2011 06:36 » |
|
Ввод-вывод и шины - это понятия разного уровня. Шины адреса и данных в архитектуре x86 одни и те же - и для работы с памятью, и для ввода-вывода в порты, и для обработки прерываний.
Указанный тобой процессор имеет мультиплексированную шину адреса и данных. Ширина шины - 20 бит. Для данных используются младшие 16 бит. Адреса портов в x86 16-битные - используются младшие биты. Затруднюсь сказать, что происходит на шине данных при 8-битном вводе-выводе, но ты это можешь найти в литературе.
PS: знаки препинания придумали лохи?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
pokk
Помогающий
Offline
|
|
« Ответ #2 : 08-10-2011 06:50 » |
|
Так всё таки как вывести число 3 ? что бы AD0=1 AD1=1 AD2-AD15=0
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #3 : 08-10-2011 06:52 » |
|
pokk, твой вопрос абстрактен. Почитай ка про архитектуру этого процессора. Литературы по нему - море.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #4 : 08-10-2011 10:48 » |
|
У процессора есть адресная шина. К этой шине подключаются устройства (в частности, ОЗУ), так, что если процессор посылает запрос по шине, соответствующее устройство опознаёт, что обращение идёт именно к нему, и как-то реагирует (например, ОЗУ или ПЗУ возвращают содержимое ячейки памяти, а какой-нибудь контроллер может возвратить значение своего регистра).
На уровне команд x86 есть различие между пространством адресов памяти и пространством адресов портов ввода/вывода. К первому пространству адресов подключаются ОЗУ, ПЗУ, но и могут быть устройства (например, видеосистема), которые тоже отображаются в памяти. Доступ к содержимому этого адресного пространства происходит при помощи соответствующих адресных регистров и команд пересылки данных между памятью и регистрами. (Например, ассемблерная мнемокоманда MOV с двумя операндами в зависимости от типа источника и приёмника преобразуется в разные машинные коды). Ко второму пространству адресов подключаются разные периферийные устройства, и оно служит для обмена данными между устройствами и процессором. Поэтому каждый адрес этого пространства называется портом ввода/вывода. Доступ к этому пространству осуществляется при помощи команд ввода/вывода IN и OUT.
Порты ввода/вывода и ячейки памяти чисто технически (для процессора) представляют собой одно и то же с точки зрения адресации. Но для программиста они идеологически различаются. Память - это хранилище данных. Если ты туда что-то записал, оно там и будет лежать, и его оттуда можно прочитать обратно. Порт - это не хранилище. Т.е. записав что-то в порт, обратно можешь прочитать совсем другое значение, зависящее от работы устройства.
|
|
« Последнее редактирование: 08-10-2011 10:50 от Dimka »
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
pokk
Помогающий
Offline
|
|
« Ответ #5 : 08-10-2011 11:03 » |
|
Dimka, не много понятнее стало спасибо. У процессора есть адресная шина. К этой шине подключаются устройства (в частности, ОЗУ), так, что если процессор посылает запрос по шине, соответствующее устройство опознаёт, что обращение идёт именно к нему, и как-то реагирует (например, ОЗУ или ПЗУ возвращают содержимое ячейки памяти, а какой-нибудь контроллер может возвратить значение своего регистра). Я вот как раз этим занимаюсь, пытаюсь понять, как же отправить запрос (выбор кристалла) на внешнее устройство.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #6 : 08-10-2011 15:21 » |
|
pokk, для этого надо скачать datasheet на процессор (на сайте intel.com - даташит существует) и посмотреть распиновку и диаграммы циклов шины. http://datasheets.chipdb.org/Intel/x86/808x/datashts/8086/
|
|
« Последнее редактирование: 08-10-2011 15:23 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #7 : 08-10-2011 15:54 » |
|
в общем мне надо вывести на шину данных или адреса процессора К1810 ВМ86 какое-то число. Как такое сделать можно ? Такое можно вообще никак не делать. При работе программы процессор выводит на шину адреса/данных (как уже сказал RXL, она мультиплексированная) "какие-то числа" несколько миллионов раз в секунду, и если немного подождать, любое нужное число там появится без каких-то дополнительных действий. Как выглядит задача на самом деле?
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
pokk
Помогающий
Offline
|
|
« Ответ #8 : 08-10-2011 16:17 » |
|
Как выглядит задача на самом деле? Разработать пульт оператора базовой мпс, включающий клавиатуру. для ввода данных в 16ричной системе и цифровой дисплей для отображения в 16ричной системе адреса (4 цифры) и данных (2 цифры). Составить программу чтения памяти с отображением на индикаторах. В общем считаем,что во внешней памяти пзу уже находятся данные и мне надо только вывести. для этого на матричной клавиатуре 4 на 4 набираю адрес ,а выводится они должны на Семисегментный индикатор(на чёт семи не уверен наверное на 16тисигментные надо) для этого всего я выбрал память К537РФ2 или К537РР2 (отличаются они только методом стирания в моём случае это не принципиально =) объём 2кб на 8 ). так же выбрал микросхему КР580ВВ79 для опроса клавиатуры и вывода на индикаторы, ещё хочу поставить шинный формирователь ир82 но с ним не разобрался ещё Такое можно вообще никак не делать. При работе программы процессор выводит на шину адреса/данных (как уже сказал RXL, она мультиплексированная) "какие-то числа" несколько миллионов раз в секунду, и если немного подождать, любое нужное число там появится без каких-то дополнительных действий. вообще-то хотел пару разрядом из адреса забить что бы ими можно было выбирать внешние устройства
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #9 : 08-10-2011 17:22 » |
|
для ввода данных в 16ричной системе и цифровой дисплей для отображения в 16ричной системе адреса (4 цифры) и данных (2 цифры).
(на чёт семи не уверен наверное на 16тисигментные надо)
4 + 4 * 16 = тебе нужен 128-сегментный индикатор А микросхемы должны быть исключительно отечественного производства?
|
|
« Последнее редактирование: 08-10-2011 17:28 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #10 : 08-10-2011 17:55 » |
|
Разработать пульт оператора базовой мпс, включающий клавиатуру. ... так же выбрал микросхему КР580ВВ79 для опроса клавиатуры и вывода на индикаторы Честно говоря, сегодня трудно выбрать что-то более неподходящее, чем К1810ВМ86 и КР580ВВ79. Это древние микросхемы (им уже лет 30, а их фирменным прототипам наверняка и все 40), которым сегодня место лишь в политехническом музее, но никак не в разработках. Моя рекомендация: возьмите современный микроконтроллер. На них и систему делать проще (все уже собрано на одном кристалле), и программировать/отлаживать легче, и по деньгам гораздо дешевле. Да и сам проект на старой элементной базе не имеет никаких перспектив.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #11 : 08-10-2011 19:10 » |
|
Ну, почему же? Помню, писали, в некоторых блоках Шатлов они еще стоят. pokk, элементная база жестко указана в задании или можно выбирать ее по собственному усмотрению? Я бы порекомендовал AVR или клоны 8051 - они намного больше подходят для такой задачи. И схемотехника будет проще. ОЗУ и ПЗУ (точнее Flash) уже встроены и надо только взять типовые решения для подключения индикаторов и клавиатуры. Программы работы с ними тоже типовые. Останется только написать десяток строчек на Си для описания логики. Поверь, с 8086 ты намучаешься.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #12 : 08-10-2011 20:21 » |
|
Ну, почему же? Помню, писали, в некоторых блоках Шатлов они еще стоят. Так это вполне естественно: последний Space Shuttle построен в 1991-м, а разработка проекта была начата в 1971-м. Много воды утекло.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
pokk
Помогающий
Offline
|
|
« Ответ #13 : 09-10-2011 00:42 » |
|
К сожалению, да К1810ВМ86 указан т.к типо мы его изучили =) на счёт остального не знаю возможно можно что-то и современно. Была идея в качестве индикатора использовать LCD дисплей на контроллере HD44780 ,но смысл если всё равно надо будет использовать КР580ВВ79 для клавиатуры которым сегодня место лишь в политехническом музее, но никак не в разработках. уже встречал такое и не раз, пока искал УГО =))))) .....На них и систему делать проще (все уже собрано на одном кристалле), и программировать/отлаживать легче, и по деньгам гораздо дешевле. Да и сам проект на старой элементной базе не имеет никаких перспектив. ну это курсовой проект тут я полагаю отлаживать нечего не надо будет =)
|
|
|
Записан
|
|
|
|
DneprSMV
|
|
« Ответ #14 : 09-10-2011 01:24 » |
|
pokk, Если хочешь смотреть что там на шинах - надо чтобы был аппаратный "шагатель" по циклам Помнится, он состоит из одного триггера и кнопки. В книжках по x86 есть достаточно примеров. Работа с портом отличается от работы с памятью стробирующими импульсами. (для памяти они MEMR MEMW а для портов IOR IOW. Но уже не помню.) Тебе надо "поймать" импульс записи порта + строб адерсного селектора, и их совпадением защелкнуть триггер "останова" процессора После этого можно смотреть, что там на шинах 8086 - пожалуй последний из процессоров, более-менее удобный-простой для учебных целей разве что еще 80188 Добавлено через 11 минут и 59 секунд:RXL, "Поверь, с 8086 ты намучаешься." - это да один сигнал режима выборки 8/16 разрядных данных чего стоит Проще взять ископаемую плату XT и ее помучить. Правда там x88 начали ставить - не пройдет по ТЗ. Добавлено через 23 минуты и 24 секунды:pokk, по командам правильно, их кажется 2 формата для "ближних" портов (0...256) прямая адресация в команде и для всего диапазона (65535) - косвеная через DX. За порты уже выше объяснили. Принципиального отличия "портов" от "памяти" со стороны процессора нет (но используются разные упр. сигналы). Разница в самих портах. Если при записи в память числа XX мы при считывании получаем XX (задача хранения ихф-ии), то при работе с портом это уже не факт Почему - надо объяснять отличие понятия "периферийного устр-ва" (например ВВ79) от RAM. Простейшее П.У. состоит из 2-х регистров (один на запись, другой на чтение, имеющих один адрес). Если соединить выходы R1 и входы R2 - получим ячейку RAM. А если входы-выходы не соединять, а использовать для записи-считывания какихнить внешних сигналов - простейший порт.
|
|
« Последнее редактирование: 09-10-2011 01:59 от DneprSMV »
|
Записан
|
"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
|
|
|
LightSin
The question title sounds to me the same as "Convert banana into a pistol"... :-)
Постоялец
Offline
id/fm105
|
|
« Ответ #15 : 09-10-2011 08:09 » |
|
странно) Разработать пульт оператора базовой мпс, включающий клавиатуру. занимаюсь на pic на avr сил перейти нету)) позже а так по идеи 2 варианта подключение com и lpt скажу как передает com знать нужно что он последовательная шина.... но... ведь есть rs232 и цепляешь к нему контроллер а там уже документаций много как с этим работать с lpt портом будет попроще с одной стороны, подключив светодиоды можно будет увидеть что и как... http://bitsofmind.wordpress.com/2008/08/07/led-and-lpt-port/клавиатуру сделать самому не проблема)) http://www.radiohlam.ru/control/keyboard.htm
|
|
|
Записан
|
Lost in the jungle: 1c, PIC AVR, C++, Python flask, (no Java) JS . for fun: Live For Speed S2 Drift Edition, TeeWorlds
|
|
|
|
|