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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2011, 08:05   #1
JohnLemon
 
Регистрация: 02.08.2010
Сообщений: 5
По умолчанию

Ребят подскажите плз в ассемблере пока тока разбираюсь, мало что понимаю подскажите что надо изменить в коде чтобы программа находила сумму элементов массива. Прога нужна на делфи со вставкой ассемблера.

Код:
 procedure TForm1.Button1Click(Sender: TObject);
 var
 mas:array [1..3] of integer;
 res:integer;
 label m1;
 begin
 mas[1]:=5;
 mas[2]:=5;
 mas[3]:=5;
 asm
 xor eax,eax
 xor ebx,ebx
 mov ecx,4
 lea esi,[mas]
 mov al,byte ptr[mas]
 m1:
 mov bl,[esi+1]
 add eax,ebx
 inc esi
 loop m1
 mov res, eax

 end;
 ShowMessage(inttostr(res));
 end;
________
1) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

2) Кросспостинг (создание одинаковых тем) запрещён правилами форума.

Не забывайте об этом!
Модератор.


ок сори просто первый раз на вашем форуме, виноват исправлюсь )

может кто помоч просто за седня надо задачку сделать а работа встала из за этого массива ((

Последний раз редактировалось Stilet; 11.09.2011 в 14:04.
JohnLemon вне форума Ответить с цитированием
Старый 11.09.2011, 10:57   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Пробуй так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
mas:array [1..3] of integer;
res:Integer;
label m1;
begin
  mas[1]:=5;
  mas[2]:=5;
  mas[3]:=5;
asm
  xor eax,eax
  xor ebx,ebx
  mov ecx,3
  lea ebx, mas
  m1:
   mov edx, dword ptr[ebx]
   add eax, edx
   add ebx, 4
  loopne m1
  mov res, eax

end;
ShowMessage(inttostr(res));
end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 11.09.2011, 11:02   #3
JohnLemon
 
Регистрация: 02.08.2010
Сообщений: 5
По умолчанию

Пасииииииибо огромное все работает ))) Примного вам благодарен
JohnLemon вне форума Ответить с цитированием
Старый 11.09.2011, 11:06   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
 var
 mas:array [1..3] of integer;
 res:integer;
 begin
 mas[1]:=5;
 mas[2]:=5;
 mas[3]:=5;
 asm
 xor eax,eax
 mov ecx,3
 lea esi,mas
 @m1:
 add eax,[esi]
 add esi,4
 loop @m1
 mov res, eax

 end;
 ShowMessage(inttostr(res));
 end;
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи и ассемблер. Не работают прерывания типа Int Я_и Общие вопросы Delphi 8 11.12.2010 13:13
Ассемблер в делфи danekne Помощь студентам 1 24.11.2009 13:48
Ассемблер в делфи Hesheit Помощь студентам 3 08.05.2009 11:27