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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2011, 14:46   #1
Ариадна
Новичок
Джуниор
 
Регистрация: 12.06.2011
Сообщений: 2
По умолчанию поиск элементов массива на ассемблере,встроенном в паскаль

подскажите,пожалуйста,можно ли улучшить данную программу поиска на встроенном в паскаль ассемблере отрицательных, положительных и нулевых элементов в одномерном массиве
Код:
program massiv;
uses crt;
const n=5;
var A:array[1..N]of integer;
    i:1..N;
    X,Y,Z:INTEGER;
begin
clrscr;
for i:=1 to n do
readln(A[i]);
asm
mov X,0
MOV Y,0
MOV Z,0
LEA SI,A
MOV CX,5
@1:
 MOV AX,[SI]
 CMP AX,0
 JG @6
 JL @3
 INC Y
 INC SI
 INC SI
 LOOP @1
 JCXZ @K
@3:
 INC Z
 INC SI
 INC SI
 LOOP @1
 JCXZ @K
@6: INC X
INC SI
INC SI
LOOP @1
JCXZ @K
@K:NOP
END;
WRITELN('CHISLO POL=',X);
WRITELN('CHISLO 0=',Y);
WRITELN('CHISLO OTRIZ=',Z);
READLN;
END.

Последний раз редактировалось Stilet; 14.06.2011 в 20:47.
Ариадна вне форума Ответить с цитированием
Старый 13.06.2011, 15:15   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
asm
  sub bx, bx
  mov X, bx
  MOV Y, bx
  MOV Z, bx

  LEA SI, A
  MOV CX, N

@mainloop:
  lodsw
  CMP AX, bx
  JG @above
  JL @below

  INC Y
  jmp @nextitem

@below:
  INC Z
  jmp @nextitem

@above:
  INC Y

@nextitem:
  LOOP @mainloop

end;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 13.06.2011, 15:52   #3
Ариадна
Новичок
Джуниор
 
Регистрация: 12.06.2011
Сообщений: 2
По умолчанию

Большое спасибо!
Ариадна вне форума Ответить с цитированием
Старый 14.06.2011, 20:40   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

кстати, там у меня ошибка:

Код:
@above:
  INC Y
Должно быть INC X. А всё почему? Да потому, что кто-то выбрал "удачные" названия для переменых )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в записи (во встроенном асме Delphi) EThread Помощь студентам 1 06.05.2009 10:03
поиск элементов массива omar22 PHP 5 30.04.2009 13:01
поиск одинаковых элементов одномерного массива и их количества MyQwErTy Помощь студентам 2 28.02.2009 17:17
как описать массивы на встроенном ассемблере паскаля mandarinka27 Паскаль, Turbo Pascal, PascalABC.NET 0 25.12.2008 19:28
Функция на встроенном ассемблере Bezumie Помощь студентам 2 21.12.2008 21:42