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. –