Начните с учебника по ассемблеру, например авторства Зубкова.
PS. Перед асмом почитайте по устройству микропроцессорных систем что-нибудь. Потом по языкам программирования.
Ключевое слово - BadUSB, на основе флешки такое делают. Если совсем серьезно заморочиться хотите - изучайте микроконтроллеры, принципы работы USB, C для написания прошивки. Потом появятся более специфические вопросы.
Создаете нужное число потоков. Каждый поток обращается к очереди заданий, выбирает оттуда свое (синхронизация потоков тут!) и выполняет его. Как выполнил - делает что там еще нужно и возвращается в начало описанного для треда проецесса. Все. Дополнительно можно прикрутить проверку аварийного завершения тредов и их восстановления.
Если вы пытаетесь отлаживать MZPE-файл в линухе - наверняка ничего не выйдет. Попробуйте винду 64-битную в качестве среды для запуска debug-сервера и отладки. Если сработает - причина в этом.