Регистры, шл и бинарные в сборке - PullRequest
0 голосов
/ 26 марта 2019

Я надеюсь, что кто-то может помочь мне через фрагмент кода, который у меня есть, так как мне сложно. Язык ассемблера является новым для меня, и я читал книгу «Практический анализ вредоносных программ», и мне трудно ее полностью понять. Вот что я понимаю из кода ниже:

13 добавляется в var_C, который хранится в памяти. 10 добавляется сверху. 13 + 10 = 23 в двоичном коде, то есть 0001 0111. Мы сдвигаемся влево на 1, что дает нам: 0010 1110 (46 в десятичном виде). Последние две строки над условным переходом меня смущают. И я не совсем уверен, что прошел через это правильно. Но я могу подтвердить, что 46 был ответ, который я искал. Однако кто-нибудь может подтвердить, что мои методы были правильными? А как насчет последних двух строк над условным переходом? Любая помощь приветствуется

lea eax, [ebp+var_18]
mov [esp], eax
....
....
mov [ebp+var_C], 13
add [ebp+var_C], 10
shl [ebp+var_C], 1
mov eax, [ebp+var_18]
cmp eax, [ebp+var_C]
jnz short loc_4015F7
...