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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2011, 18:51   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию asm проблема с циклом

Люди, все время юзал max(массив), тут встретился с Ассемблером и заломился. Сори, везде пишут, что эта тема сильно раскручена, но не нашел. Как определить максимальный элемент массива? Сам алгоритм не доходит даже. Типа такого:
Код:
.386                      
      .model flat, stdcall      
      option casemap :none      

      include C:\masm32\include\windows.inc
      include C:\masm32\include\user32.inc
      include C:\masm32\include\kernel32.inc
      includelib C:\masm32\lib\user32.lib
      includelib C:\masm32\lib\kernel32.lib
  .CONST
  .DATA?
  .DATA    							
X db 3,7,9,2,11,47,10,9,3,6
.CODE
start:
lea esi,X
m1:
mov AL,[esi]
inc esi
cmp AL,[esi]
JL m1
invoke ExitProcess,0
end start
Ну это без знака. Я не умею юзать отладчик, ошибся ли где-то?
Krasi вне форума Ответить с цитированием
Старый 23.02.2011, 21:28   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Нужно добавить mov AL,[esi] перед m1 (инициализировать максимум).
А jl - это знаковое сравнение.
Ну и счетчик элементов не помешает.
Как то так, не проверял:
Код:
.386                      
      .model flat, stdcall      
      option casemap :none      

      include C:\masm32\include\windows.inc
      include C:\masm32\include\user32.inc
      include C:\masm32\include\kernel32.inc
      includelib C:\masm32\lib\user32.lib
      includelib C:\masm32\lib\kernel32.lib
  .CONST
  .DATA?
  .DATA    							
X db 3,7,9,2,11,47,10,9,3,6
.CODE
start:
mov ecx,10
lea esi,X
mov AL,[esi]
m1:
cmp [esi],al
Jna m2
mov al,[esi]
m2: inc esi
dec ecx
jnz m1

invoke ExitProcess,0
end start
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с циклом while asp1k Общие вопросы Delphi 3 17.02.2011 14:29
Проблема с циклом DsDevis Паскаль, Turbo Pascal, PascalABC.NET 8 24.01.2011 00:01
проблема с циклом kiborgdelto Помощь студентам 1 16.10.2010 19:46
проблема с циклом Dima_D Общие вопросы Delphi 5 04.08.2010 16:41
Проблема с циклом.. POPOV Помощь студентам 3 29.04.2008 18:36