char* ReadNumericFormat = "%i";
int Read(void)
{
int Storage;
__asm
{
LEA EAX, [Storage]
PUSH EAX
PUSH DWORD PTR [ReadNumericFormat]
CALL DWORD PTR [scanf]
ADD ESP, 8
MOV EAX, DWORD PTR [Storage]
}
}
, когда пользователь вводит «023919», процедура возвращается 19.
Это функция или темнота - это стандарт?Почему результаты scanf отличаются от пользовательского ввода?
Вы используете встроенный ассемблер для замены одной строки кода на C? Либо это упражнение для изучения встроенного ассемблера, либо вы действительно хотите узнать что-то об оптимизации. :-) –
@Paul Tomblin: Я пытаюсь уменьшить код-байты. – Behrooz
в этом случае это вариант 2. –