j.silvestre escreveu:pessoal o seguinte:
o reg935 é o header do p89lpc935 da nxp.
o while(1) era apenas para debug.
na verdade esta rotina faz parte de um programa maior.
A característica de uma variável local é a de ser criada e destruída, dentro do bloco onde ela foi criada. Enquanto o bloco estiver ativo, a variável tb estará, SE, ela for utilizada em algum outro lugar dentro daquele bloco.
O Keil está otimizando o seu código.
Eu, quando escrevo pro 51, uso o nível zero de otimização no primeiro DEBUG do programa. Se o programa rodar no nível zero, então, eu altero o nível para o default, nível 8, e recompilo.
Nesse nível de otimização, o Keil remove código duplicado, código inútil e otimiza tb a utilização das variáveis.
Como exemplo, vc pode criar duas funções, em que as 2 últimas instruções sejam idênticas. No nível zero, todas as instruções serão executadas. Das duas funções. No nível 8, o programa ao invés de seguir nas instruções da primeira função, pode usar as 2 últimas instruções da função dois. Porque ? Porque é mais simples introduzir um JMP no código do que acrescentar código redundante. É mais barato colocar um JMP, do que copiar o código, já que o JMP ocupa menos espaço pra ser excutado.
Alterou o programa ? Claro ! O programa foi OTIMIZADO! Mas, continua rodando igual ou melhor ao que foi no nível zero. Otimização. Só isso.
[]'s
RETI.