VM Instruktionen und ihre Wechselwirkung mit dem Stack fuer VM6 --------------------------------------------------------------- Die moeglichen Stackeintraege: --------------------------------------------------------------------------- objref: allgemeine Referenz auf ein Heapobjekt pd_objref: Referenz auf ein Heapobjekt, das primitive Daten enthaelt FP_num: Framepointer, einfacher numerische Wert FP_num: Ruecksprungadresse, einfacher numerische Wert --------------------------------------------------------------------------- Die verwendeten immediate-Werte aus dem Maschinenbefehl ------------------------------------------------------- (const_i) Konstante (n_i) Anzahl (target_i) Sprungziel (nr_i) Nummer ------------------------------------------------------- halt pushc (const_i) ... -> ... pd_objref add ... pd_objref pd_objref -> ... pd_objref sub ... pd_objref pd_objref -> ... pd_objref mul ... pd_objref pd_objref -> ... pd_objref div ... pd_objref pd_objref -> ... pd_objref mod ... pd_objref pd_objref -> ... pd_objref rdint ... -> ... pd_objref wrint ... pd_objref -> ... asf (n_i) ... -> FP_num n-mal objref rsf ... FP_num n-mal objref -> ... pushl (nr_i) ... -> ... objref popl (nr_i) ... objref -> ... eq ... pd_objref pd_objref -> ... pd_objref ne ... pd_objref pd_objref -> ... pd_objref lt ... pd_objref pd_objref -> ... pd_objref le ... pd_objref pd_objref -> ... pd_objref gt ... pd_objref pd_objref -> ... pd_objref ge ... pd_objref pd_objref -> ... pd_objref jmp (target_i) ... -> ... brf (target_i) ... pd_objref -> ... brt (target_i) ... pd_objref -> ... call (target_i) ... -> RA_num ret ... RA_num -> ... drop (n_i) ... n mal objref -> ... pushr ... -> ... objref popr ... objref -> ... dup ... objref -> ... objref objref new (n_i) ... -> ... objref getf (nr_i) ... objref -> ... objref putf (nr_i) ... objref objref -> ... newa ... pd_objref -> ... objref getla ... objref -> ... pd_objref getfa ... objref pd_objref -> ... objref putfa ... objref pd_objref objref -> ... pushn ... -> ... objref refeq ... objref objref -> ... pd_objref refne ... objref objref -> ... pd_objref