Ich möchte einen einfachen Code (oder Algorithmus) schreiben, um Überlaufflag zu setzen/löschen.können Sie mir helfen?Wie kann ich Überlauf-Flag in x86-Assembly setzen?
Antwort
Zum Einstellen der Overflow flag(OF) - Bit 11 of EFLAGS Verwendung (in MASM Syntax)
pushf ; mov EFLAGS to stack
bts dword ptr [esp], 11 ; set OF flag
popf ; write it back to status register
und jeweils verwenden folgenden wird die von Flag zurückgesetzt:
pushf ; mov EFLAGS to stack
btr dword ptr [esp], 11 ; reset OF flag
popf ; write it back to status register
'or' oder' and' mit einem Speicherziel ist weniger uops als 'bts [mem], imm auf Intel-CPUs. Selbst mit einer sofortigen Bitzahl sind 'bts' und Freunde mit einem Speicherziel nicht so effizient, also vermeide sie im Allgemeinen mit Speicheroperanden, außer wenn du einen atomaren (' lock') Test-and-set benötigst. –
Viele Befehle klare OF
als Nebenwirkung, zum Beispiel test
. Als solche können Sie etwas wie test eax, eax
schreiben und das wird OF
löschen, obwohl es andere Flags beeinflussen wird. Du hast nicht angegeben, ob das erlaubt ist.
Um OF
einzustellen, können Sie einige Operationen ausführen, die es einstellen. Fügen Sie zum Beispiel 1 zur größten positiven Zahl: mov al, 0x7f; add al, 1
Alternativ können Sie eine Kopie des Flags auf dem Stapel machen mit pushf
, ändern Sie es nach Ihren Wünschen und es dann popf
mit zurück.
Sie sollten in Erwägung ziehen, Ihre Antwort hier zu löschen und sie in das Duplikat zu verschieben. Oder indem Sie diese Frage markieren und einen Moderator bitten, alle seine Antworten in das Duplikat einzufügen. –
- 1. Kopieren Null endende Zeichenfolge einschließlich endet 0 in x86Assembly (MASM)
- 2. Wie kann ich Bildhintergrund für linearout setzen?
- 3. Wie kann ich den Klassennamen dynamisch setzen?
- 4. Wie kann ich RenderingHints global setzen?
- 5. Wie kann ich die Umgebungsvariable 'ANDROID_HOME' setzen?
- 6. Wie kann ich Zeichen wie "{" in URLs setzen?
- 7. Kann ich Tabindex in JavaScript dynamisch setzen?
- 8. Wie kann ich NULL in die Tabelle in Doctrine setzen
- 9. Kann ich Firebug Breakpoints in jsFiddle setzen?
- 10. Kann ich Enum Startwert in Java setzen?
- 11. Wie kann ich einzelne Bits in einem Float bekommen/setzen?
- 12. OpenGL: Wie kann ich die Skybox in die Unendlichkeit setzen
- 13. Wie kann ich Integer als Argument in jq setzen?
- 14. wie kann ich Parameter in Elasticsearch setzen curl
- 15. Wie kann ich in Yii ein Datum auf NULL setzen?
- 16. Wie kann ich einen tief verschachtelten Wert in Immutable.js setzen?
- 17. Wie kann ich zwei div Elemente in eine Zeile setzen?
- 18. Wie kann ich Wert in einer Auswahl mit angularJS setzen
- 19. Wie kann ich Daten in TextField von DatePicker setzen
- 20. Wie kann ich die Zertifikate in CURL setzen
- 21. Wie kann ich den ApplicationController in Ember.Router setzen
- 22. Wie kann ich http in searchBar case insensitive setzen?
- 23. Wie kann ich einen Standardpfad für NERDTree in vim setzen
- 24. Wie kann ich Schleife und setzen Wert in einem Feld
- 25. Wie kann ich Bild in Three.js Textur setzen
- 26. Wie kann ich das Zeitlimit für get_file_contents in PHP setzen?
- 27. Wie kann ich x-www-form-urlencoded in SoapUI setzen?
- 28. Wie kann ich den in ListPreference geprüften Wert setzen
- 29. Wie kann ich Cookies (Serverseite) in Meteor setzen und bekommen?
- 30. Wie kann ich den Eingabewert eines Formulars in Javascript setzen?
http://stackoverflow.com/questions/1406783/flags-register-can-we-read-oder-write-them-directly – ABuckau