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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2008, 14:39   #1
forsy
 
Аватар для forsy
 
Регистрация: 16.05.2008
Сообщений: 8
По умолчанию !

Помогите найти ошибки в программе!
Программа считает колличество четных элементов в одномерном массиве!


Код:
Program s1;
var
 a : array[1..10] of word;
 i, s: word;
begin
 randomize;
 for i :=1 to 10 do
begin
 a[i] := 1 + random(100);
 write(a[i], ' ');
end;
writeln;
asm
cld
mov cx,10
mov bp,0
lea si,a
 @1:
 lodsw
 mov bx,2
 idiv bx
 cmp dx,0
 je @2
@2:
 loop @1
 add bp,1
 mov s,bp
end;
 writeln('s= ', s);
 writeln;
end.
forsy вне форума Ответить с цитированием
Старый 21.05.2008, 14:48   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Вот это:
Код:
je @2  
@2:
как понимать? Очевидно, увеличение должно происходить межу этими строками. И НЕ ТРОГАЙТЕ РЕГИСТР BP!
B_N вне форума Ответить с цитированием
Старый 21.05.2008, 14:58   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы это так решал:
Код:
.data
q		dw 1,2,3,4,5,6,7,8,9,10
s		db 0
.code
start:
 mov esi, offset q
 mov ecx,9
wq:
 lodsw
 mov ebx,2
 div bl
 cmp ah,0
 jz a
 inc [s]
a:
 loop wq
 ret
end start
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2008, 15:01   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Остаток от деления в [E]DX. К тому же перенос в асм всех этих паскальных штучек с дивами и модами - лишнее Чётность проверяется с помощью
Код:
TEST <operand>, 1
B_N вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нахождение суммы четных чисел в массиве Ci_novice Общие вопросы C/C++ 1 23.12.2007 12:11
В одномерном масиве найти длинную цепочку стоящих попарно различных элементов Махряк Помощь студентам 0 05.12.2007 20:00
Как найти проиизведение в одномерном массиве? kitty Помощь студентам 10 30.11.2007 20:30
В одномерном масиве найти длинную цепочку стоящих попарно различных элементов Махряк Помощь студентам 0 29.11.2007 23:09
Количество элементов в динамическом массиве lytkin Общие вопросы Delphi 8 21.02.2007 14:50