Mach es z.B. so: Schiebe das High-Byte (also die höherwertigen acht Bit)
mit lsr um eine Stelle nach rechts. Dadurch wird der Inhalt des
niederwertigsten Bits ins Carry-Flag geschoben und von links eine Null
reingeschoben. Dann wendest Du sofort danach (ohne dass in der
Zwischenzeit das Carry verändert wird!!!) auf das Low-Byte ror an.
Dadurch wird das Low-Byte um eine Stelle nach rechts geschoben und von
links wandert der Übertrag von der ersten Operation rein. Wenn Du das
viermal hintereinander machst, hast Du die oberen zwölf Bits von Deinem
16-Bit-Wort auf die unteren zwölf Stellen verschoben. Ich denke, das
ist es, was Du wolltest...