170181. lajstromszámú szabadalom • Digitális kiszámítógép nulla-, egy-, két- és háromcímes utasítások végrehajtására
170181 7 8 utasításai rendelkeznek- A GET utasítás a címzés szempontjából közönséges memóriareferenciás utasítás: az effektív cím meghatározása ugyanazokban a vezérlő szekvenciákban történik, mint egyéb memóriareferenciás utasítások esetén, ilyen szempontból 5 tehát a GET utasítás nem okoz többlet áramköröket a számítógépben. A GET utasítás végrehajtásakor a speicifikált tárolócím meghatározásával egyidejűleg a központi egység nufladmes állapotból egycímes állapotba, egy- 10 címesből kétcímesbe ill. kétcímesből háromdmes állapotba kerül. Egydmes állapotba tehát egy, kéttímes állapotba kettő, háromcímesbe pedig három GET utasítás végrehajtása után kerül a központi vezérlőegység. A GET utasítás(ok) végrehajtása során 15 pedig egy, két vagy három tárolócím meghatározására kerül sor, melyek átmenetileg a számítógép egy-egy belső regiszterében tárolódnak. Előnyös olyan konvendó alkalmazása, hogy az első GET utasítás céloperandusra, az esetleges második és harmadik GET 20 utasítás forrásoperandus(ok>ra mutat, mert ilyen módon a második és harmadik GET utasítás által kijelölt tárolóhely tartalma biztosan változatlan, így a megdmzett operandusok az említett (más szavakkal: a nem nuflacímes módban végrehajtott) GET utasítá- 25 sok végrehajtásakor azonnal kiolvashatók a tárolóból, és a címek helyett a kiolvasott operandusok írhatók a regiszter(ek)be. Az előnyösen nulladmes alap-utasításrendszer utasításainak végrehajtása a központi egység egycímes, 30 kétcímes illetve háromdmes utasításvégrehajtási módjában a nulladmes módban történő végrehajtáshoz képest a következőképpen módosul: Ha egydmes módban (tehát közvetlenül egy GET utasítás végrehajtása után) hajtunk végre olyan utasí- 35 tást, mely nufiadmes módban egy akkumulátorregiszterre vonatkozik (regiszter típusú utasítás), az akkumulátorregiszter szerepét a GET által megcímzett memóriahely veszi át. Az utasításkód akkumulátorregisztert kijelölő bitjeinek értéke érdektelen, 40 hiszen az operandus ilyenkor nem az akkumulátorregiszterből, hanem az operatív tárolóból kerül elő, illetve az eredmény ide íródik (store típusú utasítás). Ha az előbbi utasítást kétcímes módban (közvetlenül két GET utasítás végrehajtása után) hajtjuk 45 végre, a forrás operandust a célszerű konvenció szerint a második GET utasítás szolgáltatja, az eredmény az első GET utasítás által címzett tárolóhelyre kerül. (Store-Store utasítások) Az említett regiszter típusú utasítások háromdmes 50 módban történő végrehajtásának általában nincs értelme. Ha egydmes módban (közvetlenül egy GET utasítás végrehajtása után) olyan utasítást hajtunk végre, mely nuflacímes módban két akkumulátorregiszterre 55 vonatkozik (regiszter-regiszter utasítások), az egyik akkumulátorregiszter szerepét a GET által megcímzett memóriahely veszi át, a művelet a memóriahely és a másik akkumulátorregiszter között megy végbe. Az utasításnak az egyik akkumulátorregiszter kiválasz- 50 tását előíró bitjei érdektelenné válnak, ezen bitek egyike felhasználható arra, hogy a tároló - és akkumulátoroperandusok közöttti forrás-cél viszonyt meghatározzák. (Regiszter-Store utasítások) Ha az említett Regiszter-Regiszter utasításokat 55 kétdmes módban (közvetlenül két GET utasítás végrehajtása után) hajtjuk végre, mindkét akkumulátorregiszter kiválasztását előíró bitek érdektelenné válnak, a művelet a célszerű konvendó szerint a második GET utasítás végrehajtása során meghatározott (és az erre a célra kijelölt regiszterben őrzött) forrásoperandus és az első GET utasítással megcímzett tárolóhely tartalma (céloperandus) között megy végbe. (Store-Store utasítások) Ugyanezeket a Regiszter-Regiszter utasításokat háromdmes módban (közvetlenül három GET utasítás végrehajtása után) végrehajtva a művelet a célszerű konvenció szerint a második és harmadik GET utasítás által megadott forrásoperandusok között megy végbe, és az eredmény az operatív memóriának az első GET utasítással megcímzett tárolóhelyére kerül. (Store-Store-Store utasítások) Ha a kisszámítógép alap-utasításkészlete Regiszter-Store típusú műveleti utasításokat is tartalmaz, egydmes módban ezen utasítások értelemszerűen Store-Store utasításokként hajtódnak végre: az egyik operandust a GET utasítás, a másodikat közvetlenül a végrehajtandó utasítás jelöli ki az operatív tárolóban. Kétcímes módban az utasítás háromdmes Store-Store utasításként hajtódik végre. Háromdmes módban a végrehajtásnak nincs értelme. Ha az utasításkészlet Store-típusú utasításokat is tartalmaz, egydmes módban ezen utasítások értelemszerűen Store-Store utasításokként hajtódnak végre, pl. úgy, hogy az operandust a GET utasítás írja elő, a művelet eredménye a végrehajtandó utasítás által kijelölt tárolóhelyre kerül. A nulladmes utasításrendszerek mindig tartalmaznak néhány memóriareferenciás utasítást a legfontosabb egycímes utasítások végrehajtására. Ezek az utasítások helyettesíthetők GET és nulladmes utasítások kombinádójával, mindazonáltal a leggyakoribb egycímes utasításoknak célszerű önállóan szerepelniük, mert a programokban való előfordulásuk gyakorisága miatt ezek maximális sebességű végrehajtására kell törekedni. (Tipikusan ilyenek az akkumulátormemória közötti adatmozgatást előíró utasítások). A központi vezérlőegység minden GET-től eltérő utasítás végrehajtása után nulladmes utasításvégrehajtási módba kerül. Az előbbiek alapján látható, hogy a központi vezérlőegység nulla-, egy-, két- és háromdmes utasításvégrehajtási módjainak alkalmazásával olyan utasításrendszer alakítható ki, mely alapvetően nulladmes, és így a nulladmes utasításrendszerek minden előnyös tulajdonságával rendelkezik, ugyanakkor egyetlen utasítás (GET) bevezetésével - mely utasítás végrehajtásának hardware igénye jelentéktelen - lehetőség nyílik az összes akkumulátorregiszterre hivatkozó művelet memóriahelyeken történő végrehajtására, egy-, két- és háromdmes opdós utasítások létrehozására, úgy, hogy a műveletek többtímes végrehajtását ugyanazok az utasítások (utasításkódok) írják elő, mint a megfelelő nulladmes műveletekét. Maga a műveleti végrehajtás többcímes módban csak abban különbözik a nulladmes módtól, hogy egy vagy két operandust nem az akkumulátorregíszterek, hanem egyéb hardware regiszterek szolgáltatnak és az eredmény akkumulátorregiszter helyett egyéb hardware regiszterbe íródhat, ahonnan eltárolódik a me-, , 4