you can use keystone
https://github.com/keystone-engine/keystone for parsing the assembly and then use unicorn
https://github.com/unicorn-engine/unicorn to execute the instructions, which have all the hooks you want on every instruction execution. if you want to emulate complete pe file then you can use qiling
https://github.com/qilingframework/qiling.