Сейчас на форуме: ut2004, vsv1 (+5 невидимых)

 eXeL@B —› Вопросы новичков —› SBB EAX,EAX
Посл.ответ Сообщение


Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 06 сентября 2006 03:14 · Поправил: Модератор
· Личное сообщение · #1

Прогу тут ковыряю.

MOV ECX,DWORD PTR DS:[85CD38]
SUB ECX,EAX
CMP ECX,1
MOV ECX,3EF
SBB EAX,EAX
NEG EAX
PUSH EAX

При каких значения eax,ecx может быть так что eax будет равен нулю или выше
Как я понял таких значений не может ведь SBB EAX,EAX обнуляет регистр?!

-----
Никто не знает столько, сколько не знаю я




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 06 сентября 2006 03:23
· Личное сообщение · #2

sbb это не sub!!!! учи матчасть.

-----
power and the money money and the power




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 06 сентября 2006 03:29
· Личное сообщение · #3

Satanael пишет:
SBB EAX,EAX обнуляет регистр?!


вычитает с учетом флага переноса



Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 06 сентября 2006 03:30
· Личное сообщение · #4

так меня отругали =(

Команда SBB складывает второй операнд (SRC) с флагом CF и
вычитает результат из первого операнда (DEST). Результат
вычитания присваивается первому операнду (DEST), и флаги
устанавливаются соответствующим образом.

При вычитании из операнда-слова непосредственного байтового
значения это непосредственное значение сначала расширяется
знаком.

-----
power and the money money and the power




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 06 сентября 2006 03:36
· Личное сообщение · #5

мля, вот ведь понапишут

команда эта полностью аналогична sub с той разницой что дополнительно вычитается флаг переноса,
т.е. в данном случае будем иметь либо 0 либо -1




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 06 сентября 2006 04:13 · Поправил: Satanael
· Личное сообщение · #6

Asterix
Чему должны быть равны есх и еах что бы eax=-1

-----
Никто не знает столько, сколько не знаю я




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 06 сентября 2006 04:22
· Личное сообщение · #7

после neg будет 1 или 0




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 06 сентября 2006 04:32 · Поправил: Satanael
· Личное сообщение · #8

а точно блин чё мои мозги не работаю.
Если посмтреть на тот участок получается что eax будет равен 0 и после neg, он тоже не изменит значение регистра eax. Ведь sbb eax,eax всегда ноль даёт точно также как и sub eax,eax, без обращения внимания на флаги.

-----
Никто не знает столько, сколько не знаю я




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 06 сентября 2006 04:35 · Поправил: Asterix
· Личное сообщение · #9

Satanael пишет:
Чему должны быть равны есх и еах что бы eax=-1


ecx должно быть равно 0 перед выполнением CMP ECX,1
тогда после neg будет 1




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 06 сентября 2006 04:41
· Личное сообщение · #10

Спасибо Asterix все работает.
Сказывается влияние дельфи и прочего прикладного программирования, блин надо на асм больше налегать...

-----
Никто не знает столько, сколько не знаю я




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 06 сентября 2006 05:24
· Личное сообщение · #11

SUB ECX,EAX ; ECX=ECX-EAX
CMP ECX,1 ; Мнимая = ECX-1, по результатам выставляем флаги
MOV ECX,3EF ; ECX присваиваем 3EF (флаги не меняет)
SBB EAX,EAX ; EAX=EAX-(EAX+CF)
NEG EAX ; инверсия всех битов EAX, +1

Воспринимать можно так:
CMP ECX,1 ; Сравниваем
SBB EAX,EAX ;
NEG EAX ; Выставляем EAX по результату беззнакового сравнения

-----
Всем привет, я вернулся





Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 06 сентября 2006 05:28
· Личное сообщение · #12

SBB EAX,EAX ; EAX=EAX-(EAX+CF)
Вот оно что а понял....

-----
Никто не знает столько, сколько не знаю я




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 06 сентября 2006 05:55
· Личное сообщение · #13

у Григорьева:

КОМАНДЫ ВЫЧИТАНИЯ. Две основные команды собственно
вычитания SUB (SUBtraction) и вычитания с заемом SBB (SuBtraction
with Borrow) имеют такой общий вид:
sub dst,src dst <-- (dst) - (src)
sbb dst,src dst <-- (dst) - (src) - (CF)
Команда SUB производит вычитание источника src из по-
лучателя dst и помещает разность на место dst, т.е. источник
вычитается из получателя. В команде SBB кроме этого действия из
младшего бита разности вычитается значение флажка переноса CF.
(Напомним, что в операции вычитания флажок CF превращается
во флажок заема.) Наличие команды SBB позволяет просто реали-
зовать вычитание чисел любого размера.




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 06 сентября 2006 15:52
· Личное сообщение · #14

Команда sbb используется для выполнения вычитания старших частей значений многобайтных операндов с учетом возможного предыдущего заема при вычитании младших частей значений этих операндов.

;выполнить вычитание 64-битных значений: vich_1-vich_2
vich_1 dd 2 dup (0)
vich_2 dd 2 dup (0)
rez dd 2 dup (0)
...
;ввести значения в поля vich_1 и vich_2:
;младший байт по младшему адресу
...
mov eax,vich_1
sub eax,vich_2 ;вычесть младшие половинки чисел
mov rez,eax ;младшая часть результата
mov eax,vich_1+4
sbb eax,vich_2+4 ;вычесть старшие половинки чисел
mov rez+4,eax ;старшая часть результата


-----
-=истина где-то рядом=-





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 06 сентября 2006 16:56
· Личное сообщение · #15

Тему-то правильно обзывать надо



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 07 сентября 2006 02:32
· Личное сообщение · #16

Satanael пишет:
надо на асм больше налегать

Это такая защита от "высокоуровневых программистов". Раньше(в прошлом веке) там стояло бы
cmp ecx,1
jxx xxxxx
Но так как теперь даже дети это знают, то с легкой руки какого-то борца с крякерами ставят sbb и neg Правда у этого приема тоже "длинная борода". Я видел несколько модификаций



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 07 сентября 2006 07:18
· Личное сообщение · #17

doctor Ice пишет:
матчасть

Что это?

-----
Я медленно снимаю с неё UPX... *FF_User*





Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 07 сентября 2006 13:08
· Личное сообщение · #18

AlexZ, вероятно имеется введу "материальная часть"...

Анекдот в тему:

Сбили значит русского пилота над Ираком на новеньком Су, ну и пытают, мол говори как самалет устроен, что за радар, что за пушки стоят и т.д. Что только с пилотом не делали, ничего не сказал. Вобщем матчасть учить нужно было...

-----
-=истина где-то рядом=-




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 07 сентября 2006 22:22
· Личное сообщение · #19

РЖУНИМАГУ!!! УГАГАГАГАГАГА ! крякиры кросавчеги. это же надо стока базара вокруг SBB развести. топег надо в юмор. непонятно че не понравилось этому товарищу Asterix пишет:
мля, вот ведь понапишут

наверное исчерпывающий ответ из доков от интел =) похоже он ему показался слишком заумным как и товарищу Satanael. хехе и правда откуда челу знать про флаг цф если он про арифметические команды асма нихрена не знает. вот я знаете ковыряю одну плату.... никто не подскажет какие функции выполняет конденсатор? =))) хехе ражаль и плакаль =)

