I have a structure which represents a disassembled instruction (opcode_id, operands_info...) which is similar (but less complex) to the one that udis86 creates when it disassembles a x86/x64 instruction.
The project consists in 2 parts:
1) Convert from udis86 structure (from a decoded instruction) to my own structure (let's call it INSTR_INFO)
2) Giving a INSTR_INFO structure, you create (assemble) the machine instruction (x86/x64) according to the instruction information in the structure. I require that you make a direct conversion to machine code, I mean, I don't allow that you convert the structure to a string representing the assembly instruction and you later call YASM/FASM/etc. to generate the assembled instruction.
I require the project to be developed in C or C++ under Visual Studio.
If you need more information about the structure itself or any questions, let me know please.