2021-03-25 21:03:15 +00:00
# iced [](https://crates.io/crates/iced-x86) [](https://www.nuget.org/packages/iced/) [](https://pypi.org/project/iced-x86/) [](https://www.npmjs.com/package/iced-x86) [](https://github.com/icedland/iced/actions) [](https://codecov.io/gh/icedland/iced)
2018-09-07 20:48:32 +00:00
2018-09-21 19:30:08 +00:00
< img align = "right" width = "160px" height = "160px" src = "logo.png" >
2021-03-09 18:22:14 +00:00
iced is a blazing fast and correct x86 (16/32/64-bit) instruction decoder, disassembler and assembler.
2020-02-10 19:03:39 +00:00
2021-08-31 17:20:10 +00:00
- 👍 Supports all Intel and AMD instructions
- 👍 Correct: All instructions are tested and iced has been tested against other disassemblers/assemblers (xed, gas, objdump, masm, dumpbin, nasm, ndisasm) and fuzzed
- 👍 Supports .NET, Rust, Python, JavaScript (WebAssembly)
- 👍 The formatter supports masm, nasm, gas (AT& T), Intel (XED) and there are many options to customize the output
- 👍 Blazing fast: Decodes >250 MB/s and decode+format >130 MB/s (Rust, [see here ](https://github.com/icedland/disas-bench/tree/a865849deacfb6c33ee0e78f3a3ad7f4c82099f5#results ))
- 👍 Small decoded instructions, only 40 bytes and the decoder doesn't allocate any memory
- 👍 Create instructions with code assembler, eg. `asm.mov(eax, edx)`
- 👍 The encoder can be used to re-encode decoded instructions at any address
- 👍 API to get instruction info, eg. read/written registers, memory and rflags bits; CPUID feature flag, control flow info, etc
- 👍 License: MIT
2018-09-05 23:29:23 +00:00
2021-03-22 11:22:17 +00:00
# Examples
2020-01-24 17:00:21 +00:00
2021-01-26 16:51:12 +00:00
- Rust: [README ](https://github.com/icedland/iced/blob/master/src/rust/iced-x86/README.md )
2021-03-22 11:22:17 +00:00
- .NET: [README ](https://github.com/icedland/iced/blob/master/src/csharp/Intel/README.md )
2021-01-26 16:51:12 +00:00
- Python: [README ](https://github.com/icedland/iced/blob/master/src/rust/iced-x86-py/README.md )
- JavaScript + WebAssembly: [README ](https://github.com/icedland/iced/blob/master/src/rust/iced-x86-js/README.md )
2022-05-25 21:50:35 +00:00
- Lua: [README ](https://github.com/icedland/iced/blob/master/src/rust/iced-x86-lua/README.md )
2020-02-10 19:03:39 +00:00
2018-09-07 19:33:05 +00:00
# License
2018-09-05 23:29:23 +00:00
2019-01-01 12:40:59 +00:00
MIT
2018-09-21 19:30:08 +00:00
2018-12-26 15:00:56 +00:00
# Icon
2018-09-21 19:30:08 +00:00
Logo `processor` by [Creative Stall ](https://thenounproject.com/creativestall/ ) from the Noun Project