• 検索結果がありません。

教育用仮想計算機の設計

N/A
N/A
Protected

Academic year: 2021

シェア "教育用仮想計算機の設計"

Copied!
15
0
0

読み込み中.... (全文を見る)

全文

(1)

教育用仮想計算機の設計  

木 村   等  

中 村 邦 彦  

Ⅰまえがき  

従来計算機教育と言えば,ややもすれば特定のコンパイラ、一言語にかたよっ   た教育が行なわれがちであったが,その弊害については各方面から指摘されて   

(1)  

きた。コンパイラ、一言語は異なる計算機間に.おける互換性にすく・トれ,計算機内   部の仕組みをよく知らなくてもプログラムが書けることなど大きな長所がある   ので,コソ/くイチ一書語に.よる教育が全面的に.良くないと言うのではない。  

特に何らかの必要があって計算機を使用しようとする人にとっては,適当なニコ  

ンパイラ  一言語を学習することは不可欠と言える。   

しかしながら大学における−・般教養としての計算機教育を行なう場合に.は問   題があると思われる。例えば,コンパイラー言語は必然的に計算機をブラック   ボックス化してしまうので,計算機の内部構造に対する理解が得られにくい。  

一・つの言語に.かたよった教育は,後に他の言語を学ぶ際に返ってマイナスにな   ることがある。特にFORTRANを先に習った場合COBOIJは習いにくいと   言われている。計算機内部の,したがってまたデータの内部表現に対する知識   が得られにくいために・数値計算に誤差の伴うことの理解が得られむ羊・くい。計算   枚の速さに対する実感が?かみに・くいために非効率的なプログラムを書きやす   い等々があげられる。   

これらの欠点は,計算機の内部構造と不可今の関係にあるアセンブリ・一言語  

による教育を行なえば,かなりの程度改善されると思われるが,現代の大型に 

して複雑な計算機のアセンブリ・一言語をそのまま初心者向け薮育転用いたので  

(1)−松信,計算機序論,共立出版(1973)の第7章に計算機教育に関する問題がま  

とめられている。   

(2)

第ち1巻 第6号  

− 2 −  

660  

は返って逆効果になりかねない。逆にミニコン,マイコンなどと呼ばれる小規   模な計算磯を用いる方法も考えられるが,命令セットが教育的であることはま   ず望めない上に.,多人数が実習を行なうには無理がある。   

そこで我々は教育を目的とした簡単な‥命令体系をもつ新しい計算磯を設計   し,そのアセンブラ・−・とシミュ・レー・タを作成することにした。以下 

(EducationalAssemblySYstem) 

(2)  

介する。  

(3)   

なおこの種の教育用仮想計算機としては,Ⅹnu他のMIXがある。これは   アルゴリズムの記述及びその実行のた捌こ設計されたらしく,命令体系,数値   の内部表現等にふ、て,現実の計算機とはかなり異なった.ものとなっている。  

EASYは,討算磯の仕組み,デ−・タの内部表現といったことも教え易いように   したいということからMIXとはまたかなり異なったものとなった。  

ⅠⅠ′EASYの基本構成  

仮想計算椀EASYは教育用ということで設計に際し主に以下の4点に注意   を払づた。  

(1)内部構造が単純で,しかも現実の計算機に似ていること。  

(2)命令体系が簡単で扱い易いものであること。  

(3)入出力が容易におこなえること。  

(4)ェラ・一対策が十分に施されていること。   

次にEASYのハ・−・ドゥェアの基本部分を示す。  

・46種の命令セットをもつ中央演算処理装置   

・16KBの内部記憶装置。  

(4)   

・ 4台の磁気ディスク装置からなる外部記憶装置。  

(2)E阜SYについては,すでにEASY使用手引番を用意したので参考にしてほしい。  

(3)Ⅹnuth,D属.,The Art of Computer Programming,Vol.1・Addison   Wesley(1968)の中で定義されている仮想計算機。MTXとはIBM7070や360,   

PDPllなど,16の計算機名の数字を加えて平均をとり,それをp・−・マ数字で表わ   したものである。  

(4)一応ディスク装置と呼ぶが,EASYでは順次■アクセスのみが前されている。   

(3)

教育用仮想計算横の設討  

− ∂・−  

661   

・ カード読み取り装置及びラインプリンタ。   

以下各装置について,もう少し詳しく紹介する。   

