I have yet to see a good use for self-modifying
code. Other than
subroutines and interupts placing data into a code segement the only
self modifying code I have seen was for the 8088.
Ben.
On the CDC6600 - and, for that matter most machine architectures that
preceded the IBM /360 - the subroutine call instruction writes a jump to the
return address as the first word of the subroutine and then branches to the
second. Before Manchester invented "B-lines" (index registers)
self-modifying code was needed even for indexing.
It is almost a definition of a modern architecture that code need not be
(and often cannot be) self-modifying.
Andy