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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2012, 11:00   #1
mustaman
 
Регистрация: 07.04.2010
Сообщений: 5
По умолчанию перевернуть массив pascal\asm

одномерный массив, зеркально перевернуть (первый последний, второй предпоследний)
и если с голым паскалем все более чем понятно, то куда тут присобачить вставку на асме?
mustaman вне форума Ответить с цитированием
Старый 31.01.2012, 11:27   #2
alexey2
Пользователь
 
Регистрация: 27.01.2012
Сообщений: 37
По умолчанию

может через стек? все кидаем в стек, попутно считаем количество, потом выбираем из стека это же количество
alexey2 вне форума Ответить с цитированием
Старый 31.01.2012, 21:45   #3
mustaman
 
Регистрация: 07.04.2010
Сообщений: 5
По умолчанию

Код:
for i:=1 to n do
  begin
   temp:=a[i];
   asm
    push temp
    mov temp,200
   end;
  end;

for i:=1 to n do
  begin
   asm
    pop temp;
   end;
   write(temp,' ');
  end;
readln;
end.
бред же? по любому есть более красивое решение
mustaman вне форума Ответить с цитированием
Старый 31.01.2012, 23:11   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Для турбо паскаля:
Код:
var A:array [1..100] of integer;
   . . .
 asm
  mov   di,N      { количество элементов массива }
  mov   cx,di
  shr   cx,1       { N div 2 }
  dec   di
  shl   di,1      
  lea   si,A        { адрес первого элемента }
  add   di,si       { адрес последнего элемента }
@Loop_:
  mov   ax,[si]
  xchg  ax,[di]
  mov   [si],ax
  add   si,2
  sub   di,2
  loop  @loop_
 end;
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 01.02.2012, 00:27   #5
mustaman
 
Регистрация: 07.04.2010
Сообщений: 5
По умолчанию

делфи вылетает, уже после исполнения, консоль увидеть не успеваю что выводит
mustaman вне форума Ответить с цитированием
Старый 01.02.2012, 00:35   #6
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

readln в конце программы поставь. Если извращенец, то юзай трассировку.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 01.02.2012, 00:38   #7
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

какой вопрос - перевернуть массив pascal\asm, такой и ответ
Цитата:
Для турбо паскаля:
Цитата:
делфи вылетает ...
работайте с 32 разрядными регистрами и учтите при правке, что Integer в делфи также занимает 32 разряда
на неконкретные вопросы даю неконкретные ответы ...

Последний раз редактировалось Step_UA; 01.02.2012 в 00:42.
Step_UA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив в ASM Roman Помощь студентам 4 05.11.2021 05:07
[Delphi] Перевернуть массив Язь Помощь студентам 12 16.10.2011 15:52
Одномерный массив ASM Tesmont Помощь студентам 1 31.05.2011 16:24
перевернуть двумерный массив.(динамический) Arcueid1691 Общие вопросы C/C++ 0 29.11.2010 21:04