информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяЗа кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] если применить дзенствие, то получится нечто типа #define alignTo(x, to) ((x && to == x) ? x: (x && to) + to ) 04.04.09 12:34  Число просмотров: 2155
Автор: kstati <Евгений Борисов> Статус: Elderman
Отредактировано 04.04.09 12:45  Количество правок: 2
<"чистая" ссылка>
<programming>
[C++] для того кто знает ASM перевидите вот эти процедурки на C 02.04.09 23:40   [+]
Автор: Tamas Статус: Member
<"чистая" ссылка>
Заранее огромное спасибо !!!!


; выравнивает значение в eax до значения кратного 0x200 в большую сторону
proc Align_0x200
; -> EAX Value
or eax,eax
jne @f
retn
@@: test eax,$FFFFFE00
je @f
test ax,$01FF
jne @f
retn
@@: and ax,$FE00
add eax,$200
retn
endp

; выравнивает значение в eax до значения кратного 0x1000 в большую сторону
proc Align_0x1000
; -> EAX Value
or eax,eax
jne @f

retn
@@: test eax,$FFFFF000
je @f
test ax,$0FFF
jne @f
retn
@@: and ax,$F000
add eax,$1000
retn
endp
Лехко 03.04.09 16:09  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
void F1();
void F2();

void main()
{
F1();
F2();
}

void F1()
{
__asm
{
or eax,eax
jne @f
retn
@@: test eax,$FFFFFE00
je @f
test ax,$01FF
jne @f
retn
@@: and ax,$FE00
add eax,$200
}
}

void F2()
{
__asm
{
or eax,eax
jne @f

retn
@@: test eax,$FFFFF000
je @f
test ax,$0FFF
jne @f
retn
@@: and ax,$F000
add eax,$1000
}
}

:))))))))))))
так и я могу... 03.04.09 18:38  
Автор: Tamas Статус: Member
<"чистая" ссылка>
[C++] Кто в институте учится? Ты, или - мы? 03.04.09 06:21  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
я не учюсь 03.04.09 18:38  
Автор: Tamas Статус: Member
<"чистая" ссылка>
[C++] если применить дзенствие, то получится нечто типа #define alignTo(x, to) ((x && to == x) ? x: (x && to) + to ) 04.04.09 12:34  
Автор: kstati <Евгений Борисов> Статус: Elderman
Отредактировано 04.04.09 12:45  Количество правок: 2
<"чистая" ссылка>
[C++] Пардон! Тада сути вопроса не понял. 06.04.09 16:21  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Зачем было вообще пытаться понять АСМ-код?

Оно же, элементарно, из пальца высасывается! Мож, не так извратно и нечитаемо, как у предыдущего оратора, но работать будет, и - быстро. Если бы ты спросил: "А этот код, действительно, выравнивает без ошибок?" - тада было бы ясно.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach