Страница 1 из 1

Нужна помощь в заполнении массива NxM по спирали

Добавлено: 20 апр 2010, 23:04
war13
Собственно говоря есть код на паскале, я пытаюсь его перевести на асм, под tasm, но что-то у меня все регистры заканчиваются на первом же цикле, а в стек если пихать, то можно запутаться)).
Вот собственно код на паскале

Код: Выделить всё

begin
 i:=0; k:=0; p:=1;

 while i<n*m do
  begin
    inc(k);
    for j:=k to m-k+1 do
     begin
       inc(i);
       s[k,j]:=p;
       inc(p);
     end;

  for j:=k+1 to n-k+1 do
   begin
     inc(i);
     s[j,m-k+1]:=p;
     inc(p);
   end;

  for j:=m-k downto k do
   begin
     inc(i);
     s[n-k+1,j]:=p;
     inc(p);
   end;

  for j:=n-k downto k+1 do
   begin
     inc(i);
     s[j,k]:=p;
     inc(p);
   end
 end;

p.s. 3 день пытаюсь, и 3 день подряд к вечеру голову сносит просто в щепки))

Re: Нужна помощь в заполнении массива NxM по спирали

Добавлено: 30 апр 2010, 03:55
xrnd
А какой размер имеют элементы массива и переменные?

Re: Нужна помощь в заполнении массива NxM по спирали

Добавлено: 30 апр 2010, 13:41
BulldozerBSG
обходной вариант. используй FPC для генерации листинга на асме и листинга паскаля.

Re: Нужна помощь в заполнении массива NxM по спирали

Добавлено: 10 май 2010, 17:44
war13
Размер массива макс 50,а элементы начиная с 1 до n*m

Re: Нужна помощь в заполнении массива NxM по спирали

Добавлено: 13 май 2010, 15:15
xrnd
Можно очень тупо переделать - объявить все индексы как глобальные переменные и перевести на ассемблер построчно.

Re: Нужна помощь в заполнении массива NxM по спирали

Добавлено: 13 май 2010, 23:19
war13
да можно вот только я не умею переводить 2 дня назад пытался перевести сам код на бумаге, получилось строк 200 и нехера не пашет хотя вроде и все норм работает ))) вот такая вот ерунда(((