gerade Zählvariablen sind prädestiniert dafür, in den nicht volatilen Registern zu liegen.
Ja, das wären sie, wenn zwischendurch nicht anderer Code ausgeführt würde, welcher die Register potentiell überschreiben täte.
Eine kurze schleife, ohne Funktionsaufrufe (CALL), da darfst du das gerne machen, also wenn dein Codestrück die ganze Zeit über die volle Kontrolle über die Register besitzt.
Man kann sich bei sich selbst als Debugger registrieren.
Da kann dann bei einer
Exception ein anderer Thread diese Register auslesen, ohne beim Lesen (CodeAusführen) "diese" Register zu beeinflussen, genauso wie es der Debugger von Delphi macht.