Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Разное > Флейм
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 05.09.2011, 19:32
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59585
По умолчанию

мы на Delphi Sources или где?
Код:
  with TStack.Create do
  begin
    Push(Pointer(a));
    Push(Pointer(b));
    Push(Pointer(c));
    Push(Pointer(d));

    a:=Integer(Pop);
    d:=Integer(Pop);
    c:=Integer(Pop);
    b:=Integer(Pop);
    Free;
  end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #17  
Старый 05.09.2011, 20:02
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Не будем делать новую переменную типа Integer. Просто сделаем новый стек.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #18  
Старый 06.09.2011, 08:23
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59585
По умолчанию

в любом случае явно она не определена (в var), так же как и на использование регистров закрываем глаза)))
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #19  
Старый 06.09.2011, 11:43
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,501
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Это вообще какое-то мерение писечками, кто круче напишет.
На такие вещи вообще глаза закрывают; не постиранные шнурки не могут изменить ход войны.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #20  
Старый 06.09.2011, 11:57
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59585
По умолчанию

ну так раздел то Флейм. почему бы и не пописитничать)))
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #21  
Старый 06.09.2011, 12:51
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,238
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Ну когда уже прикладную фаллометрию закончат применением int64 и shl/shr?
P.S. У меня получилось сделать это в одну строку. Первому написавшему это решение + в репутацию от меня
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #22  
Старый 06.09.2011, 13:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59585
По умолчанию

Цитата:
Сообщение от Bargest
Стеком сколько угодно, пока не будет переполнения.
а его и не будет никогда:
Код:
  asm
    push a
    push b
    pop a
    push c
    pop b
    push d
    pop c
    pop d
  end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #23  
Старый 06.09.2011, 15:54
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,501
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
Ну когда уже прикладную фаллометрию закончат применением int64 и shl/shr?
P.S. У меня получилось сделать это в одну строку. Первому написавшему это решение + в репутацию от меня
Команда bswap?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #24  
Старый 06.09.2011, 16:12
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,238
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

м, а поподробнее?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #25  
Старый 06.09.2011, 16:49
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,501
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Помещаешь в eax последовательно три байта со значениями твоих переменных, после чего делаешь bswap eax
mov eax, $01020300
bswap eax ; теперь там $00030201
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #26  
Старый 06.09.2011, 17:00
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59585
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
P.S. У меня получилось сделать это в одну строку.
у меня тожа:
Код:
  with TStack.Create do begin Push(Pointer(a)); Push(Pointer(b)); a:=Integer(Pop); b:=Integer(Pop); Free; end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #27  
Старый 07.09.2011, 00:28
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Код:
var A,B:integer;
...
Int64((@A)^):=Int64(A) shl 32 + B;
И без асмы.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 07.09.2011 в 00:43.
Ответить с цитированием
  #28  
Старый 07.09.2011, 08:49
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59585
По умолчанию

Цитата:
Сообщение от Bargest
Код:
var A,B:integer;
...
Int64((@A)^):=Int64(A) shl 32 + B;
И без асмы.
AV же будет:
Код:
var
  a, c, b, d: Integer;
begin
  a:=13;
  b:=11;
  c:=1973;
  d:=$ff;
  Edit1.Text:=IntToStr(a);
  Edit3.Text:=IntToStr(b);

  Int64((@a)^):=Int64(a) shl 32 + b;

  Edit2.Text:=IntToStr(a);
  Edit4.Text:=IntToStr(b);
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #29  
Старый 07.09.2011, 19:13
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

А для глобальных пашет. В локальных надо от B начинать, то есть
Код:
var a,b:integer;
...
Int64((@b)^):=Int64(b) shl 32 + a;
Только переменные должны быть подряд объявлены.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 07.09.2011 в 19:18.
Ответить с цитированием
  #30  
Старый 08.09.2011, 19:46
einstein einstein вне форума
Начинающий
 
Регистрация: 02.09.2010
Адрес: Город
Сообщения: 143
Репутация: -4653
По умолчанию

ну так про решение одним оператором и не подряд описаных переменных развод был?
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2018

ВКонтакте   Facebook   Twitter