Reputation: 113
I'm looking for a up-to-date database (machine readable) containing information of assembly instructions. Capstone does some info, but it doesn't include descriptions of each instruction.
Intel's Intel Architecture Developer's Manuals (volumes 2A and 2B) does contain it but it's isn't programmatically accessible.
Upvotes: 3
Views: 999
Reputation: 363999
https://www.felixcloutier.com/x86/ and https://github.com/HJLebbink/asm-dude/wiki are based on (different tweaks to) the same PDF-scrape script to pull info directly from Intel's vol.2 PDF (and / or their "future extensions PDF"). Specifically, https://github.com/HJLebbink/asm-dude/tree/master/VS/Python/intel-doc-2-md for the asm-dude Github.
Actually, the asm-dude repo includes AsmDudeData.xml which might be directly useful. (Apparently "asm-dude" is a plugin for Visual Studio. I've only looked at the repo for its wiki which includes an up-to-date html scrape including future-extensions instructions like ENQCMD
More of an actual database / table, Intel's XED (X86 Encoder Decoder) library comes with an XML of all instructions, including how their operands work. It's what uops.info uses as a basis for automated microbenchmarking of every form of every instruction, plus some manual test-cases for some instructions known to have special effects. Uops.info's page has the current instructions.xml
and some info about how they use it.
Andreas Abel, creator of uops.info, has also posted https://github.com/andreas-abel/XED-to-XML - a tool to convert XED's database to XML.
Upvotes: 5
Reputation: 107
There is something in 'iced' project, though have no idea of source of the data and its format
Upvotes: 0
Reputation: 337
I try to use this file from NASM compiler. It has the advantage to be very light (about 500KB), but not well documented and hard to understand and parse (attributs aren't well separated, architecture is packed with flags for example).
One issue I have is that some operands doesn't have the size defined, apparently the size must be determined by looking at the encoding rules and/or flags.
Look at this question.
Upvotes: 0
Reputation: 113
It's better then nothing.
Here's a XML It's from Intel but used in a webapp https://software.intel.com/sites/landingpage/IntrinsicsGuide If the link is dead, check where it gets the newer version from the page from your the network debugger in your browser
Upvotes: 2