![]() |
eXeL@B —› Вопросы новичков —› SBB EAX,EAX |
Посл.ответ | Сообщение |
|
Создано: 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 обнуляет регистр?! ----- Никто не знает столько, сколько не знаю я ![]() |
|
Создано: 06 сентября 2006 03:23 · Личное сообщение · #2 |
|
Создано: 06 сентября 2006 03:29 · Личное сообщение · #3 |
|
Создано: 06 сентября 2006 03:30 · Личное сообщение · #4 так меня отругали =( Команда SBB складывает второй операнд (SRC) с флагом CF и вычитает результат из первого операнда (DEST). Результат вычитания присваивается первому операнду (DEST), и флаги устанавливаются соответствующим образом. При вычитании из операнда-слова непосредственного байтового значения это непосредственное значение сначала расширяется знаком. ----- power and the money money and the power ![]() |
|
Создано: 06 сентября 2006 03:36 · Личное сообщение · #5 |
|
Создано: 06 сентября 2006 04:13 · Поправил: Satanael · Личное сообщение · #6 |
|
Создано: 06 сентября 2006 04:22 · Личное сообщение · #7 |
|
Создано: 06 сентября 2006 04:32 · Поправил: Satanael · Личное сообщение · #8 а точно блин чё мои мозги не работаю. Если посмтреть на тот участок получается что eax будет равен 0 и после neg, он тоже не изменит значение регистра eax. Ведь sbb eax,eax всегда ноль даёт точно также как и sub eax,eax, без обращения внимания на флаги. ----- Никто не знает столько, сколько не знаю я ![]() |
|
Создано: 06 сентября 2006 04:35 · Поправил: Asterix · Личное сообщение · #9 |
|
Создано: 06 сентября 2006 04:41 · Личное сообщение · #10 |
|
Создано: 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 по результату беззнакового сравнения ----- Всем привет, я вернулся ![]() |
|
Создано: 06 сентября 2006 05:28 · Личное сообщение · #12 |
|
Создано: 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 позволяет просто реали- зовать вычитание чисел любого размера. ![]() |
|
Создано: 06 сентября 2006 15:52 · Личное сообщение · #14 Команда sbb используется для выполнения вычитания старших частей значений многобайтных операндов с учетом возможного предыдущего заема при вычитании младших частей значений этих операндов. ;выполнить вычитание 64-битных значений: vich_1-vich_2
----- -=истина где-то рядом=- ![]() |
|
Создано: 06 сентября 2006 16:56 · Личное сообщение · #15 |
|
Создано: 07 сентября 2006 02:32 · Личное сообщение · #16 Satanael пишет: надо на асм больше налегать Это такая защита от "высокоуровневых программистов". Раньше(в прошлом веке) там стояло бы cmp ecx,1 jxx xxxxx Но так как теперь даже дети это знают, то с легкой руки какого-то борца с крякерами ставят sbb и neg Правда у этого приема тоже "длинная борода". Я видел несколько модификаций ![]() ![]() |
|
Создано: 07 сентября 2006 07:18 · Личное сообщение · #17 |
|
Создано: 07 сентября 2006 13:08 · Личное сообщение · #18 AlexZ, вероятно имеется введу "материальная часть"... Анекдот в тему: Сбили значит русского пилота над Ираком на новеньком Су, ну и пытают, мол говори как самалет устроен, что за радар, что за пушки стоят и т.д. Что только с пилотом не делали, ничего не сказал. Вобщем матчасть учить нужно было... ----- -=истина где-то рядом=- ![]() |
|
Создано: 07 сентября 2006 22:22 · Личное сообщение · #19 РЖУНИМАГУ!!! УГАГАГАГАГАГА ! крякиры кросавчеги. это же надо стока базара вокруг SBB развести. топег надо в юмор. непонятно че не понравилось этому товарищу Asterix пишет: мля, вот ведь понапишут наверное исчерпывающий ответ из доков от интел =) похоже он ему показался слишком заумным как и товарищу Satanael. хехе и правда откуда челу знать про флаг цф если он про арифметические команды асма нихрена не знает. вот я знаете ковыряю одну плату.... никто не подскажет какие функции выполняет конденсатор? =))) хехе ражаль и плакаль =) ----- power and the money money and the power ![]() |
|
Создано: 07 сентября 2006 23:09 · Личное сообщение · #20 |
|
Создано: 08 сентября 2006 03:19 · Поправил: Asterix · Личное сообщение · #21 doctor Ice да мне нравится как написано у Григорьева, хотя на тот момент когда я писал свой пост я в него еще не смотрел по-существу твоего сообщения.. я не понял, ты нашел повод попонтоваться? Или пришел оскорбить некоторых участников форума? - за это в правилах(пункт4) полагается бан ![]() |
|
Создано: 08 сентября 2006 03:26 · Личное сообщение · #22 |
|
Создано: 08 сентября 2006 03:39 · Личное сообщение · #23 |
|
Создано: 08 сентября 2006 10:50 · Личное сообщение · #24 |
![]() |
eXeL@B —› Вопросы новичков —› SBB EAX,EAX |