Falls du ein einfach zu parsendes Dokument suchst, kannst du gerne mal hier vorbeischauen:
https://github.com/zyantific/zydis-d...tructions.json
Die Datenbasis ist anhand der Intel Dokumentation, den Datafiles von Intel XED, den Tabellen von LLVM und der Website "sandpile.org" zusammengestellt und sollte - bis auf die ganz neuen Instructions aus der "Tremont" Microarchitektur (Edit: Jetzt auch vorhanden, im Future Branch) - sämtliche momentan verfügbaren ISA-Extensions beinhalten. Das JSON-File dient als Input für einen Generator, der dann die Decoder Tabellen für unseren Zydis Disassembler erzeugt; wird von uns also auch regelmäßig auf den neusten Stand gebracht.
Edit:
Dass CMP eine Subtraktion durchführt, wurde ja schon erwähnt. Dadurch impliziert werden die Flags CF, OF, SF, ZF, AF und PF entsprechend der Regeln für Subtraktion gesetzt. Also CF, wenn es einen Übertrag gab; OF, wenn ein Overflow stattgefunden hat, etc. Im Intel SDM gibt es unter dem Stichwort "Jcc — Jump if Condition Is Met" eine Seite mit allen konditionalen Sprüngen. Hier steht an der Seite auch immer dabei, welches Flag auf welche Bedingung geprüft wird. Z.B. im Falle von JNE wäre das "Jump short if not equal (ZF=0)" (Ergebnis der Subtraktion über CMP ergab nicht 0 -> also waren die verglichenen nicht Werte identisch -> zero-flag wurde nicht gesetzt (=0)).