Der „Lock“-Befehl im x86-Assembly ist ein Präfix, das den ausschließlichen Besitz des Busses für den nachfolgenden Befehl erzwingt. Dadurch wird sichergestellt, dass die CPU für die Dauer dieser Anweisung die vollständige Kontrolle über die Cache-Zeile hat.
Entgegen der allgemeinen Auffassung führt das Präfix „lock“ nicht dazu, dass die CPU gesperrt wird den Bus auf unbestimmte Zeit. Die Sperre wird nach der Ausführung der nachfolgenden Anweisung aufgehoben. Dadurch kann die CPU die optimale Leistung aufrechterhalten, indem sie den Bus nur dann sperrt, wenn dies unbedingt erforderlich ist.
Der von Ihnen bereitgestellte Codeausschnitt implementiert ein atomares Inkrement eines langen Wortes bei ein Speicherort, der durch den Wert im ECX-Register angegeben wird:
Das Ergebnis ist, dass die Variable atomar um erhöht wird 1, und das EAX-Register wird auf 0 gesetzt, wenn der neue Wert 0 ist, andernfalls 1. Beachten Sie, dass es sich bei dieser Operation um eine Inkrementierung und nicht um eine Addition handelt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3