# darm
A light-weight and efficient ARMv7/Thumb/Thumb2 disassembler written in C with
Python bindings. VFP/Neon/SIMD (it's all the same) support is upcoming!
# Example code
Using the *darm* library is fairly straightforward - just call the right
function with the right parameter and you're all set. Following is an example
of disassembling an ARMv7 instruction in C and printing its string
representation to stdout.
```c
#include <stdio.h>
#include "darm.h"
int main()
{
darm_t d; darm_str_t str;
if(darm_armv7_disasm(&d, 0x42424242) == 0 &&
darm_str2(&d, &str, 1) == 0) {
printf("-> %s\n", str.total);
}
}
```
And the exact same program, but using the Python bindings.
```python
import darm
print str(darm.disasm_armv7(0x42424242))
```
# License
The darm library is released under the **BSD 3-Clause License**, also known
as **BSD Simplified**.
# Support & Contact
For support and contact, feel free to check out the
[official Darm website][website], the IRC channel, **#darm** at freenode,
or you can always reach me on my email: [jurriaanbremer@gmail.com][email].
[website]: http://darm.re/
[email]: mailto:jurriaanbremer@gmail.com
# Acknowledgement
(See also the [Contributors][contributors] page on [darm.re][].)
Many thanks to [Valentin Pistol][pistol] without whom this project would never
have seen the light of day.
Thanks to [Peter Geissler][blasty], [Jay Little][computerality],
[Michael Laurenzano][mlaurenzano], [Jonathan Tetteroo][jtetteroo],
[Joshua Drake][jduck], and [rednovae][] for contributions, suggestions,
additional tests, etc.
[contributors]: http://darm.re/contributors
[darm.re]: http://darm.re/
[pistol]: https://github.com/pistol/
[blasty]: https://github.com/blasty/
[computerality]: https://github.com/computerality
[mlaurenzano]: https://github.com/mlaurenzano
[jtetteroo]: https://github.com/j-tetteroo
[jduck]: https://github.com/jduck
[rednovae]: https://github.com/endeav0r