Ich bin neu in der x86-Assemblersprache, ich habe eine signierte Ganzzahl im Register eax
gespeichert, und ich möchte überprüfen, ob die Zahl negativ oder positiv ist. Um dies zu tun, habe ich bt
Anweisung verwendet, um das erste Bit zu überprüfen.
Folgendes habe ich getan:
%Vor% bt
trägt das erste Bit zum Tragen des Flags, und ich habe jnc
verwendet, um zu prüfen, ob das Übertragsflag 0 oder 1 ist.
Wenn es 1 ist, sollte es eine negative Zahl sein und negative Anweisungen ...
Allerdings ist die Ausgabe unvorhersehbar, manchmal habe ich eine positive und es erkennt es als eine negative Zahl. Mache ich etwas falsch?
EDIT: Mir ist gerade klar geworden, dass es etwas mit Endianess zu tun haben könnte. Es prüft tatsächlich das letzte Bit anstelle des ersten Bits. Lassen Sie mich versuchen, bt
, 7