現実の計算枚はバイトマシン系のものが主流であるのでEASYもバイトマ   シンに近い構成をとり,情報の基本的な単位をバイト(1バイト=8ピッり   とした。読み書き及び演算の基本的な単位.である語は4バイトとし,1語で0   から4294967295まで,又は負数を2の補数で表わして−2147483648から2147   483647まで,文字としてこは4文字を表現することができる。中小の計算機では  

1語を2バイトにしているものが多いが,これでは表現できる数値の範囲が狭   すぎる(例えば符号何の場合−32768から32767まで)ので1語を4バイトと   長くとった。数値の表現法としセは∴符号のない二進数と負数を2の補数で表   わす符号付二進数表現の2種摂々こ留め,事務計算によく使われる十進数表現や,  

科学技術計算濫.よく使われる浮動小数点方式の表現は採用しなかった。   

アキヱ.ムレ・一夕は,最近ほこれを複数個備えている計算枚が多いので,これ   を汎用レジスタとして3個置いた。3個の汎用レジスタはそれぞれA,B,C  

と名付け,AとBはひとつづきの2語長のレジスタのように.扱うことが可能   である。これは1語の数値同士の盾を2語長としたいこと,除算:に.おいて1語   の除数に対しては被除数を2語長として扱いたいためである。   

その他のレジスタとしては,16ビット長のプログラムカウンタ,1語長の命   令レジスタ,1ビットの桁あふれ表示器,等しい,小さい,大きい3つの値を  

と皐比較表示器を置いた。普通の計算枚ではコンディション・コ、−ドというも   のをきめて,各種の演算に.よりその値がセットされるようになっているが,  

EASYではこれを比較表示器としで比較演算濫よってのみセットされるよう′に  単純化した。   

内部記憶装置は4kW=16KBとしたが,これは特に深い意味ぽなく,ホス   トマシンの記憶容量内で適当に定あたものである。記憶域につけるアドレスは   バイトマシンのように1バイトごとに0から3f、FF(16進)に付けられてい   る。   

外部記憶と入出力装置はそれぞれユ・ニット番号に.より参照され,1回の入出 

(4)

欝51巻 第6号  

劇 4 −  

662  

力命令に.より1レコ・−ドが転送される。レコ・−・ド長は装置に周定されているも   のとし,ブロッキングについては考慮しなかった。   

EASYの機械命令の構成については後述することとし,ここでは命令の形式  について述べる。命令はすべて1語で表現される。  

0   8  

16   31  

C I R I   A   

ここでCはオペレーション・コ・−ド部,Rほレジスタ指定部,Aはアドレス   部である。大部分の命令はRで示されるレジスタの内容とAで示されるメモ、  

リ・−・の内容との間でオペレー・ションCを行ない,結果をRで示されるレジス   タに格納するものと,Aの値をそのまま演算守こ用いるイミディエイト命令で占   められる。アドレス指定方式をこ・れだ桝こ限零すると不便になりすぎるので,  

一部のデータ転送命令と分岐命令におい七はアドレスをレジスタで間接指定で  きるように.した。多くの計算機はインデックス・レジスタを用いたアドレス指   定の機能をもっているが,命令の記述形式及び機械命令形式が復雑に.なるこ  

と,プログラムをデ/ミッグする際に命令コ・−ドとレジスタの内容をみても,デ   一夕のアドレスを求めるためにはインデックス・レジスタの内容と≠ィスプレ  

(5)  

イスメソトをいちいち十六進数で加算しなければならなくなることを考え,こ   り機能はもたせなかった。  

ⅠⅠⅠ命令セゝト  

EASYの横根命令は,転送命令4種,代数演算命令6種,論理演算命令6   種,比較命令3種,分岐命令10種,シフト・回転命令10種,入出力命令3種,  

十進数編集命令2種,その他2種,合わせて46種とした。これは現代の計算機   における主要な命令を含みかつ命令体系の対称性を保つように決定した。命令   体系は本来,効率のよいプログラムが簡単に書けるように決定されるべきもの   であろうが,EASYの場合ほ教育用ということで,多少プログラて・−・に工夫し   てもらわなければならないように.なっている。アドレスのインデックス修飾の  

(5)EASYは計算枚の内部コ・−ドを十六進数で印刷するように.なっている。   

(5)

教育用仮想計算機の設計  

ー ∂ −  

663  

機能は先に述べた理由により設けなかったので,例えば代数演算命令に・おいて   多数のデータを繰返し演算する場合,命令のアドレス部を書き替える必要があ   るが,特定の単語長を書き替える命令は含まれていない。草た普通の計算機の   コンディション・コ、−ノドに当る比較表示器は比較命令に・よってこのみ影響を受け   るようにしたので条件付き分岐を行なうときに能率が悪くなるが,これは命令   体系のわかりやす・さの力が重要であると考えた。要は学習者に速く命令体系を   理解し,アルゴリズム上の工夫及びプログラミング上の工夫を行なう方に進ん   で欲しいということである。   

−・般にアセンブリ・一言語でプログラミングする際にほ入出力の制御及び数値  

と文字との相互変換がわずらわしい。入出力はス叫/く・−ノミイザ、−・コ・−ルにする   か直接チャネル制御を行なうのが普通であり,データの変換は,ライブラリ・−  

サブル・−チシを使うか,自分のプログラム内で行なうかしなければならない。  

初心者をこの問題で苦しめるのを避けるためにEASYでは特別の入出力命令   とデ1一夕変換命令を用意した。   

また各命勧与は仮想的実行時間を定め,プログラム実行時間が予測できるよ   うに.した。これはプログラミング上の工夫の一・つの目安を与えるためである。  

これは仮想計算磯上での実行時間であるので単位ほ特にないが,原則として,  

1回メモリーをアクセスするごとに1単位とし∴複雑な命令については,実在   の計算棟のデータを参考にして定めた。入出力命令は各外部装置の動作速度に   依存するはずであり,また並列処理や連続動作をさせることに・よっても全体と  

しての処理時間が異なってくるのであるが,EASYの入出力命令はすべて同一  のCPU時間を消費するものとし,入出力動作終了までのbpuの待時間につ   し」ては考慮しなかった。   

その他上記入出力命令にも関係するが,計算故に.とっ宅本来不可欠の磯能で   ある割込み処理については不要であると思われるので省略した。   

以上がEASYの命令セットの主な特徴である。個々の命令に?いては付録の  

−・覧表,及び使用手引書を参考にして−ほしい。   

(6)

第51巻 第6号   664  

・− β −・  

ⅠⅤ アセンブリ、一言語  

EASYのアセンブリ・一言語では機械命令の他に.ORG,EQU,DC,DS,  

ENDのアセンブラー命令5種,DISPIJAY,TRACEのデ′ミッグ命令2種を使  

えるようにした。それぞれの命令については付録を参照してもらうことに・して   言語の文法忙ついてその要点を述べる。   

文(ステ、−トメソりは1行,1から72カラムに記述し,73から80カラムは   無視する。文はレー・ベル欄,オペレーション・コー・ド欄,オ・ベランド欄,コメ  

ント欄に分けられ,第1カラムだけが特別な意韓を持つ以外は自由に記述でき   る。即ちレー・ベル欄は第1カ、ラムから始めなければならないが,以下の欄は1   つ以上の空白により区別される。また第1カラムは*を記入すると1行全部が  

コメント欄となり,%を記入するとデ/ミッグ文とみなされる。レ・−ベルとオペ   レー・ショシの記述の仕方は工夫の余地が余り残されていないが,オペランドの   記述法は簡単かつ統一・した方が望ましい。これは,(1)3つの汎用レジスタA,  

B,Cのうちり1つを指定するレジスタ指定,(2)レジスタによ・るアドレスの   間接指定(この場合(A),(B),(C)のうらの1つを記入する)。(3)アドレ   ス,イミディ・エイトデータを指定する式の3通りだ桝こ.した(ただしDC命   令だけは例外)。式は1こっの項か,複数の項を演算子で代数的に思合したもの  

とし,演算子は+・−*/で順に加減乗除算を表わす。項は.定数,名札,ロケ・− 

ションカウンタ$とし,定数は,ニ進定数∴十進定数,十六進定数,文字定数   とした。式の値はすべて16ビット長として評価される。   

アセンブリ、一言語の欠点の1つとしてプログラムの誤りを発見しにくいこと   があげられるが,そのためにデバッグ命令を設けた。   

血spLAY命令は,その命令の直前の命令が実行されたとき′,指定されたメ  

モリ・一領域の内容が印刷され,TRA由命令は,実行される命令が,指定され  

たメモリー内にある間,1命令実行毎に内部レジスタの値を印刷するものであ  

る。後の使用例2に例を示したので参照してはしい。   

(7)

ー 7 −−  

教育用仮想計算機の設計   665  

Ⅴ 使用法 

EASYは多人数バッチ処理用の簡単なモニタ・−・,アセンブラ・−,シミ 

レ、−  

タにより構成され,多数のプログラムを連続処理することができる。そのため   の制御カ1q・ドとして/ASMか−・ドと/DATAか−Iドを用いるようにしたo以   下に2つの使用例を示す。   

使用例1は小さい方から200個の素数を求め,それを印刷するプ占グラムで  

(6)  

ある。素数を求めるアルゴリズムほKnuthの教科書のものを借用した。見て   使用例1  

EDuく▲TZONAL ASSEMBt.Y SYSTEM   JOB NAME EXAMPL亡  

/ASM EX▲HPしE●⊂Pい−10000000   

L∝.OP.ADDRESS  

STN S O U R⊂E  しIS T  

● EXAMPJE PROGR▲M ・小  TA8しE OF Pf!1MES  

l−勺一▲・ち′▲丁る9012J▲﹁q:bり・A901−勺︸血﹁■′▲丁89012うヰ5もー8901■t一▲.く′人789012J▲▼ち   ュ⊥⊥ューューュl12222222222うう︐うぅうう︐∋さヰヰヰヰヰ一々ヰヰヰうぅ5ううう  

」MT   【QU    200  

LP E(iU   も  

OPEN   亡くIU l  

⊂」OS亡  E(iU O   Olく6    0000H  

ST∧RT LI A・う  

ST AIN  

Li A◆1  

ST AIJ  

ST付PRM J Aり  

AI Atl   ST AIJ   SL   A●2  

AI AヽPlllME  

L B●N   MV    (Å〉18  

し     AIJ  

⊂J AlJMT   βE PRINT  

NEXTN  し     A・N  

∧l Aヽ2  

ST A●N  

LJ    ⊂12   TEST MV    ▲I⊂  

Sし    Å▼2   AI AIPRIME  

MV A●くA〉  

ST AヽPflMK  

し      A●N  

NUM8ヒR OF PllIMES TO βE しISTED   UNIT NUMBER OF いN∈ PRINTEll  

しET N ■ さ    L亡T J■ ユ    N IS PRLME  LETJ▼J◆1    LどT PTA8り)1N  

IFJLLNT TH∈N GO TO PR[NT   EしSE ÅDVANCE N   

」【T N ■ N ◆ 2  

LET K ■ 2● KIS ASSIGNE【〉 TO R亡6・⊂  

LET PRI利こ・・FTAB(K)  

DiVID【N 8Y PIIMK  

IF ftEM人IN【)ER■○,NIS NOT PRIM【  

SO 60 TO NEXTN●  

IF qUOTIENTく一戸RHlこ rH∈N GO TO 5TRPRM   亡」SEIN⊂REASE K 8Yl一 人ND GO TO T〔ST  

︐U100⊥02ヰ⊂⊥080く之Uクー−丁†︵>▲二︹<リ▲:OhO▲ 018  

0F O OO OOO9F O O︵8F OF OOO910F200うO10◆ 000110⊥U10010000000010100100⊥000  00000000000000000000000000000000  

00000000010000000Z OOOO0000⊥000−○ ㈹80叫80捕8080︐OAO3100AO叫桐畑8040犯80粥う080購∽DO舶0010叩︐030 1010010⊥lO︶OlO l Oェ311ヽ二〇〇う2⊥212⊥2   

0●8UOq8UOヰ8COヰOUOヰ8UO●さUOヰlUOヰ8C OO OO⊥⊥l12222︐∋う︐ヰヰヰヰうく′5ノム:b︸▲r−7T  OOOO0000000000000000000000000000 00000000000000000000000000000000  

ユ2   PRMK   8●O   NEXTN   ÅヽP11MK   STRPRM   Dl  

(1   βE   C   Bし   人Ⅰ    ⊂11  

8     T亡ST  

● PRINT SE(;HENT   

PI=NT Io⊂  

PuT   8Aし   L【  

● PUT ON∈ LINE   PuTしN  しⅠ  

し  

AI   ST  

くVTI AI  

▲Ⅰ   し  

∧Ⅰ  

OP亡N THE FIし∈ OF しINE PRtNTER   PuT PAGE AND PRINT TITしE   く」EAR THE しIN亡 BuFFER  

RE6一8 KとEPS THE NUM8∈R OF PRINTE亡IPRIM【S    REG.⊂ls THE く0UNTERIN ▲ L川E   SET CH入R OPERAT10N⊂Ot〉∈ 丁く〉CVT之  

HODIFY THE く:H人RINSTl‡U⊂TlON   

しP◆OP亡N   しP●L【lUF   く●CJR8UF   8▼く〉   

⊂ヽO   AlくHAROP   A■2◆」tさUF   A−ぐ∨丁2   8●1  

⊂■1   A●く:VT2   人●10  

⊥UOJO O8一ヒヰ▲⊥ヰ人  00■亡0  000U O O√−0  0100  0110000<﹀  0000  0▲U OOO000   ′○′021  2000†−200  0000  ﹂q0000000  もノヽ′一  々人う8ノ■ノ▲■ノ  

ヽ一ヽ︸⊥⊥  ⊥O10ュl︵︶⊥  

0◆8U Oヰ8U▲0ヽ▲OC  ■○∧○▲占▼︽  9999A▲‖▲⁚・∧  

00∧U O O O▲U二〇二U00∧>  

0<V▲U O OO0000▲U O  

(6)前掲事pp.143−144  

(8)

第51巻 第6号  

ー・・−・β −  

666  

EDUCATIoIIAJ ASS〔M8LY SYST【M  

し0∈・OPADDR∈SS   sTN S O U H(:【 しIS T  

JO8 NAM亡 EXAHPしE  

0080 0β00 00⊂ヰ   6789012=J∧▼ら⁚b7一員ニ0123ヰうる78901ク二っ=†上ノ上789012う ぅqニ︶う▲Ybム云Ybb上Yb色こご 7−−−−7−7−888さ8888889999  

ST AICVT2  

0084   0088   00b(  

00く:0   00⊂ヰ   00C8   00C⊂  

00C〉0   00D4   00()8   000⊂  

工2ヰ00A OU800 009100AO U90 00100001000 0 0000000000  

0000020ら⊥00 00000000000  

ユニb︻ノうO A55AうA ︐⊥lうO12う123  

MV   SL   AI   MV  

⊂vT2   D(  

CI   8トほ   PuT  

⊂I   BN〔  

HJT   HALT  

A18   A◆2   AヽPR!ME   AI(A〉  

0   く●10   CVTl   しPILβUF   8●LHT   PUTしN  

CH相INSTfモU(T10NIS TO8EINSERTE【〉  

IF L川E8UFFERIS NOT Fu」し THEN60 To⊂VTI   ELSE PUT A しINE   

IF ALL PRIMES ARE PR川T〔D   TH〔N HAしT FJSE く;O TO PuTLN  

O CLEAR L=ほ BUFFER ROUTINE  

L  ﹂  

■ ′ヽ 一し  

tノ′ヽ0血・血・A O 90009E O  11−00ュ00  ∧>O n:0<V O O   

O l l l102  0010001  ▲∵ヰ︻J tノ▲︻■う二︺  

O l︻J l12︵  

︵U斗8′ヽ○ヰ8  ︻亡︻ヒニヒニヒF亡.亡﹁  000∧VO O O  O O O▲U二U O O  

R8UF L   L I  RI MV  

Al  

〔1   8N亡  

β   

A●BLANK   8IしBUF  

(8〉tA   B■ヰ   B●」8UF◆1うも  

⊂LRl   く⊂)  

R H hb    し︼T On  

★ サN J P Uし   8P P  

A  

A▼▲.▲ l−●−¶ 2PヰS  

0⊥  T9T   

▲︹   A R        U D 6SSS H C︺′しリリQSN N DD O︵D DDO Dr−n二ヒ  

00F⊂  

0100   010ヰ   010(1   010C   O142   01丁8   019う   0198   

019C  

⊂ANDINATES FOR PR川ES   NUM8ER OF PRIM〔S   

⊂HAfモ OPERATION COC〉E  

LIS T O F P RIM E S 一  

O K r亡  

K R F N8M  M A U    ▲∵A−・  

P  

000  

<>00  

︵U O O  

血.ム▼ 人.   ▲U⁚U▲U  

O∧>00<︶2  

nV▲・ム・▲・▲ 0  000000  0▲.A.4 ■斗▲8  ▲∧00000  

n﹀血・▲・▲▼▲▼︵U  

DIA(;NOSTl⊂ MESSA6亡S G引1ERAT【D  

ERROR20尊大Å丁 891NVAL=〉OPE糾T10N HA」T  

l−⊥⊥⊥  

勺r■丁 9−7■了二711t一︵7qノ ー﹂了 〇二了 9■J97   ク▼b:Uノ02丁ヰ0′029ノク二9︻ノー一n▼んフ1  11クZ=Jム†人†員′ち■ム一7・りーさ9∩﹀0▲⊥2  

ュ⊥⊥⊥  

9⊥7⁚∋:ユi⊥−了7ュ丁797丁97ュ︵Jヽ−   

1′00′○つh7・qノ∧■うーウー∧ ■埠18︻ノ29′021  1ュ 22ヽ一tノ▲﹁ノーつ ム7二了=A 990ュ2  

1ュ⊥  

丁9一丁7・1 919997−9︻J hJ91171   ュヽ−0ノl′○へ′8:q ハ︶a: 07■>19一>10  11−22ヽ一一斗■>一ヽ′ノ077・一九 9901−2  

q一勺一l1 9ユニ′ユノー二プ l1991ヽ′ 仏79ヽ−   1■ノ∧﹀くノ9ノ○■⊥84<>丁4 0ム︶人うl AYヰ∧V9  ュ⊥⊥つ■︺■tノ・払︑ノ■ノ ′○︼丁7 ▲び99011  

1丁 79■了一7ヽ一▲9q:9ュl l19■17 9▲J T  

ュ4 94 9ノま′q−97へ′9′0207勺ノ0白V  

l12プユノA ▲叫・lノ′○′b789q⁚0⊥l  

S▲7▲J9n7t一⊥l久一▲つ ⊥99tノー 7T l−7・1  

⊥l■⊥  

tノ79ュ▲︸9勺■9⊥9︼了一丁∋二フ⊥⊥tノ⊥l∧J  ヽ二7:ユニさへ一9ノ▲/ ■7■ノl■了一■28亡ノ■9′0  ュ 122ヽ−・ル.血.︳ノ′〇一bニー−▲八Y0 9001  

111  

−⊥3丁9■Jニー■ヽ−9丁7−T19⊥丁79一7t一  lノ ー へT t一8ち′⊥・〇AT Oノ○ヽ一⊥7ヰl▲出■一  ⊥122ヽ−ヰ▲▼ノ■〇一bこー▲邑二89n=O1  ⊥⊥ュ   l lっ▲つ■J・q・曝一つ一〇ノウT▲︾▲89001  11■l  

SuHH▲RY 王  PRO(;R∧M SI之E ■ 2ヰ08(09る8H)8YTEs    しP ■ 3 PAG亡S    ⊂Pu TIHE 曽  80855   EXCp ●  21  

わかるように,素数をみつける部分は全体のプログラムの半分以下であるが,  

結果を1行に10個ずつ印刷するための部分が長くなっている。1行に・1個ずつ   印刷するようにすれば約10命令ほどに短縮できると思われるので,出力を見易   い形に編集することが大変なことがわかる。アセンブリ、−エラーが1つある   が,これは第69文に誤ったオペしハーション・コ・−・ドを記入したためである。   

使用例2はディスクぺの入出力を行なっているものであるが,途中にデバッ   

(9)

教育用仮想計算戚の設計   −・9 −・  

667  

使用例 2  

EDU⊂ATIONAし ASS引18しY SYST〔M  

/ASH FILEAC⊂ESSTEST   

LOく. OP. ADDRESS  

STN S(〉 u R(:E L Z S T  

.JO8 NAH亡 FIL∈∧⊂⊂ESSTEST  

TEST PRO6RAM OFl/0 0PERAT10NS  

ュ23ヰら6丁8901二ユ:†一っ▲ 丁890⊥23ヰ亡ノ′0789012うqう6丁8901ク二∋:嶋︳フ▲  

⊥l−1111111▲ュ222222222クー勺一B二JtJ勺︶tJヽ=3〇一斗▲†ん⊥†▲∵■ム  

1  

も  

1   0   之0   28   0   ÅlREく●HS(;  

β●120  

⊂●⊂LEÅR   DISK●OPEN   A●0  

∧.1   10−RE⊂+MS6   DISK●REC   AヽNRC   OuTPuT   DISK●⊂しOS∈  

DISK●OPEト】  

LP●OPEN   DISlこIREC   EOF   LP●RE⊂  

lNPUT   DISIく●⊂LOSE  

R U UリリU‖﹀G LU    ■八丁  E一しU U T T U   Q◎︵W QO①▲R −−・A︽U−1▼1日U−・N=n OOE⊂U O  

EE E E Fヒ0ししnD・1﹂▲∵⊂二P r二b■1・l︐1▲b二n−一P血U●l  

K N S  

S  ∈▲U二し二b  

〓)  

T  

P F  N O  U  

UT 

0ヰ8⊂0年nO⊂▲0ヰ8UOヰさUOヰ8U  O▲U O O l l l12222tノー′勺■勺一人†・†■嶋・嶋  

▲U二じ二U▲U O∧>0000∧︶00∧︶00<V O O▲U OOOOO00000000000<リ000  

ム﹁凸○︵Ul014・B⁚q・■▲U l▲8484000  00血・■斗ヰOUO  

d77■ノ▲0009Tl1000一斗−▲J O▲00  丁77▲0000う0 00000000000000000000  000000000  

00▲U O O<︶<U O O O∧︶0<U O<U OO▲U O O  <V<∨▲U=n O O O O O   

O l−100▲八一⊥▲U二じ二⊥⊥′01一<∨′00土′00  22200⊥﹁▲00 00000000000000000000  <﹀<>▲U100000  

血丁人轟J・b▼血・ノ久︶■一▲八一ノ′○′○′○ヰA亡ノーJ・b6A F■b=A∵⊃=ノム︶▲ハ・ノ︵J  

⊥ll■Jl⊥︿J勺−⊥つ■勺一ら一3こJウユ2▲J3︵J OO O︳Jl⊥ュ22  

IO⊂  」PICLOSE   HLT  

海  

D】SP」ÅY START180TTOM  

⊂L亡AR OR C●E〉りT   ST   ⊂l〔〉くIT   し    く、bLANK  

⊂しRI MV   (A)、C   AI   八一ヰ   S1   8,ヰ   CI BtO   8NE   ⊂」RI   EXIT B     専一響  

qO50   00う4   00さ8   005⊂  

00(〉O   UO6ヰ   0068   00も⊂  

0070  

BしANK D⊂  

RE⊂     DC   00一斗 40斗0 ヰ○ヰ0  

0078 ヰ0ヰ0 4040 00J10J1040  

009ヰ   DS lO8  

80TTOM   

%   【QU\ 事       TRA⊂∈ STARTIOUTPUT・・4  

亡ND STÅRT  

NO DIAく;NOSTIく M亡SSAGE G〔NER八丁ED  

TRA⊂E いST 相DR∈SS†0000P(:∫00小IR,1ヰ000094 A■℃00000948一る88000帥C■9う00柏07  く⊂)一0(G)■0(E〉■0 くL)一O   TRACE いST ∧ODR亡SS−0004P仁一000さIR■14010078 小000000948薫00000078(■93004BO7 (⊂〉tO(G)■0(E〉一0 くし)−O   TRÅ⊂亡 いST At)DR∈SSlOOO8 P⊂■00,0IR■1)020050A−0000009J−8−000000丁8 C■0000000⊂ (C〉■0(G)■0 くE)tO(し)10   TRA⊂EしIST ADDRESS■000C pC■0010】R■36010001A−0000010⊂8−00000000⊂帆4040与040 (⊂)一0(G)■0(E〉■1(し〉■O   TRA⊂EいST 柏ORESS−0010P⊂一001ヰIR−1ヰ000000AtOOOOOOOO8■00000000⊂叫04040ヰ○ く⊂〉一0(6〉一0(E〉一1くL〉櫨0  

TEST RECORD NO●  

TEST RECORD NO・  

TEST RE(ORD NO●  

T亡ST RE⊂ORC〉 NO●  

TEST R亡⊂QRD NOI   TEST R亡⊂ORD NO●  

丁亡ST RECORC〉 NO一   丁EST RE⊂ORD NO●  

TEST RECOIモD NO●  

TEST RE⊂ORO NO●  

TEST R亡くORD NO●  

TEST RE⊂ORD NO●  

TEST RECORD NO●  

TEST RE〔ORD NOI  

TEST R【CORD NO●  

TEST11亡CORD NO●  

TEST R亡⊂ORD NO●  

TEST RE⊂ORD NO◆  

TEST RE(:ORO NO●  

TEST RE(:ORD NO●  

89012︵J.嶋 ■ノ・h▼了▲■090  111⊥l工⊥1−112  

1ヰ00009ヰ1ヰ0100丁81さ020050)も010(,01140000001う000001380AO09ヰ 粥0100丁8  

1AOOOOIJ12さ00001ヰ:沌010000 うる010001∋もObOO013ヰ010070 2AOOOO叫 3う0600†8  

之う0000)4 3も010000 うも0ら8000 さAOOOOO00FO20070 08020070 0AO20074  100002  

∴;∴:..‥−.‥∴ 

= 

ヰ0ヰOJ10ヰ0 ヰ0ヰ040Jl0 40ヰ0ヰ040 ヰ0ヰ0ヰ040 ヰ0ヰ0ヰ040 4040ヰ0ヰOJ1040qOヰ0 ■0ヰ0ヰ0ヰ0   々仰040ヰ01IOヰ040ヰ0 ヰ0ヰ0ヰ040 ヰ0ヰ0ヰ040 −○ヰOqO00 4040ヰ0ヰ0 ヰ0ヰ040ヰ0 ヰ040ヰ0ヰ0   ヰ0叫ヰ0ヰ0 ヰ0ヰ04帥0 40ヰ0ヰ○ヰOJ10ヰ0ヰ040110ヰOqOヰ0 40斗0ヰ0◆0 ヰ04040ヰ0ヰ0ヰ0ヰ○ヰ0   ADDRESS OOO  

ÅDDRESS OO2   ADDRESS OOヰ   ADDRESS OOも   ADDR【SS OO8   ADDRESS OO人   ADDRESS OO⊂  

人DPRESS (〉OE  

○ISPLÅY   DISPしAY   D】SPLAY   DISPL人Y   DISPしAY   DISPLAY   DISPしAY   DIsp」ÅY  

SUHHARY; PROく;RAI疇SIヱE ■ 258く0100=)BYTES LP■ 2PAGES   ⊂Pu TIME●   ヰ10   ∈Xく:P−  bl   

(10)

668   第51巻 第6号   

−JO・− 

グ文を挿入してある。TRACEは最初の5命令に.指定してあり,その間のレジ   スタA,B,Cの変化がリストされている。DISPLAYは最後のHLT命令を   実行した直後のプログラム領域の内容の印刷を指定し七いる。  

ⅤⅠむすび  

以上アセンブリー言語を扱うための教育用仮想計算機EASYの概要を紹介   した。このシステムを使用することにより,教育上いくつかの効果が期待でき   ることはすでに述べたが,山・方アセンブリ、−・言語を使用サーることにより新たな   問題が生ずることも確かである。その中のいくつかは本システムにより解決な   いしは軽減されていると信ずるが,アセンブリ1一言語を使用すろ限り,作成し   たプログラムの内容が,したがってまたそこに記述されているラルゴリズムの   内容がわかりにくくなるという問題は解決できない。本・システムを使用するに   際しては,教育目標を十分に検討し,学習者に.適切な課題を与えるような配慮   が必要になろう。   

次に問題となるのは,上の目的達成のための最適な計算機システムを作成す   ることである。我々は本稿でこれ正対する一応の解答を与えたのであるが,こ   れが絶対的なものだと主張するわけにはいかなし、。今後実際に利用してさらに   検討・改善を加えていきたいと考えている。   

なお本研究は,昭和53年度大学教育方法等改善経費によって行なわれたもの  

である。   

(11)

教育用仮想計算枚の設計  

−Jユーー・  

・/669   

付録IEASY撥械命令−・党表   

恥emonie    lDescri這tion   Operation  

eode   

MOVE,LOADANDSTORE  

L  

Loadregister    OA   

2  

Ll  

T−,e  

IJOadimmediateregister    14   

1  

Sで   Storeregister  OB   

2  

MV  〈(ぎ:)〉,〈(ぎ≡)〉  Moveregister/indirect    33   

2+α   

ARITH.METIC  

A   Add to register  OC   

2  

AI   Addimmediatetoregister    15  

1  

r,e 

S  

SubtIae七fiOm工・egisteェ  OD  

2  

S‡  

Subtractimmediatefrom  

register    16   

1   

MUL   Multiply    2C   10  

e  

DIV   Divide   2D   12   

LOGICAI.  

OE   

2   

Andimmediatewithregister  

1   

Or with register  OF   

2    r,e  

Orimmediatewithregister  18   

1   

ⅩOR   ExclusiveOrwithregister   10   

2  

ⅩORI  

AND   l  Andwithregister・      ANDf      17    OR        ORI   二      ExclusiveOrimmediatewith register  19   

1   

COM■pARISOⅣ  

C   

Comparewithregister   11   

2   

CL  

r,e   

Compar6logicalwithregister・      12   

2  

CI   Compareimmediatewith  

register    1A   

1  

(12)

第51巻 第6号   670  

−ヱ2・−  

Mnemonie   Description   

Operation eode  exeeution time   

BRANCH  

B   

Branchunconditional    23  1   

BE   Branch if equal  24   

1   

BN玉】  

Branehifnotequal    25   

1   

BG   Branch if greater  26   

1   

Bl一撃  

〈(:)〉      BranehiflessoTequal   

27   

1  

BL   Branch if less  28   

1  

BGE   BIanehifg工eate工Orequal    29   

1   

BC   Branch if carry  2A  

1  

BNC   BIanChifnocarI・y   

2王‡   1  

BAL   

r,e   

Branchandlinkregister    13    SHIFTANDROTATE  

SL   Shift left logical  1B   

2  

鱒R  

Shift yight logical  1C  

2  

SRA    Shift right aYithmetic  1D   

2  

RI.   Rotateleft    1E    2 

RR   工,e       2      1F    Rotateright    SLD    Shiftleftlogicaldouble    2E   

2  

SRD   Shiftrightlogicaldouble    2F   

2  

SRAD  

e  

Shiftrightarithmeticdouble  30  

2  

RL  Rotate left double  31   

2  

RRD   Rotate right double  32   

2  

INPtJTANDOVTPUT  

Getrecord  

GET  

u,e  

P11treCOエd   34  1   

IOC  

35  1  

(13)

教育用仮想計算磯の設計  

−J∂−  

671  

Mnemonic    IDescIiption  

Operation eode  exeeution time   

CONVERSION  

2十n/4  

NtJ加Ⅰ  

n′e  

山 Convertto、numeric  87      Converttocharacter  38   

2+n/4   

No opcration 

NOPAND‡王AI。T  

1   

HLT  

NOP   Halt   

39  

〔注意〕γ:レジスタA,B,Cのうちの1つ   β,・弘,れ:式  

α=レジスタ間接指定の数  

%:バイト長,%/4ほ小数以下切捨て  

付録ⅠIEASYアセンブラ命令一覧表   D/Inemoric 

ORG  

e   

EQtT  

e   

五quatesyInbol   

Defineconstant   

biヱ1ary    ー deeima】  DC   ㌢ hexadeeima卜  eharaeterstring・  addressexpression   

DS  

e   

Define storage   

END  

e   

End of program 

付録ⅠⅠⅠデバッグ文  

% TRAcE   a,b  

% DISPLAY al,bl〔,a2,b2〕〔,恥bさ〕岬   a,ai,b,biは式である。  

/   

(14)

第51巻 第6号   672  

ーヱ4 −・  

付録ⅠⅤ 制御文  

/ASM二 50bname〔,CPU=n〕〔,PRINT=m〕  

n:CPU打切り時間  

m:出力ペーージの限度  

/DATA  

データがあるときプログラムとデ1一夕の間に挿入す−る   

付凝V EASY・エ・ラ1・■・・■・メッセ−ジ   ControICard Erro   

lOlZ NO INPUT DATA 

lO2Ⅹ  MISSING/ASM CARD  

lO3W JOB NAME NOT FOUND  

lO4Ⅹ INVALID PARAMETERIN/ASM CARD  

AssemblyErI′OrS  

201Ⅹ ILLEGAL CHARACTERATl−ST COLUMN  

202W LABEL LENGTH EXCEEDS  

203Ⅹ  NO OPERATION FIELD  

204Ⅹ1ILLEGAL OPERATION FIELD   206Ⅹ  MISSING END STATEMENT  

207Y LABEL TABLE OVERFLOW  

208Ⅹ  DOUBLE DEアINITION OF LABEL   209Ⅹ  MISSING OPERAND  

210Ⅹ INVALIDEXPRESSION  

211Ⅹ INVALID OPERANI)IN DC STATEMENT  

212X INVALID NUNIERIC CONSTANT IN DC STATEMENT 

213Z PROGRAM SI乞E EXCEEDS MEMORY SI  

217Ⅹ UNDEFINEDLABELINORGOREQUSTATEMENせ  

218Ⅹ  UNDEFINED LABELIN ORDINARY STATEMENT  

219Ⅹ LENGTHOFCHARACTERSTRING 

2 二BYTES  

220Ⅹ INVALIDNUMERICCONSTANTINEXPRESSfoN  

221Ⅹ ILLEGAL REGISTER OPERAND  

240Ⅹ ILLEGAL DEBUG STATEMENT 、  

241Ⅹ  TOO MANY TRACE STATEMENTS   242Ⅹ  TOO MANY DISPLAY STATEMENTS   

EXCEEDS   

(15)

教育用仮想計算戚の設計  

−・Jタ−  

673  

Execution Errors  

301Z PROGRAM NOT EXECUTED DUE TO SEVERE ASSEM:BIJY   ERROR  

302Z CPU「TIME OVER   30畠Z PRINT PAGE OVER  

304Ⅹ INVALID OPERATION CODE   305Ⅹ  ACCESSIS OUT OF MEMORY  

306Ⅹ  ZERO DIVIDE  

309Z PROGRAM二COUNTERIS OUT OF]MEMORY  

310Ⅹ  CONVERSION ERROR  

311Ⅹ Ⅰ/O ACCESS ERROR  

312Ⅹ INVALIDCONTROLCHARACTERFORLINEPRINTER  

320Z EXECUTIQNTERMINATEDDUE TOlOERRORS   

参照

関連したドキュメント

活用のエキスパート教員による学力向上を意 図した授業設計・学習環境設計,日本教育工

This paper introduces an on-line cooperative planning and design system and studies its educational application as an exercise tool for practicing public

ところが,ろう教育の大きな目標は,聴覚口話

経済学類 エコノミクスコース (仮称)  / グローバル・マネジメントコース (仮称)!.

⑥ニューマチックケーソン 職種 設計計画 設計計算 設計図 数量計算 照査 報告書作成 合計.. 設計計画 設計計算 設計図 数量計算

東京都公文書館所蔵「地方官会議々決書並筆記  

取組の方向 安全・安心な教育環境を整備する 重点施策 学校改築・リフレッシュ改修の実施 推進計画 学校の改築.

現状では、3次元CAD等を利用して機器配置設計・配 管設計を行い、床面のコンクリート打設時期までにファ