I implemented something similar in software --- an Atlas I machine-code emulator which output old and new addresses values of all registers accessed by each instruction as the target executed. AFAIK, it was used in earnest only once, in an attempt to locate a bug in a compiler which had defied all conventional attacks. The hapless programmer sat down with a pile of lineprinter output inches thick (the pile, that is --- to start with, anyway) and spent most of a day working through the test trace. Result: emulated test executed correctly, as specified! Implications of this discouraging experience being too gruesome to contemplate, the bug remained to lurk; the emulator was quietly retired in disgrace. WFL On 3/16/18, Henry Baker <hbaker1@pipeline.com> wrote:
Problems with XCT (execute one instruction):
* no clean/obvious semantics; semantics have to be worked out for each different instruction being "executed"
* only one level of execute (at least for IBM)
* originally used for *tables* of instructions, but what about variable-length instructions? (Similar problem to "skip" instructions)
* what are the semantics in the case of interrupts?
We now have architectures which support "virtual machines"; analogous problems at much larger scale.
At 04:47 PM 3/15/2018, rcs@xmission.com wrote:
PS: Does anyone else miss the XCT instruction? The 7094 & PDP6/10 had it, but it seems to have vanished. I guess it's an architectural nightmare for the hardware folks. --Rich
_______________________________________________ math-fun mailing list math-fun@mailman.xmission.com https://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun