NOPים מיותרים? בשביל מה? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

NOPים מיותרים? בשביל מה?


MasterDK

Recommended Posts

היי יש לי שאלה.

להלן קוד קטן שקימפלתי:

int main() { return 0; }

וזה האסמבלי שלו שהתקבל אחרי קימפול:


08048374: 55 push %ebp
8048375: 89 e5 mov %esp,%ebp
8048377: b8 00 00 00 00 mov $0×0,%eax
804837c: 5d pop %ebp
804837d: c3 ret
804837e: 90 nop
804837f: 90 nop

הנא עוד קוד

void main() {}

ושוב האסמבלי:


8048374: 55 push %ebp
8048375: 89 e5 mov %esp,%ebp
8048377: 5d pop %ebp
8048378: c3 ret
8048379: 90 nop
804837a: 90 nop
804837b: 90 nop
804837c: 90 nop
804837d: 90 nop
804837e: 90 nop
804837f: 90 nop

כמות ה NOPים בקוד השני מפצה על חוסר הפקודה mov eax, 0x0 (שהיא לוקחת 5 ביתים) ולכן בקודה שני יש 5 NOPים יותר.

השאלה למה בכלל צריך אותם?מה זה נותן?

תודה רבה מראש!

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...