Nochwas zum lernen *g*:
Die $sim-Anweisung hat als einzigen Effekt, dass Warteschleifen rausgeworfen werden. So muss man z.B. bei einer LCD-Initialisierung nicht diese (im Simulator ewig dauernden) Delays abwarten muss. Da hier ja keine Hardware dranhängt, die sich beschweren könnte, können diese Delays in der Simulation also ausgeschlossen werden.

Nachtrag: Man kann auch ein mit $sim kompiliertes Programm auf den AVR werfen. Nur wird sich der halt u.U. seltsam verhalten.