Почему вы хотите сделать это в ассемблере (а не в C, или C ++ и т. Д.)?
Уже существует множество крошечных операционных систем свободного программного обеспечения.Вы можете посмотреть на некоторые из них (например, на sourceforge ).
А современные ПК немного сложнее, чем те, что были десять лет назад.Например, современные клавиатуры и мыши часто являются устройствами USB, поэтому вам часто нужно иметь подсистему USB в ядре вашей операционной системы, чтобы иметь возможность читать с клавиатуры.
Я думаю, что изучение существующих бесплатных операционных системядро систем и / или участие в них, вероятно, научат вас большему и могут быть более увлекательными.