In a data processing system implementing Dynamic Object Code Translation
(DOCT) for emulating Target system instructions on a Host system, each
Target system instruction has an associated index/offset field and an
associated code tag that identifies whether the Target instruction has
been translated into Host code, and if already translated, whether it is
an entry point, middle, or last instruction in a block of code. When an
emulator encounters a code tag indicating an entry point into a block of
code, execution control is transferred to the corresponding Host code.
Upon completion of the Host code block, execution control is returned to
the emulator, with an indication of the next Target system instruction to
execute. One code tag value is utilized to identify self-modified code.
Another code tag value is utilized to indicate how often untranslated
Target instructions have been interpreted in order to determine when to
perform DOCT.
In einem Datenverarbeitungssystem, das dynamische Objektcode-Übersetzung (DOCT) für die Emulierung von von Zielsystem Anweisungen in einem Wirt System einführt, läßt jede Zielsystem Anweisung ein verbundenes index/offset auffangen und einen verbundenen Codeumbau, der kennzeichnet, ob, die Zielanweisung, in Wirt Code übersetzt worden ist und wenn sie bereits übersetzt wird, ob es ein Eingang, eine Mitte oder eine letzte Anweisung in einem Block des Codes ist. Wenn ein Nacheiferer einen Codeumbau antrifft, einen Eingang in einen Block des Codes anzuzeigen, wird Durchführung Steuerung auf den entsprechenden Wirt Code gebracht. Nach Beendigung des Wirt Codeblockes, wird Durchführung Steuerung zum Nacheiferer, mit einer Anzeige über die folgende Zielsystem Anweisung durchzuführen zurückgebracht. Ein Codeumbauwert wird verwendet, um Selbst-geänderten Code zu kennzeichnen. Ein anderer Codeumbauwert wird verwendet, um anzuzeigen, wie häufig unübersetzte Zielanweisungen gedeutet worden sind, um festzustellen, wann man DOCT durchführt.