| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 «  : 30-05-2006 19:52 »   | 
								
								 | 
							  
							 
							Имею коротенькую  программку на Paskal.  Пожалуйста, как перевести ее на С++: Uses Crt; Var S, B: Byte    Begin       WriteLn(‘Чтение данных с порта COM2’);    Asm       Mov Ah, 0       Mov Dx, 1       Mov Al, 227       INT 14H End;    While not KeyPressed do begin    Asm       Mov Ah, 3       Mov Dx, 1       Mov Al, 227 INT 14H       Mov S, AH End; If(S and 1) = 1 then begin    Asm       Mov Ah, 2       Mov Dx, 1 INT 14H       Mov B, Al       Mov S, Ah End; If s = 0 then begin    WriteLn(B); End; End; End; While KeyPressed do ReadKey; End.
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Михалыч
							
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 31-05-2006 01:14 »   | 
								
								 | 
							  
							 
							Не люблю отвечать таким образом, но в данном случае отвечу    В поиск! Сам года 2 назад столкнулся с подобной проблемой... Без проблем нашел в сети конвертор (и кстати не один) из Паскаля в С. Перевел правильно на 95-100% в зависимости от сложности    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Поживем - увидим... Доживем - узнаем... Выживу - учту     
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							nikedeforest
							
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 31-05-2006 02:42 »   | 
								
								 | 
							  
							 
							Михалыч, ты где пропадал?  Я уж подумал не случилось ли чего.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							ещё один вопрос ... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Dimka
							
								Деятель 
								Команда клуба
								
								 
								  Offline
								Пол:   
								
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 31-05-2006 07:28 »   | 
								
								 | 
							  
							 
							как перевести ее на С++ Элементарно,  scraper.    Есть аналоги всех используемых функций. А ассемблер даже переводить не надо.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел) 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Михалыч
							
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 31-05-2006 16:34 »   | 
								
								 | 
							  
							 
							Михалыч, ты где пропадал?  Я уж подумал не случилось ли чего. Не... спасибо, все нормально. Так, приболел слегка, да работы навалили по самые уши    Некогда...  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Поживем - увидим... Доживем - узнаем... Выживу - учту     
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Sla
							
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 01-06-2006 07:36 »   | 
								
								 | 
							  
							 
							а я протащился от самого кода, особенно от асемблерных вставок как в паскале так и в с есть функции работы с прерываними Если не изменяет память use dos; или #include dos.h,  сори, если где ошибся в написании 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Мы все учились понемногу... Чему-нибудь и как-нибудь. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 05-06-2006 20:08 »   | 
								
								 | 
							  
							 
							Вы не знаете, случайно, алтернативы функциям на Paskal, написаные на C++? Может подскажите ссылку? Если не знаете, то хотя бы в этой проге, какая альтернатива? И каким образом происходит взаимодействие между Asm-ом в коде, и С++? Наверно, это элементарно, но паскаль я нелюблю, а в С++ сразу бы увидел. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 05-06-2006 20:09 »   | 
								
								 | 
							  
							 
							Конвертор, что это, где взять, как работает, как пользоваться? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 05-06-2006 20:43 »   | 
								
								 | 
							  
							 
							Короче, не буду многословить, кто что знает:
  Com-порты->(функции из стандартного С++, из WinApi, Asm) __какие эти функции принимают параметры, что возвращают, что можно сделать с помощью них.
  Что в системе отвечает за работу Com-портов? Какие утилиты (Windows XP) маршрутизируют байты из-в Com-порт(а)?
  Как система определяет, подключено ли какое-либо устройство через Com-порт?
  Албтернатива ответам (нежелательно, но все таки...): Какие-нибудь ссылки по ответам на эти вопросы. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 05-06-2006 20:53 »   | 
								
								 | 
							  
							 
							И каким образом происходит взаимодействие между Asm-ом в коде, и С++?
  Никак. Компилятор ассемблерный участок напрямую перекидывает в машиныые коды и вставляет в текст программы. В большинстве случаев ассемблерный код не будет влиять на построение компилятором сишных команд. Так как политика компилятора "не хранить временные переменные в регистрах". Если ты знаком с С++. То переделать Паскалевские конструкции под С++ не должно составить труда. Тем более в коде на 20 строк. Я не помню уже (да и не знал) альтернативы команды под ДОС  KeyPressed. Паскалевскую библиотеку CRT можно заменить stdio.h.  Тип Byte можно замнить на char Команду WriteLn на printf. Конструкции if, while, Asm нужно только переписать с учетом Сишного синтаксиса.      
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Alf
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #10 : 05-06-2006 20:58 »   | 
								
								 | 
							  
							 
							А это действительно необходимо - переводить программу, написанную на ассемблере, с Паскаля на С++ при помощи конвертора? Хоть убейте, не пойму, в чем тут смысл. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 05-06-2006 21:02 »   | 
								
								 | 
							  
							 
							Finch, я понял.
  В этой проге вся логика написана на Asm-е, значит это Asm-овсая прога. То что оболочка из С++ это ничего не значит. Вывод: к железу можно обратиться только на Asm-е. Так? Но тогда: как связать С++ и Asm, ВОЕДИНО?!! (Хотя бы в собственном мозгу?)
  Alf, смысл в том, что я хочу понять Com-порты, а примеры все на Paskale. Приходиться переводить. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #12 : 05-06-2006 21:07 »   | 
								
								 | 
							  
							 
							Читай  MSDN. На форуме несколько раз проскакивали топики по работе с COM портами. В Винде в пользовательском режиме напрямую с оборудованием работь нельзя. Вся работа строится через функции посредники.   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 05-06-2006 21:15 »   | 
								
								 | 
							  
							 
							
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 05-06-2006 21:17 »   | 
								
								 | 
							  
							 
							scraper, Ты определись в какой ОС ты хочеш понять логику работы. То что ты привел на Паскале, это ДОС версия работы. И кстати ее можно легко заменить на паскалевкие функции вызовов прерываний. Если все таки решил писать под ДОС. Тогда просто достань любой справочник по прерываниям. И посмотри какие возможности предоставляет 14h прерывание. Если хочеш разбираться под Винду. В другом твоем топике я дал ссылку на MSDN. Именно на тот раздел, который отвечает на твои вопросы.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #15 : 05-06-2006 21:21 »   | 
								
								 | 
							  
							 
							Прыгни по ссылке. Я сейчас полистал этот раздел. Там есть примеры в Сишном коде. Заодно упоминание всех функций, которые могут тебе понадобится.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #16 : 05-06-2006 21:22 »   | 
								
								 | 
							  
							 
							Finch, комп. На нем: BIOS, DOS, Windows XP.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #17 : 05-06-2006 21:25 »   | 
								
								 | 
							  
							 
							i'll jamp... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 19-12-2007 19:59 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #18 : 05-06-2006 21:25 »   | 
								
								 | 
							  
							 
							Если у тебя винда ХР то на машине не должно быть ДОСа. Стоит эмулятор ДОС режима. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #19 : 05-06-2006 21:28 »   | 
								
								 | 
							  
							 
							Можно спросить: например, мне нужно какое-нибудь действие сделать, как узнать, какая функция MSDN, это делает? Другими словами: как пользоваться MSDN? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #20 : 05-06-2006 21:31 »   | 
								
								 | 
							  
							 
							Понятно, значит под Windows. Определились. И... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #21 : 05-06-2006 21:38 »   | 
								
								 | 
							  
							 
							
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #22 : 05-06-2006 21:41 »   | 
								
								 | 
							  
							 
							И...
  Я объединяю две темы. Поэтому могут быть недомолвки.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 05-06-2006 21:43 от Finch »
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #23 : 05-06-2006 21:43 »   | 
								
								 | 
							  
							 
							По MSDN пока понятно. Спасибо.  Thank you for you time. Good night. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Алексей++
							
								глобальный и пушистый 
								Глобальный модератор
								
								 
								  Offline
								
								Сообщений: 13
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #24 : 06-06-2006 08:16 »   | 
								
								 | 
							  
							 
							scraper, Thank you for your wasted time.    А то так непонятно было, что написал  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #25 : 06-06-2006 13:09 »   | 
								
								 | 
							  
							 
							Алексей1153, я извиняюсь, но в современном американском языке, фраза: Thank you for you time, допустима.    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Алексей++
							
								глобальный и пушистый 
								Глобальный модератор
								
								 
								  Offline
								
								Сообщений: 13
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #26 : 06-06-2006 17:03 »   | 
								
								 | 
							  
							 
							scraper, ну, где мне до америки     где уж нам уж (с)    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							scraper
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									«  Ответ #27 : 06-06-2006 20:24 »    | 
								
								 | 
							  
							 
							
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |