Ich gehe gerade MSIL durch und stelle fest, dass es eine Menge nop Anweisungen in der MSIL.
Im MSDN-Artikel heißt es, dass sie keine Aktion ausführen und zum Auffüllen des Platzes verwendet werden, wenn der Opcode gepatcht wird. Sie werden viel mehr in Debug-Builds als in Release-Builds verwendet.
Ich weiß, dass diese Art von Anweisungen in Assembler-Sprachen verwendet werden, um spätere Anweisungen auszurichten, aber warum sind MSIL nops in MSIL erforderlich?
(Anmerkung des Herausgebers: Die akzeptierte Antwort bezieht sich auf Maschinencode-NOPs, nicht auf MSIL/CIL-NOPs, nach denen die Frage ursprünglich gestellt wurde).
19 Stimmen
Es gibt in diesen Antworten eine große Verwirrung zwischen der MSIL nop-Anweisung, die vom Sprachcompiler in die Assemblerdatei ausgegeben wird, und den x86 nop-Anweisungen (auf dieser Plattform), die vom JIT-Compiler ausgegeben werden, wenn die Assemblerdatei ausgeführt wird. [Idealerweise sollte diese Frage in 2 verschiedene Fragen aufgeteilt werden: Zweck von MSIL::nop? und Zweck von native platform nop?