Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2012, 15:34   #1
Дмитр
 
Регистрация: 17.03.2012
Сообщений: 5
По умолчанию Найти количество четных чисел в массиве не используя операцию деления

Помогите пожалуйста!!!!!! Необходимо определить число четных чисел в массиве не используя операцию деления! Есть код, в нем что то не так. Буду очень благодарен кто поможет исправить!
Код:
.386
.model flat, stdcall
option casemap: none
 include \masm32\include\windows.inc
 include \masm32\include\kernel32.inc
 include \masm32\include\user32.inc
 includelib c:\masm32\lib\kernel32.lib
 includelib c:\masm32\lib\user32.lib
 iprint PROTO :DWORD
iprintln PROTO :DWORD

 .data
 cFNPrompt        db " ",13,10
 cFNPrompt2       db " ",13,10
  cbFNPrompt      dd  sizeof cFNPrompt 
  hStdOut         dd 0
  dwBytes         dd 0
  szAppName       db "input   ",0
  hStdIn          dd 0
  massiv          dd 4,2,3,4,41,14
    kol_even                 dd 0
.code
main PROC 
; 
	invoke CharToOem, Addr cFNPrompt2, Addr cFNPrompt  
      invoke FreeConsole ; освободить консоль
	invoke AllocConsole ; добавить консоль	
	Invoke GetStdHandle, STD_OUTPUT_HANDLE
	Mov hStdOut,EAX
            
	Invoke GetStdHandle, STD_INPUT_HANDLE
	Mov hStdIn,EAX
           Mov EAX, 0
           invoke iprint, EAX
           invoke SetConsoleTextAttribute, hStdOut, 10011111B  

lea ebx, massiv
mov ecx, 6 ;
v1:     push ecx	
invoke iprintln,[ebx] ;
 

 and [ebx],1
jne odd
inc kol_even
odd:  add ebx, 4     

pop ecx
loop v1

Invoke WriteConsoleA,hStdOut, Addr cFNPrompt, cbFNPrompt, Addr dwBytes, 0
;	ожидание ввода символов
	Invoke ReadConsole, hStdIn, Addr szAppName, 10, Addr dwBytes, 0
  	invoke ExitProcess,0
  	
  

main ENDP
include \masm32\include\iprint.inc
 include \masm32\include\iprintln.inc
end main

Последний раз редактировалось Stilet; 17.03.2012 в 15:46.
Дмитр вне форума Ответить с цитированием
Старый 17.03.2012, 15:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что именно не так?
Это код для MASM под винду...
А ты его чем компилируешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2012, 15:57   #3
Дмитр
 
Регистрация: 17.03.2012
Сообщений: 5
По умолчанию

Пишет что операнд не правильно выбран вот здесь: and [ebx],1
Дмитр вне форума Ответить с цитированием
Старый 17.03.2012, 16:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а
Примерно так:
Код:
and byte ptr [ebx],1
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2012, 17:57   #5
Дмитр
 
Регистрация: 17.03.2012
Сообщений: 5
По умолчанию

Программа заработала. Но в ответ вывела только мой массив. Как сделать чтобы вывела сам ответ сколько четных чисел?!
Дмитр вне форума Ответить с цитированием
Старый 17.03.2012, 18:56   #6
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

нужно вот здесь так сделать:
Код:
loop v1
invoke iprintln,kol_even
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 17.03.2012, 20:10   #7
Дмитр
 
Регистрация: 17.03.2012
Сообщений: 5
По умолчанию

Не помогло. ((((
Дмитр вне форума Ответить с цитированием
Старый 17.03.2012, 21:03   #8
Дмитр
 
Регистрация: 17.03.2012
Сообщений: 5
По умолчанию

Подскажите ещё что нибудь
Дмитр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти значение максимального элемента среди четных в массиве! phreaker228 Помощь студентам 8 11.12.2012 01:49
как найти количество четных элементов матрицы? Tolian92 Паскаль, Turbo Pascal, PascalABC.NET 3 04.12.2011 13:07
Найти и вывести минимальный из четных элементов в массиве, кратный числу 4. Ассемблер. T0P6A Помощь студентам 0 09.05.2009 05:10
нахождение суммы четных чисел в массиве Ci_novice Общие вопросы C/C++ 1 23.12.2007 12:11