Skip to content

Midi12/cx_assembler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cx_assembler

A c++20 constexpr x86 assembler

Purpose

  • Learning x86 assembly encoding in a practical and fun way
  • Having an easy framework to generate assembly instruction at compile time

Practical examples

See examples folder.

Want to add instruction ?

  1. Add it to the instruction db file (to the instdb, prefix_db and prefix_0fdb arrays)
  2. Code the encoder in encoder.hpp or add it to an existing encoder if applicable.
  3. Add a test file =)

Supported instructions ?

No extension set is currently being supported, only a subset of x86 instructions is currently being implemented. SIB (Scale Index Base) byte is not fully implemented yet

TODOs ?

  • Implement jcc and jmp instructions

Credits

About

A c++20 constexpr x86 assembler

Topics

Resources

License

Stars

Watchers

Forks