minio/asm2plan9s

GitHub: minio/asm2plan9s

Stars: 182 | Forks: 40

# asm2plan9s Tool to generate BYTE sequences for Go assembly as generated by YASM/GAS (for Intel) or GAS (for ARM). ## Installation Make sure either YASM or GAS is installed on your platform. Note that YASM takes precedence over GAS if both are installed. ##### GAS (Intel/AMD64 or ARM): Typically `as` or `gas` (GNU Assembler) will already be installed as it is part of binutils, but if need be, you can eg. do as follows: sudo apt-get install build-essential ##### YASM (Intel/AMD64): $ yasm --version yasm 1.2.0 Compiled on Sep 30 2013. Copyright (c) 2001-2011 Peter Johnson and other Yasm developers. Run yasm --license for licensing overview and summary. ### asm2plan9s `go get -u github.com/minio/asm2plan9s` ## Example $ more example.s // VPADDQ XMM0,XMM1,XMM8 $ asm2plan9s example.s $ echo example.s LONG $0xd471c1c4; BYTE $0xc0 // VPADDQ XMM0,XMM1,XMM8 The instruction to be assembled needs to start with a `//` preceded by either a single space or a tab character. The preceding characters will be overwitten by the correct sequence (irrespective of its contents) so when changing the instruction, rerunning `asm2plan9s` will update the BYTE sequence generated. ## Starting position of instruction ## asmfmt asm2plan9s works nicely together with [asmfmt](https://github.com/klauspost/asmfmt) in order to format the assembly code (in a similar style to `go fmt`). ## Extensive example For a more extensive example see (for Intel) [compressAvx_amd64.s](https://github.com/minio/blake2b-simd/blob/master/compressAvx_amd64.s) or (for ARM) [highwayhash_arm64.s](https://github.com/minio/highwayhash/blob/master/highwayhash_arm64.s). ## License Released under the Apache License v2.0. You can find the complete text in the file LICENSE.
标签:EVTX分析