pokk
							
								Помогающий 
								
								 
								  Offline
								
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 «  : 08-10-2011 04:28 »   | 
								
								 | 
							  
							 
							Здравствуйте не как не могу разобраться с командами  in out.  
  в общем мне надо вывести   на шину данных  или адреса процессора К1810 ВМ86   какое-то   число. Как такое сделать можно ?
  out  номер порта,акамулятор    так вот самая не понятная часть номер порта  что это такое ?
 
 
 
 
 
 
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 08-10-2011 05:26 от pokk »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RXL
							
						 | 
						
							
								  | 
								
									
									 « Ответ #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
							
						 | 
						
							
								  | 
								
									
									 « Ответ #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
							
						 | 
						
							
								  | 
								
									
									 « Ответ #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
							
						 | 
						
							
								  | 
								
									
									 « Ответ #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
							
						 | 
						
							
								  | 
								
									
									 « Ответ #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 
						 | 
					 
				 
			 |  
		 
	 | 
	| 
		
		
	 | 
	 |