-----
power and the money money and the power





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 07 сентября 2006 23:09
· Личное сообщение · #20

doctor Ice
Это подфорум для новичков, грех смеяться. Вместо прочтения ненужных топиков напиши лучше еще один вирус, этож круто - загубить кому-нить систему, убить накопленную годами инфу и т.п., самоутвердись и повесь себе табличку на шею "Золотой пизды колпак"



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 08 сентября 2006 03:19 · Поправил: Asterix
· Личное сообщение · #21

doctor Ice
да мне нравится как написано у Григорьева, хотя на тот момент когда я писал свой пост
я в него еще не смотрел

по-существу твоего сообщения..
я не понял, ты нашел повод попонтоваться? Или пришел оскорбить некоторых участников
форума? - за это в правилах(пункт4) полагается бан



Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 08 сентября 2006 03:26
· Личное сообщение · #22

Asterix
просто стока постов посвященных sbb это отжиг. особенно после моего второго поста.

-----
power and the money money and the power




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 08 сентября 2006 03:39
· Личное сообщение · #23

Asterix пишет:
doctor Ice
да мне нравится как написано у Григорьева, хотя на тот момент когда я писал свой пост
я в него еще не смотрел

в кого не смотрел? ...очень вы интересно составили предложение....

-----
power and the money money and the power




Ранг: 36.9 (посетитель)
Активность: 0.050
Статус: Участник

Создано: 08 сентября 2006 10:50
· Личное сообщение · #24

Вот понеслось..Люди это форум новичков!А не оффтоп!


 eXeL@B —› Вопросы новичков —› SBB EAX,EAX
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати