Se você fosse olhar para os registros de trabalho em sua CPU, então você está correto eles vão mudar muito (muito).
Se você fosse escrever um programa para inspecionar e despejar o conteúdo dos registradores (e isso não é muito difícil se você souber C, linguagem assembler para sua cpu e como integrar os dois (veja o manual do GCC)), então você não os veria mudando (muito). Mesmo que eles sejam. Então, por que isso acontece?
Portanto, seu programa é executado, executa algum código (que configura os registradores para fazer o que quer que esteja fazendo). Este código, em seguida, mostra os registros, mas neste ponto os valores de registro já convergiram para o que eles precisam estar ao executar este código, então acabamos imprimindo os mesmos valores todas as vezes.
Como, sensatamente, olhamos para os registros?
Precisamos de uma coisa chamada depurador ou rastreador.
-
Um depurador permite que você defina um ponto de interrupção em algum lugar que você deseja examinar. Você pode definir pontos de interrupção em vários lugares.
-
Um rastreador registrará informações em pontos regulares, possivelmente após cada instrução. (Os rastreadores farão com que o programa funcione devagar, pois estarão gastando mais tempo rastreando a execução do programa real.)
Um depurador geralmente tem um rastreador. Um tipo de rastreador é o passo único, onde você diz ao programa para fazer uma instrução. Outra é dizer para rastrear (executar e registrar informações de rastreio em um arquivo).