Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Действия над массивами
     
    
Добавлено: 16.12.05 18:13
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     Dushes | ICQ: 249195431
 Dushes | ICQ: 249195431 
      
       
  
У меня есть несколько байтовых массивов одинакового размера. Вопрос: как можно БЫСТРО производить побайтовые математические операции. Например - сложение всех элементов массивов или деление на какое то число...
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 7
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Victor
 Victor




ICQ: 345743490 
Вопросов: 42
Ответов: 385
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  16.12.05 23:31
       
    
       
  
Ну, я думаю, что Basic'ом ничего быстрее чем просто циклом сделать не получится.
 
    
Вроде API таких нет.
А вот на ассемблере, думаю, сможешь. Я слышал, что там mmx есть.
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: GSerg
 GSerg


Вопросов: 0
Ответов: 1876 
      
 Профиль |  | #2
       
Добавлено:  17.12.05 05:06
       
    
       
  
Да, mmx тут как раз в точку...
 
    
Чтобы ускорить работу с байтовым массивом, сделай его лонговым массивом. Потеряешь вчетверо больше памяти, но производительность увеличится. И поставь галку "Убрать проверку границы массива" в свойствах компиляции.
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: Dushes
 Dushes

ICQ: 249195431 
Вопросов: 8
Ответов: 110
      
 Профиль |  | #3
       
Добавлено:  17.12.05 12:05
       
    
       
  
Ну я так сразу и подумал, что все равно на асме придется писать, ну да ладно, пойду TASM вспоминать...
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: Dushes
 Dushes

ICQ: 249195431 
Вопросов: 8
Ответов: 110
      
 Профиль |  | #4
       
Добавлено:  17.12.05 12:06
       
    
       
  
То есть MASM...
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: Страшный Сон
 Страшный Сон









Вопросов: 46
Ответов: 848
      
 Профиль |  | #5
       
Добавлено:  17.12.05 12:45
       
    
       
  
 
    
А VBшный компилятор mmx-оптимизаций не делает?
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: GSerg
 GSerg


Вопросов: 0
Ответов: 1876 
      
 Профиль |  | #6
       
Добавлено:  17.12.05 13:10
       
    
       
  
При работе с байтовыми массивами?
 
    
Нет, а должен?
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #7
      
Добавлено:  18.12.05 01:01
       
    
       
  
 
    
 Не, MMX не поможет, деления там нет. Умножение только, да и то для слов, а не для байт.
 Сложение есть, можно складывать 8 байт или 4 слова или 2 двойных слова одновременно (потому что 64-битная мантиса регистров сопроцессора). Причём кроме циклического сложения ещё есть сложение со знаковым или беззнаковым насыщением. Правда не думаю что MMX предназначена для сложения... хотя кто знает, тестов я не проводил. Можно только посудить логически из этого порядка:
2. Складываем MM0 с памятью [m2]
3. Выгружаем из MM0 в [m1]
4. Следующие 8 байт
или же всё таки провести тесты.