Part of the issue, for modern machines, is that the
hardware gets in
the way. If you change code, the I-cache doesn't change (in machines
I'm familiar with) so the old instruction may still execute. This
makes instruction modification a tricky business. Debuggers do it,
operating systems do it -- and both have to pay attention to all the
cache magic you have to perform for it to be right.
This reminds me of a point I wanted to make earlier and forgot - another
big issue us that SOFTWARE gets in the way! - todays computing world is
much more oriented toward sharing code, and many systems support multiple
execution threads of a single copy in core - it causes bad things to
happen when one of those threads changes the code :-)
Regards,
Dave
--
dave04a (at) Dave Dunfield
dunfield (dot) Firmware development services & tools:
www.dunfield.com
com Vintage computing equipment collector.
http://www.parse.com/~ddunfield/museum/index.html