Ist aber nicht realistisch.
Entweder du opferst xy Stunden für ASM-Ticks oder für ein sauberes, schnelles Design. Mal abgesehen handelt es sich hier um Freizeitbeschäftigungen, richtig? Da ist beides ohnehin nicht drin.
Sag dem Compiler lieber, dass du speziell für die CPU erzeugten Code möchtest, lies dich ein bisschen ein (z.B.
hier) und erzeuge les- & wartbaren Code. Und kenne deinen Compiler.
Gelegentlich ist es sinnvoll, dem Compiler ein paar Hilfen zu geben, wenn er bestimmte Sachen nicht automatisch (weg)optimiert. Zumindest GCC und LLVM sind da aber besser als jeder Programmierer. Abgesehen davon hat niemand was davon, wenn du per Hand auf einen Pentium 180 Stepping 3 optimierst - den hat eh keiner.
Aggro: Nutzt du eigentlich auch MMX oder eher nicht? Weil der Compiler kann das auch nutzen, wenn du ihm davon erzählst... und MMX ist schneller als kein MMX.
Schlusswort: Es gibt einen Grund für handoptimierten ASM-Code: Videocodecs. Riesige Datenmengen, unglaubliche Wiederholungen des gleichen Codes, komplizierte Operationen. Da gibt's ein paar Blogposts von den x264- und ffmpeg-Leuten, die da ein paar Sachen ausplaudern. Das trifft aber nicht wirklich auf OS-Dev zu.
Gruß,
Svenska,
und tschuldigung für die langen Posts von mir.
edit: aktuellere Fassung verlinkt, von 2008 statt von 2007... also auch nicht ultramodern, aber gut.