Как функция вызова работает с общими регистрами - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь понять, как работает вызов функции в сборке У меня есть строка кода, которую я не уверен, что понимаю.

Из того, что я понимаю, есть функция вызова, ожидающая пользовательский ввод, который кажется целым числом. Затем значение добавляется в регистр eax. Затем сравнивается значение (8CAh), которое считается «правильным» значением, и если значение равно true, программа завершается, если нет, мы переходим к другой строке кода.

Я правильно читаю? И что именно это [ebp + var_10]? Любая помощь приветствуется:)

....
lea eax, [ebp+var_10]
mov [esp], eax
mov ecx, offset __imp__ZSt3cin; std::cin
call _ZNsirsERi ; std::istream::operator>>(int &)
sub esp, 4
mov eax, [ebp+var_10]
cmp eax, 8CAh
jnz loc_401645
...