JPS584371B2 - Relative address determination method for object instruction generation - Google Patents

Relative address determination method for object instruction generation

Info

Publication number
JPS584371B2
JPS584371B2 JP50040261A JP4026175A JPS584371B2 JP S584371 B2 JPS584371 B2 JP S584371B2 JP 50040261 A JP50040261 A JP 50040261A JP 4026175 A JP4026175 A JP 4026175A JP S584371 B2 JPS584371 B2 JP S584371B2
Authority
JP
Japan
Prior art keywords
instruction
address
word
word length
relative address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP50040261A
Other languages
Japanese (ja)
Other versions
JPS51115744A (en
Inventor
小柳幸博
林利弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP50040261A priority Critical patent/JPS584371B2/en
Publication of JPS51115744A publication Critical patent/JPS51115744A/en
Publication of JPS584371B2 publication Critical patent/JPS584371B2/en
Expired legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 本発明は同じ機能の命令に対し複数のアドレツシング機
構をもつために複数の命令語長を有する計算機に於ける
オブゼクト命令のアドレス決定力式に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to an address determination formula for an object instruction in a computer which has a plurality of addressing mechanisms for instructions of the same function and thus has a plurality of instruction word lengths.

以下の説明では簡単なために1語長、2語長(以下単に
短語/長語という)の2種類の場合であるがそれ以上の
種類かあっても考え方は同じである。
In the following explanation, for the sake of simplicity, we will use two types of words, one word length and two word lengths (hereinafter simply referred to as short words/long words), but the concept is the same even if there are more types.

長語/短語の2つの機械語長を持つ計算機、例えは16
ビントを1ワードとする小型計算機(ミニ・コンピュー
タ)に於いて、そのアセンブラ・シヌテムのオブゼクト
(機械語)が長語であるべきか、短語であるべきかの判
定は、従来コーディングの段階でユーザが識別し、指定
をすることにより行っていた。
A calculator with two machine word lengths, long words and short words, for example 16
In a small computer (mini computer) where a bint is one word, the judgment as to whether the object (machine language) of the assembler synutem should be a long word or a short word has traditionally been made at the coding stage. This was done by the user identifying and specifying.

本来、命令語か長語であるべきか短語であるべきかは、
その命令の前後の各命令群の長語/短語がとのようにな
っているかによって決定される。
Originally, whether it should be a command word, a long word, or a short word is
It is determined by whether the long/short words of each command group before and after the command are as follows.

従って、ユーザのミヌやプログラムの変更などにより、
本来、長語であるべき命令語が誤って短語と指定された
時には、その誤った指定によって他の命令語の長語/短
語も変化することになり、然も修正すべきプログラムの
作業自体をユーザが請負わなければならず、ユーザ側の
負担を大きくしていた。
Therefore, due to user changes or program changes,
When a command word that should originally be a long word is mistakenly designated as a short word, the long/short words of other command words will also change due to the incorrect designation, and the program work that needs to be corrected will be affected. The user had to undertake the work themselves, which placed a heavy burden on the user.

この長語/短語の判定及び修正作業をアセンブラ・シヌ
テムにより自動的に行なおうとすると、変化した値が他
の命令のアドレス部へ波及し、なかなかアドレヌが決定
できないという問題があった。
If an attempt was made to automatically perform this long word/short word determination and correction work using an assembler synutem, there was a problem that the changed value would spread to the address portions of other instructions, making it difficult to determine the address.

従って本発明の主たる目的はかかる従来の諸欠点をなく
してなるオブゼクト命令のアドレヌ決定方式を提供する
にある。
Accordingly, a principal object of the present invention is to provide an address determination method for object instructions which eliminates the various drawbacks of the conventional art.

すなわちユーザがコーディングする場合、あるいはコン
パイラにおいてオブゼクト命令を生成する場合に特に短
語、長語の指定をしなくても自動的に短語、長語の識別
をし、オブゼクト命令のアドレス決定力式を提供するこ
とにある。
In other words, when a user codes or when an object instruction is generated by a compiler, short words and long words are automatically identified without the need to specify short words and long words, and the address determination formula of object instructions is Our goal is to provide the following.

本発明の他の目的は長語/短語の決定を効率よくおこな
い、またオブゼクト命令の最適化をも効率よくおこなう
ことを可能とするオブゼクト命令の相対アドレス決定方
式を提供するにある。
Another object of the present invention is to provide a relative address determination method for object instructions that allows efficient determination of long words/short words and efficient optimization of object instructions.

本発明における長語/短語の決定作業の概略は以下のと
おり。
The outline of the long word/short word determination work in the present invention is as follows.

(イ)先ず、ユーザ・プログラムUP中に於けるひとつ
の命令語(以下、行と称する短語、長語の指定のない命
令語。
(a) First, one command word (hereinafter referred to as a line) in the user program UP is a short word or a command word without a long word.

)分の情報をアセンブラ・シヌテムに入力する。) into the assembler synutem.

(口)次に、この行が長語とすべきか短語とすべきかを
、この行の前後の各命令群の状況から決定し、その短語
か長語かの決定情報を入力情報UPに付加して出力する
(Mouth) Next, determine whether this line should be a long word or a short word from the status of each command group before and after this line, and input the decision information on whether it is a short word or a long word into the input information UP. Add and output.

(ハ)この行がユーザ・プログラムの最後の行であれば
作業を終了し、そうでなけれは、(口)の作業を繰り返
す。
(c) If this line is the last line of the user program, the work is finished; otherwise, the work in (c) is repeated.

以上の一連の走査はユーザ・プログラムの最初の行から
最後の行まで繰り返してゆく。
The above series of scans is repeated from the first line to the last line of the user program.

但し、ユーザ・プログラムに対して1回の走査を行った
だけでは、必すしも最適な決定とはなり得ない。
However, scanning the user program once does not necessarily result in an optimal decision.

従って、最適化をはかるためには、上記(イ),(0)
,(ハ)の手順よりなる走査を複数回行う必要がある。
Therefore, in order to optimize, the above (a), (0)
, (C) must be performed multiple times.

しかし、長語/短語の決定が確定したものに対しては、
(口)の処理は当然実行しない。
However, for those whose long/short words have been determined,
Of course, the processing in (mouth) will not be executed.

以下、図面により本発明を詳細に説明しよう。Hereinafter, the present invention will be explained in detail with reference to the drawings.

先ず、アセンブラ言語で書かれたアセンブラ命令につい
て説明しよう。
First, let's explain assembler instructions written in assembler language.

アセンブラ命令は計算機の種類や規模に応じて、更には
ソフト上の考慮のもとに何種類か規定される。
Several types of assembler instructions are defined depending on the type and scale of the computer, and also based on software considerations.

ユーザがアセンブラ言語でプ口グラムを計算機に入力さ
せたい時には、上記アセンブラ命令の組合せによりプロ
グラムを作り、入力させる。
When a user wants to input a program into a computer using an assembler language, the user creates a program using a combination of the above assembler instructions and inputs the program.

説明の簡単のため、アセンブラ命令をLD(データ読出
)命令と、ST(データ格納)命令、DC(定数定義)
命令、BSS(エリア確保)命令の4種類に限定しよう
For ease of explanation, the assembler instructions are LD (data read) instruction, ST (data store) instruction, and DC (constant definition) instruction.
Let's limit it to four types: commands and BSS (area security) commands.

これらの命令か実際にユーザ・プログラムとして使用さ
れる時の形態を第1図に示す。
FIG. 1 shows the form in which these instructions are actually used as a user program.

かかる図に於いて、LD命令・・・・・・メモリ上のア
ドレスを示すアドレヌ欄ADDRで指定されるアドレス M1の内容をアキュムレータへ転送 する。
In this figure, the LD command...transfers the contents of the address M1 specified in the address column ADDR indicating the address on the memory to the accumulator.

ST命令・・・・・・アキュムレータの内容をアドレヌ
欄ADDRで指定されるメモリM2土 に転送する。
ST command: Transfers the contents of the accumulator to the memory M2 specified by the address field ADDR.

DC命令・・・・・・プログラムの実行に先立って、ラ
ベル欄LABELで示されるメモリ土の アドレヌL1にアドレヌ欄ADDR で指定された定数Cを設定させるよ う、アセンブラ・シヌテムに対し要 求する命令である。
DC instruction: An instruction that requests the assembler/syntem to set the constant C specified in the address column ADDR to the address L1 of the memory indicated by the label column LABEL before executing the program. be.

BSS命令・・・プログラムの実行に先立ってラベル欄
LABBLで示されるメモリ土のア ドレスL2からアドレス欄ADDR で指定された定数aに相当する語長 分のエリアを確保するようにアセン ブラ・システムに要求する命令であ る。
BSS instruction: Requests the assembler system to secure an area corresponding to the word length corresponding to the constant a specified in the address field ADDR from address L2 in the memory indicated by the label field LABBL before executing the program. This is an order to do so.

かかるアセンブラ命令で書かれたユーザ・プログラムを
入力とし、アセンブラ・システムによって処理されて得
られる出力はオブゼクト(機械語,形式となる。
A user program written using such assembler instructions is input and processed by the assembler system, and the output obtained is an object (machine language, format).

オブゼクトに変換されて得られるオブゼクト命令には、
短語命令SWと長語命令DWの2つがある。
Object instructions obtained by converting to objects include:
There are two commands: short word command SW and long word command DW.

この短語/長語命令の実際のフォーマントをLD命令、
DC命令を例に第2図に示す。
The actual formant of this short word/long word command is the LD command,
FIG. 2 shows a DC instruction as an example.

ここではLD命令には短語/長語の2形式を持ち、DC
命令は短語形式のみとする。
Here, the LD command has two forms: short word/long word, and DC
Instructions should be in short form only.

図に於いて、 OP・・・・・・・・・・・・命令の種類(オペランド
)を示す部分であり、第1図に示す命令欄、 COMMの内容からアセンブラ・シ ステムによって2進数の命令コード にデコードされた結果得られる。
In the figure, OP is the part that indicates the type of instruction (operand), and the instruction column shown in Figure 1, from the contents of COMM, is converted into a binary instruction by the assembler system. The result is obtained by decoding into a code.

F・・・・・・・・・・・・・・・短語か長語かの区別
を示すフラグ部であり、1ビットを占有している。
F: Flag section indicating whether the word is a short word or a long word, and occupies 1 bit.

短語命令では″O″、長語命令では ″1”がセットされる。“O” for short word commands, “O” for long word commands "1" is set.

DISP・・・・・・この命令の存在するアドレヌから
、第1図で示したアドレス欄ADDR で指定される指定アドレスMまでの 相対アドレス値nをセットする相対 アドレス部である。
DISP: This is a relative address field for setting the relative address value n from the address where this instruction exists to the specified address M specified in the address column ADDR shown in FIG.

この相対アドレヌ部の占准ビットを例えば8ビント とした場合、相対アドレス部 DISPの値nは、−128≦n≦ 127の範囲となる。For example, set the occupied bits of this relative address part to 8 bits. In this case, the relative address part The value n of DISP is -128≦n≦ The range is 127.

A−ADDR・・・これは相対アドレス部DISPと異
なり、絶対アドレスを示す絶対アド レス部である。
A-ADDR: This is an absolute address section that indicates an absolute address, unlike the relative address section DISP.

即ち、内容としては指定アドレスのアドレス値そのもの がセットされる。In other words, the content is the address value itself of the specified address. is set.

例えは、メモリの先頭アドレスをO番地とした時には、 この絶対アドレス部A−ADDRで指 定するアドレスは、メモリの先頭か ら伺番目のアドレスに相当している かを示している。For example, if the first address of memory is O address, Specify this absolute address part A-ADDR. The specified address must be at the beginning of memory. This corresponds to the address number It shows that.

第2図では、短語命令SWを16ビット、長語命令DW
を32ビットとしている。
In FIG. 2, the short word instruction SW is 16 bits, and the long word instruction DW is 16 bits.
is set to 32 bits.

更に、相対アドレス部DISPの占有ビットを8ビット
、絶対アドレス部A−ADDRの占有ビントを16ビツ
トとじている0以下ではかかるビット占有状態に基づく
ものとする。
Further, the occupied bits of the relative address section DISP are 8 bits, and the occupied bits of the absolute address section A-ADDR are 16 bits, and the bits below 0 are based on the bit occupancy state.

以上の説明から明らかなように、短語か長語かの決定は
相対アドレヌによつて定まる。
As is clear from the above explanation, determining whether a word is a short word or a long word is determined by the relative address.

即ち、相対アドレスが第2図で示した相対アドレス部D
ISPのnの制限値である−128≦n≦127内にあ
れば、その命令は短語形式となり、その範囲を越えれば
、長語形式となる。
That is, the relative address is the relative address part D shown in FIG.
If n is within the ISP limit value of -128≦n≦127, the instruction will be in short word format, and if it exceeds this range, it will be in long word format.

短語形式になった時の実効アドレスE−ADDRは、 E−ADDR−(PC)+n ・・・・・・{1
)と表わされる。
The effective address E-ADDR when converted to short word format is E-ADDR-(PC)+n...{1
).

PCは現在実行中のプログラム命令の次の番地を記憶し
ているプログラムカウンタであり、(PC)はそのカウ
ンクPCの内容を示す。
PC is a program counter that stores the next address of the program instruction currently being executed, and (PC) indicates the contents of the count PC.

nは相対アドレス値である。長語形式になった時の実効
アドレスE−ADDRは、 E−ADDR−(A−ADDR) ・・・・・・(
2)となる。
n is a relative address value. The effective address E-ADDR in long word format is E-ADDR-(A-ADDR) ・・・・・・(
2).

(A−ADDR)は絶対アドレス部A−ADDRの表示
内容を意味する。
(A-ADDR) means the display content of the absolute address section A-ADDR.

尚、短語形式となるDC命令のオブゼクト形式は第2図
に示すように、第1図に示したアドレヌ欄ADDRに指
示した値Cがデータ部DATAに2進数として設定され
ることになっている。
As shown in Figure 2, the object format of the DC instruction, which is in short word format, is that the value C specified in the address field ADDR shown in Figure 1 is set as a binary number in the data field DATA. There is.

次に本発明の実施例を第3〜第5図により説明する。Next, embodiments of the present invention will be described with reference to FIGS. 3 to 5.

本発明の主たる構成要素は入力部ITと入力属性部NA
MET(主としてラベル登録テーブル部)とより成る。
The main components of the present invention are the input section IT and the input attribute section NA.
It consists of MET (mainly a label registration table section).

先ず入力部を第3図により説明しよう。First, the input section will be explained with reference to FIG.

この入力部は、ユーザ・プログラムUPと、該プログラ
ムに基づきアセンブラ・システムが作成したアドレス・
テーブルLACT,フラグ・テーブルFTより成立つ。
This input section contains the user program UP and the address/address created by the assembler system based on the program.
This is established from table LACT and flag table FT.

ユーザ・プログラムUP・・・先に説明したように1ア
センブラ言語で書かれた命令によりプ ログラムされたものである。
User program UP is programmed using instructions written in the assembler language as described above.

アドレス・テーブルLACT・・・ユーザ・プログラム
UPの各命令(いわゆる“行”) に対し、その行のアドレヌ値を記憶 しておくテーブルであり、命令実行 時のプログラム・カウンタPCの内 容(pc)に相当する値を持つ。
Address table LACT: A table that stores the address value of each instruction (so-called "line") of the user program UP, and the contents of the program counter PC (pc) when the instruction is executed. has a value equivalent to .

図で■なる表示は長語/短語の区別が正 式に定まらない、いわゆる仮のアド レスを意味しており、■なる表示は 長語/短語の区別が正式に定まった 状態下での修正されたアドレヌヲ意 味している。In the diagram, the symbol ■ indicates that the distinction between long words and short words is correct. A so-called temporary address that is not determined by a formula This means a response, and the display of ■ means The distinction between long words and short words has been officially established. Modified address under the condition I'm tasting it.

このアドレス・テーブルLACTの内容は当然のことな
が ら、アセンブラ・シヌテムの処理の 過程で変化してくる。
As a matter of course, the contents of this address table LACT change during the process of processing by the assembler synutem.

フラグ・テーブルFT・・・アセンブラ・システムのオ
ブゼクトとなる機械語を短語命令 にするか、長語命令にするかを記録 しておくテーブルであり、短語命令 の時には、″0”が設定され、長語 命令の時には、′1”が設定される ■,■なる表示は、アドレス・テー ブルLACTで述べたことと同様の 意味を持つ。
Flag table FT: A table that records whether the machine language that is an object of the assembler system is a short instruction or a long instruction. When it is a short instruction, "0" is set. In the case of a long instruction, ``1'' is set.The indications ``■'' and ``■'' have the same meaning as described in the address table LACT.

次に、入力属性部を第4図により説明しよう。Next, the input attribute section will be explained with reference to FIG.

この入力属性部は、ユーザ・プログラムUP中のラベル
欄LABELの表示内容に対し、アセンブラ・システム
が作成したラベル登録テーブル NAMET,テーブル・ポインタNAPより成る。
This input attribute section consists of a label registration table NAMET and a table pointer NAP created by the assembler system for the display contents of the label field LABEL in the user program UP.

ラベル登録テーブルNAMET・・・ユーザ・プログラ
ムUPのラベル欄LABELの表示 ラベルを示すラベルmLABEL2と そのアドレヌを示すADDR2及びエ ントリENTRYより成る。
Label registration table NAMET: Consists of a label mLABEL2 indicating the display label of the label column LABEL of the user program UP, ADDR2 indicating its address, and an entry ENTRY.

エントリENTRYはラベル登録テーブル NAMETの登録順序を示すものであ り、1,2,3・・・・・・の如き数字より成る。Entry ENTRY is label registration table This indicates the registration order of NAMET. It consists of numbers such as 1, 2, 3, etc.

ラベル部LABEL2にはユーザ・プログラムUP中の
ラベル欄に あらわれたラベルが順番に設定され る。
The labels appearing in the label field in the user program UP are set in the label section LABEL2 in order.

■,■は、前述と同様、修正前の値、修正後の値である
■ and ■ are the values before correction and the values after correction, as described above.

テーブル・ポインタNAP・・・ラベル登録テーブルN
AMETのテーフル・ポインタとし て使用され、1語(例えば16ビツ ト)の占有ビットより成る。
Table pointer NAP...Label registration table N
It is used as a table pointer for AMET and consists of one word (for example, 16 bits) of occupied bits.

実際に設定される値は、現在処理中の行 (命令)以前に現われたラベル欄の ラベルの中で、最新のラベルのエン トリENTRYの内容である。The value actually set is the row currently being processed. (command) of the label field that appeared previously Among the labels, the most recent label This is the content of the ENTRY.

従って図によれば、現在処理中の行は12 ということになる。Therefore, according to the figure, there are 12 rows currently being processed. It turns out that.

尚第3図、第4図以降における(())なる表示は修正
前の値、()は修正予定の値、それ以外の表示即ち((
))()の両方に属しない値は現在処理中の時点に於け
る値である。
In Figures 3 and 4 and subsequent figures, the display (()) is the value before correction, () is the value to be corrected, and other display, that is, ((
A value that does not belong to both )) and () is a value at the time of current processing.

また第3図の右側に示されているLACI,LAC2に
関する部分は後述する。
Further, the portions related to LACI and LAC2 shown on the right side of FIG. 3 will be described later.

第5図は本発明の具体的実施例である。FIG. 5 shows a specific embodiment of the present invention.

入力部ITおよび入力属性部NAMETは記憶装置より
成り、その初期状態を第6図a,Cに示す。
The input section IT and the input attribute section NAMET consist of storage devices, and their initial states are shown in FIGS. 6a and 6C.

入力属性部NAMETはエントリENTRYを有してい
る点で第4図に示すそれと若干異なっているが、これは
説明は分り易くするために設けたものであり本実施例で
は、エントリENTRY部を省略し別の機能によって代
替している(後述)。
The input attribute section NAMET is slightly different from that shown in FIG. 4 in that it has an entry ENTRY, but this is provided to make the explanation easier to understand, and in this embodiment, the entry ENTRY section is omitted. However, it is replaced by another function (described later).

第6図Cでは説明を分り易くするためにこれを点線部分
で示した。
In FIG. 6C, this is indicated by a dotted line to make the explanation easier to understand.

第6図aはITの、CはNAMETの初期状態を、bは
LACの、dはNAPの初期状態を示す。
FIG. 6a shows the initial state of IT, C shows the initial state of NAMET, b shows the initial state of LAC, and d shows the initial state of NAP.

入力部IT,入力属性部NAMETの初期状態は、一般
にユーザソースプログラムを解析する言語処理プロセッ
サのラベル解析部(表示は省略)の出力として得られる
ものである。
The initial states of the input section IT and the input attribute section NAMET are generally obtained as the output of a label analysis section (display omitted) of a language processing processor that analyzes a user source program.

本実施例では、この他に、入力部ITのアドレヌ指定を
行うフ節グラムカウンタPC、人力部ITの読出し出力
を一時記憶するレジヌタITR,前記レジヌタの中のラ
ベルの有無を検知するラベル検知器DET2、アンドゲ
ートA2、アドレステーブルLACTの内容を一時的に
取り込むレジスタLAC1、短語/長語の判定に伴って
内容が変更されてゆくレジヌタLAC2、及び該レジス
タLAC2を+1する加算回路LADD1、及びレジス
タLAC2を+2する加算回路LADD2、プログラム
の全行終了か否かの判定に使用するレジヌタLAC3よ
り成る。
In this embodiment, in addition to this, there is also a block gram counter PC that specifies the address of the input section IT, a register ITR that temporarily stores the readout output of the human section IT, and a label detector that detects the presence or absence of a label in the register. DET2, an AND gate A2, a register LAC1 that temporarily takes in the contents of the address table LACT, a register LAC2 whose contents are changed according to the determination of short/long words, an adder circuit LADD1 that adds 1 to the register LAC2, and It consists of an adder circuit LADD2 which adds 2 to the register LAC2, and a register LAC3 used to determine whether all lines of the program have been completed.

更に、レジヌタLAC2の内容の有無を検出する検出器
DET1、アンドゲートA1、比較回路COMP1,C
OMP2,COMP3,COMP4,COMP5,CO
MP6,COMP7より成る。
Further, a detector DET1 for detecting the presence or absence of the contents of the register LAC2, an AND gate A1, and comparison circuits COMP1 and C
OMP2, COMP3, COMP4, COMP5, CO
Consists of MP6 and COMP7.

入力属性部NAMETのエントリを指定するレジスタN
AP1、及びこのレジスタNAP1を補助するレジスタ
NAP2,NAP3、加算回路ADD1より成る。
Register N that specifies the entry of the input attribute section NAMET
It consists of AP1, registers NAP2 and NAP3 that assist this register NAP1, and an adder circuit ADD1.

更に、ヰ実施例では、入力属性部NAMETのアドレス
の内容を一時記憶するレジヌタNAMETR,及び短詳
/長語によって゛0”か”1″かのデータを出丈する短
語検出器SFT,長語検出器DFT,中間出力部MT,
該出力部MTのアドレヌの内容を一時記憶するレジスタ
MTR,出力変換部MI、吊力部OTより成る。
Furthermore, in this embodiment, a register NAMETR temporarily stores the content of the address of the input attribute section NAME, and a short word detector SFT that outputs data of "0" or "1" depending on the short/long word. Long word detector DFT, intermediate output section MT,
It consists of a register MTR that temporarily stores the contents of the address of the output section MT, an output conversion section MI, and a suspension section OT.

入力部ITおよび入力属性部NAMETの初期状態は第
6図alCに示した通りであり、フラグ.テーブルFT
には短語が絶対的に確定する命令(DC命令)に対して
は”0”が、長語であることか絶対的に確定している命
令(本実施例では≠示せず)には”1”が設定され、ま
た短語/長詔未定の命令は無条件に長語命令として扱い
”1”が設定されている。
The initial states of the input section IT and the input attribute section NAMET are as shown in FIG. 6 alC, and the flag. Table FT
is "0" for an instruction that is absolutely determined to be a short word (DC instruction), and "0" for an instruction that is absolutely determined to be a long word (≠ not shown in this example). "1" is set, and commands whose short/long edicts are undetermined are unconditionally treated as long commands, and "1" is set.

これに基ついてLACTの初期状態が設定されている。Based on this, the initial state of LACT is set.

この初期状態に対応したLAC1〜3,NAP1〜3の
初期状態を第6図b,dに示す。
The initial states of LAC1-3 and NAP1-3 corresponding to this initial state are shown in FIGS. 6b and 6d.

ここでLAC3には第6図aのITの最後の行■に対応
したLACTの内容がセットされるものとする。
Here, it is assumed that the contents of LACT corresponding to the last line (2) of IT in FIG. 6a are set in LAC3.

なお第6図dには参考のために第4図に対応したNAP
の初期状態も示している( )o 更に、ラベル登録テーブルNAMETには、以上の設定
にあわせてラベルLABEL2にユーザ・プログラムU
P中のラベルLABEL1が登録され且つそれに相当す
るアドレスかアドレス部ADDR2に設定される。
For reference, Figure 6 d shows the NAP corresponding to Figure 4.
It also shows the initial state of
The label LABEL1 in P is registered, and the corresponding address is set in the address field ADDR2.

以上の前提条件のもとでNo=■まで処理され、No一
■かこれから処理されるものとする。
Under the above preconditions, it is assumed that No. 1 is processed up to No. 2, and No. 1 is processed from now on.

この時の入力部■T1人力属性部NAMETは第I図a
,cの如きアドレス状態となるO 第γ図a〜dは「A LD M」(No−■)のラベル
処理の説明図である。
At this time, the input section ■ T1 manual attribute section NAMET is shown in Figure I a.
, c. Figures a to d are explanatory diagrams of label processing for "ALDM" (No-■).

LAC2の値をLACTへ,LAC2の値をNAMET
のラベルAに対応したADDR2へ転送する。
The value of LAC2 to LACT, the value of LAC2 to NAMET
is transferred to ADDR2 corresponding to label A.

No=■のラベル処理開始前の状態は、No一■,■の
処理でLACTは初期状態(750),(soo))か
ら700,730へそれそれ修正されている。
The state before the start of the label processing for No=■ is such that the LACT is modified from the initial state (750, (soo)) to 700, 730 in the processing for Nos. 1, 2.

腐=■の処理でLACTは初期状態900から語長調整
結果の820に修正されようとしている。
In the processing of rot=■, LACT is about to be corrected from the initial state 900 to 820 as a result of word length adjustment.

LAC1〜3の状態は第γ図bのとおりである。The states of LAC1 to LAC3 are as shown in Fig. γ (b).

次に変化したLACT(=LAC2)の内容をNAME
Tヘセットする。
Next, change the contents of LACT (=LAC2) to NAME
Set to T.

ラベルADDR2を登録する場合、論理的にはNAPレ
ジヌタがあればNAMETのトップから走査しなくとも
NAPレジスタの内容で示される次のエントリが当該ラ
ベルになるが、第5図の実施例では回路を簡単化(共通
化)したために毎回トップから走査する方式をとってい
る。
When registering label ADDR2, logically, if there is a NAP register, the next entry indicated by the contents of the NAP register becomes the label without scanning from the top of NAMET, but in the embodiment shown in FIG. To simplify (commonize) the process, we use a method that scans from the top every time.

さて、第1図aにおいてNo一■の処理はプログラム・
カウンタPC(第5図)によるアドレヌ指定により開始
される。
Now, in Figure 1 a, the process No. 1 is a program.
The process is started by address designation by the counter PC (FIG. 5).

このカウンタPCの指示するアドレスは、No=■を示
しており、その結果、レジスタITRには、No一■に
対応するユーザープログラムUPとして「A LD M
」、ロケーション・テーブルLACTとして「900」
、フラグ・テーブルFTとして「1」が夫々読出し設定
される。
The address indicated by this counter PC indicates No=■, and as a result, the register ITR contains "ALD M" as the user program UP corresponding to No.
”, “900” as location table LACT
, "1" is read and set as the flag table FT, respectively.

次いでこのレジスタITRの中のロケーション・テーブ
ルLACTの内容はレジヌタLAC1に転送される。
The contents of the location table LACT in this register ITR are then transferred to the register LAC1.

次に、No一■までの処理においてLACTの仮の内容
を最新の調整結果に置きかえをおこなうためにレジヌタ
LAC2にアドレスが記憶されているかどうかをアトレ
ス検出器DETIによって検出する。
Next, in order to replace the provisional content of LACT with the latest adjustment result in the processing up to No. 1, the address detector DETI detects whether an address is stored in the register LAC2.

アドレヌが設定されていれはアンドゲ−トA1を通して
該レジスタLAC2の内容は先のレジスタITRのロケ
ーション・テーブルLACTへ送られ、記憶される。
If the address is set, the contents of the register LAC2 are sent through the AND gate A1 to the location table LACT of the previous register ITR and stored therein.

同、このレジスタLAC2の詳細は後述するが、短語/
長語によってその内容が変更されてゆく構成となってい
る。
The details of this register LAC2 will be described later, but the short word/
The structure is such that the content changes depending on the length of the word.

今、第γ図bではLAC2に「820」かセットされて
いるため、レジヌタITRのアドレス・テーブルLAC
Tにはアドレ】「820Jかセットされることになる。
Now, in Fig. γb, since "820" is set in LAC2, the address table LAC
The address [820J] will be set to T.

勿論、r820jがセツトされる前に、LACTの内容
はクリアされることは云うまでもない。
Of course, it goes without saying that the contents of LACT are cleared before r820j is set.

この場合LAC1の内容はもとのままである。In this case, the contents of LAC1 remain as they were.

次に、レジヌタITRのユーザ・プログラムUPの中の
ラベル部LABLL1にラベルか実際にあるかどうかか
ラベル検出器DET2によって検出される。
Next, the label detector DET2 detects whether a label actually exists in the label section LABLL1 in the user program UP of the register ITR.

現在処理中のNo一■にはラベル「A」があるため、検
出出力信号を得る。
Since No. 1, which is currently being processed, has the label "A", a detection output signal is obtained.

この出力信号によってアンドゲートA2か開きレジヌタ
IT,Rのラベル部LABEL1のラベル内容fAJか
比較器COMPIに送られる。
This output signal causes the AND gate A2 to open, and the label content fAJ of the label section LABEL1 of the open register IT,R to be sent to the comparator COMPI.

この比較器COMP1へはレジスタNAMETHのラベ
ル部LABEL2の内容が印加されるように構成されて
いる。
The comparator COMP1 is configured to receive the contents of the label section LABEL2 of the register NAMETH.

この二つのラベルが一致しているかどうかが比較器CO
MPIで比較検出され、一致した時にはアンドゲートA
3を開きレジスタLAC 2の内容[820−をレジス
タNAMETRのアドレス部ADDR2に送り、ラベル
登録テーブルNAMETに記憶登録させることになる(
第γ図Cのエントリ12の行)以上の比較器COMP1
の動作過程の中で、レジスタNAMETRのラベル部L
ABEL2の内容はテーブル’NAME’I’の各アド
レスの走査によって順次、変更されてゆく。
The comparator CO determines whether these two labels match.
It is compared and detected by MPI, and when there is a match, AND gate A is executed.
3 is opened, the contents of register LAC 2 [820- are sent to the address field ADDR2 of register NAMETR, and the contents are stored and registered in the label registration table NAMET (
Comparator COMP1 (line 12 of entry 12 in Figure γ)
During the operation process, the label part L of the register NAMETR
The contents of ABEL2 are sequentially changed by scanning each address of table 'NAME'I'.

このことを以下説明する。テーブルNAMETのアドレ
ス走査は、第4図に示すようにエントリレジスタNAP
によって指定されるアドレスによって行われる。
This will be explained below. Address scanning of table NAMET is performed by entry register NAP as shown in FIG.
This is done by the address specified by .

エントリレジスタNAPには、第4図に示される如く、
現在の処理時点でエントリ番号として「11」が設定さ
れている。
In the entry register NAP, as shown in FIG.
At the current processing time, "11" is set as the entry number.

第5図ではこれに対応する数字は、NAPIに記憶され
ているがNAMETの走査開始に当って先ずレジヌタN
AP3に一時保持され代りにレジヌタNAP2に記憶さ
れているテーブルNAMETの先頭アドレヌがレジスタ
NAP1にセットされる。
In FIG. 5, the corresponding number is stored in NAPI, but at the start of scanning NAMET, it is first stored in register N.
The first address of the table NAMET, which is temporarily held in AP3 and is instead stored in register NAP2, is set in register NAP1.

このレジスタNAP1の内容によってテーブルNAME
Tの先頭アドレスの内容がレジヌタNAMETRに読み
出され、この読み出された内容の中のラベル部LABE
L2が比較器COMPIに送られ比較される。
The table NAME is set according to the contents of this register NAP1.
The content of the first address of T is read out to the register NAMETR, and the label part LABE in this read content is
L2 is sent to comparator COMPI and compared.

一致がない時には、レジヌタNAP1の内容は加算回路
ADDIを通してNAMETの1エントリに相当する長
さのアドレス分mが加算され、次のエントリーナンバー
に相当するアドレヌがレジスタNAP1に送られ、テー
ブルNAMETの相当するアドレスの内容が読み出され
る。
When there is no match, the contents of the register NAP1 are added with an address m corresponding to one entry of NAMET through the adder circuit ADDI, and the address corresponding to the next entry number is sent to the register NAP1, and the address corresponding to the table NAMET is added. The contents of the address are read.

次いで同様の比較が行われる。以下、順次走査をしてゆ
き、その走査の過程で一致が得られた時には、前述した
ようにアンドゲートA3を開き、レジスタLAC2の内
容をその一致したアドレスのアドレス部ADDR2に書
込み、登録させる(これにより第γ図Cのエントリ12
が900から820に変化する。
Similar comparisons are then made. Thereafter, scanning is performed sequentially, and when a match is obtained during the scanning process, the AND gate A3 is opened as described above, and the contents of the register LAC2 are written to the address field ADDR2 of the matching address and registered ( As a result, entry 12 in Figure γC
changes from 900 to 820.

)。以上の走査過程は、これをプログラムによっておこ
なう場合は必ずしも必要ではない。
). The above scanning process is not necessarily necessary when it is performed by a program.

すなわち、第4図に示すように、現在のエントリーナン
バーが「11」として設定されている場合には、次のラ
ベルが何であるかはエントリーナンバー「12」をみれ
ばよい(なぜなら、NAMETのLABEL2部にはU
PのLABELがそれがでてくる順に記憶されているた
めNo=■を処理したときにNAP=11となりNo=
■までの間のUPにLABELが存在しない場合はNA
P=12にNo■のLABELが存在することになるた
めである。
In other words, as shown in Figure 4, if the current entry number is set as "11", you can find out what the next label is by looking at the entry number "12" (because LABEL2 of NAMET U for the part
Since the LABEL of P is stored in the order in which it appears, when No=■ is processed, NAP=11 and No=
If LABEL does not exist in the UP between ■, NA
This is because LABEL No. ■ exists at P=12.

)。従って、こうした場合には、テーブルNANETの
全アドレスを走査する必要はなく、ラベルの有無の判定
、即チラベル「A」がエントリーナンバー「12」にあ
るかどうかだけをみればよいことになる。
). Therefore, in such a case, it is not necessary to scan all the addresses in the table NANET, and it is only necessary to determine the presence or absence of a label, that is, to check whether the label "A" is in the entry number "12".

勿論、本実施例では、エントリーナンバーの代りに、ア
ドレヌによって指定されており、エントリーナンバーそ
のものではないため、上記走査過程を必要とするのであ
る。
Of course, in this embodiment, the address is specified instead of the entry number, and not the entry number itself, so the above-mentioned scanning process is necessary.

本実施例でNAPを用いなかったのは前に述べたように
第5図SC部を第γ図に述べる処理と、第8図に述べる
処理(後述)の間で共用化する都合上によるもので、結
果はいずれのやり方をとっても同じである。
As mentioned earlier, the reason why NAP was not used in this embodiment was to share the SC section in FIG. 5 between the process described in FIG. γ and the process described in FIG. 8 (described later). And the result is the same either way.

比較の終了後、レジヌタNAP3に一時記憶されたデ一
夕であるエントリーナンパー11に相当するアドレヌは
レジヌタNAP1にセットされる。
After the comparison is completed, the address corresponding to the entry number 11, which is the data temporarily stored in the register NAP3, is set in the register NAP1.

次いで、レジスタITRのユーザ・プログラムUPのア
ドレス部ADDR1とテーブルNAMETの各アドレヌ
のラベル部LABEL2の内容との比較が比較器COM
P2によって行われる(第8図)。
Next, the comparator COM compares the address part ADDR1 of the user program UP in the register ITR with the contents of the label part LABEL2 of each address in the table NAMET.
This is done by P2 (Figure 8).

この比較に際してはテーフルNAMETの各アドレスが
走査される(第8図a)。
During this comparison, each address of the table file NAMET is scanned (FIG. 8a).

第5図においてこの走査は先の走査と同じようにレジス
タNAP1の内容がレジヌタNAP3に一時記憶され、
テーブルNAMETの先頭アドレヌはレジスタNAP2
の内容によって指定されNAP1へ転送される。
In this scan in FIG. 5, the contents of register NAP1 are temporarily stored in register NAP3, as in the previous scan.
The first address of table NAMET is register NAP2
is specified by the contents of and transferred to NAP1.

COMP2の比較によって一致出力が得られないときに
必要になるテーブルNAMETの上記先頭アドレス以降
のアドレスは、十mを加算する加算回路ADD1を通し
て得られるアドレスによって設定される。
Addresses after the above-mentioned top address of the table NAMET, which are required when a matching output is not obtained by the comparison of COMP2, are set by addresses obtained through the adder circuit ADD1 that adds 10m.

かかる走査の過程で、比較器COMP2で一致が祷られ
た時には、一致信号か出力され、比較器COMP3を作
動させる。
In the course of such scanning, when a match is expected in the comparator COMP2, a match signal is output, which activates the comparator COMP3.

この比較器COMP3は第8図aのNAMET上におい
てエントリーナンバー1から前回処理されたエントリー
ナンバー11までのアドレヌ走査で一致が得られるか、
或いは、エントリーナンバー12以降の走査で一致か得
られるかの判定を行うものである。
This comparator COMP3 determines whether a match can be obtained by scanning addresses from entry number 1 to previously processed entry number 11 on NAMET in FIG. 8a.
Alternatively, it is determined whether a match is obtained by scanning entry numbers 12 and onwards.

従って、該比較器COMP3には前回処理されたエント
リーナンバー11に相当するアドレス(レジスクNAP
3に退避されている)と一致が得られた時のレジスタN
AP1のアドレスとが印加され、両者の差をとり、前者
のアドレスが犬きい時には、エントリーナンパー1から
エントリーナンバー11までの間で一致が得られたとし
て出カ信号C。
Therefore, the address corresponding to the previously processed entry number 11 (Regisc NAP) is stored in the comparator COMP3.
3) and register N when a match is obtained.
The address of AP1 is applied, the difference between the two is taken, and when the former address is the closest, it is assumed that a match has been obtained between entry number 1 and entry number 11, and output signal C is output.

を発生し、後者のアドレスが大きい時には、エントリー
ナンバー12以後のアドレスで一致が得られたとして出
力信号C1を発生する。
When the latter address is larger, it is assumed that a match has been obtained at the address after entry number 12, and an output signal C1 is generated.

本実施例ではUPの同一行中でのLABELIとADD
R1が一致することはないと仮定する。
In this example, LABELI and ADD in the same line of UP
Assume that R1 never matches.

したかって前者のアドレヌと、後者のアドレヌが一致す
ることはない。
Therefore, the former address and the latter do not match.

現在、処理中のNo一■では、第8図aのNAMETに
示すようにエントリーナンパー10に相当するアドレス
にrMJが設定されているため出力信号C。
In No. 1, which is currently being processed, rMJ is set at the address corresponding to entry number 10, as shown by NAMET in FIG. 8a, so the output signal is C.

を得る。出力信号C。により比較器COMP4が作動開
始する。
get. Output signal C. The comparator COMP4 starts operating.

比較器COMP4には、先に一致が得られた時点でのエ
ントリーナンバーに相当するアドレヌの内容、即ち、レ
ジスタNAMETRに読出されているデータの中のアド
レス部ADDR2のデータ(第8図aのNAMETテー
ブルのLABEL2のMに対応したADDR2であり、
700となっている)と、レジスタLAC2のデータ(
第8図bのレジスタLAC2の内容であり820)とが
入力されており、先に述べた相対アドレスDISPの値
n(n=ADDR2−LAC2)が計算される。
The comparator COMP4 stores the contents of the address corresponding to the entry number at the time when a match is obtained first, that is, the data of the address part ADDR2 in the data read out to the register NAMETR (NAMET in FIG. 8a). ADDR2 corresponding to M of LABEL2 of the table,
700) and the data in register LAC2 (
The contents of the register LAC2 (820) in FIG. 8b are input, and the value n (n=ADDR2-LAC2) of the relative address DISP mentioned earlier is calculated.

相対アドレヌDISPが両データの差であり、該比較器
COMP4ではこの差の値nが短語を意味する−128
≦nか、長語を意味するn≦−129のいずれかにある
かの判定を行う。
The relative address DISP is the difference between both data, and in the comparator COMP4, the value n of this difference is −128, which means a short word.
It is determined whether the word is ≦n or n≦−129, which means a long word.

短語判定の時には短語指令信号C3を発生し、短語フラ
グ発生器SFTを駆動し、短語用のフラグを発生させる
長語判定の時には、長語指令信号C2を発生し、長語フ
ラグ発生器DFTを,駆動し長語用のフラグを発生させ
る。
When determining a short word, a short word command signal C3 is generated to drive the short word flag generator SFT, and a flag for a short word is generated.When determining a long word, a long word command signal C2 is generated and a long word flag is generated. The generator DFT is driven to generate a flag for long words.

現在処理中のNo=■では相対アドレスDISPの値n
は,n=700−820=120である故、短語の判定
となる。
If No=■ is currently being processed, the value n of the relative address DISP
Since n=700-820=120, it is determined that the word is a short word.

短語の判定時には・レジスターTRのフラグ部FTに″
0”をセットし、長語の判定時にはフラグ部FTに″1
”をセツトする。
When determining a short word, `` is set in the flag section FT of register TR.
0” is set, and when determining a long word, set “1” to the flag section FT.
”.

本実施例ではFTは″0”がセントされる(第8図bの
ITテーブルのNo=■に対応するFT部)。
In this embodiment, "0" is entered in the FT (FT section corresponding to No=■ in the IT table in FIG. 8b).

一方の前回のエントリーナンバーの次のエントリ−ナン
パー11までの走査の間に一致が得られず、エントリー
ナンバー12以降の走査で一致が得られた時には、出力
信号C1により比較器COMP5を作動させる。
When a match is not obtained during the scanning from the entry next to the previous entry number to number 11, and a match is obtained during the scanning from entry number 12 onward, the comparator COMP5 is activated by the output signal C1.

この比較器COMP5にはレジスタNAMETRのAD
DR2の内容と更新前のNo=■に対応するLACTの
内容(900)を記憶しているレジヌタLAC1の内容
とが取り込まれ、両者の差n(n=ADDR2一LAC
I)及びその差に基づく短語/長語の判定を行う。
This comparator COMP5 has the AD of register NAMETR.
The contents of DR2 and the contents of register LAC1 which stores the contents of LACT (900) corresponding to No.
I) and determine whether it is a short word or a long word based on the difference.

短語(n≦127)の時には短語指令信号C4、長語(
n≧128)の時には長語指令信号C,とが発生し、短
飴フラグ発生器SFT,長語フラグ発生器DFTの夫々
を駆動し、短語フラグ″0”、長語フラグ″1”がIT
RのFTに出力されることになる。
When it is a short word (n≦127), the short word command signal C4, the long word (
When n≧128), a long word command signal C is generated, which drives the short candy flag generator SFT and the long word flag generator DFT, so that the short word flag "0" and the long word flag "1" are set. IT
It will be output to R's FT.

ここでレジスタLAC1のアドレスを使用したのは、第
8図aのNAMETのエントリ−1.3以降はADDR
2が未修正となっているためである。
The address of register LAC1 used here is ADDR from entry-1.3 of NAMET in Figure 8a.
This is because 2 has not been corrected.

以上の短語及ひ長語の設定と同時に、或いは設定後、短
語指令信号C3或いはC4、長語指令信号C2,C5に
よりアンドヶートA4、或いはA5が開かれる。
Simultaneously with or after setting the short word and long word, the AND gate A4 or A5 is opened by the short word command signal C3 or C4 and the long word command signal C2 or C5.

即ち、短語判定時にはアンドゲートA4が開かれ、+1
を加算する加算回路LADD1によりレジヌタLAC2
の内容を+1させ、長語判定時にはアンドゲートA5が
開かれ、+2を加算する加算回路LADD2によりレジ
スタLAC2の内容を+2させる。
That is, when determining a short word, AND gate A4 is opened and +1
The adder circuit LADD1 adds the register LAC2.
When determining a long word, the AND gate A5 is opened and the adder circuit LADD2 adds +2 to the content of the register LAC2 by +2.

本実施例ではNo=■のUP中の命令は短語のためアン
ドゲートA4が開かれLAC2の内容は+1される(第
8図CのLAC2が820から821に変る)。
In this embodiment, since the instruction during UP with No=■ is a short word, AND gate A4 is opened and the contents of LAC2 are incremented by 1 (LAC2 in FIG. 8C changes from 820 to 821).

次いで、レジスタITRの内容を入力部IT及び中間テ
ーブル部MTに書込み登録する。
Next, the contents of the register ITR are written and registered in the input section IT and intermediate table section MT.

最後の行の登録後レジスタLACIとLAC3との内容
が、UPの各命令の処理が終了することに発生ずる指令
信号C6により作動開始する比較器COMP6によって
比較される。
The contents of the post-registration registers LACI and LAC3 in the last row are compared by a comparator COMP6 which starts operating in response to a command signal C6 generated upon completion of processing of each UP instruction.

両名が一致していれば終了信号C7を発生し、一致して
いなけれは継続信号C8を発生し、NAPIを十mする
とともにITより次の行をITRへ読出し、上記の処理
を繰り返す。
If both names match, a termination signal C7 is generated, and if they do not match, a continuation signal C8 is generated, NAPI is set to 10 m, the next row is read from IT to ITR, and the above process is repeated.

いま処理が終了したNo一■は未だ終了ではな< (∵
第8図CのLAC1とLAC3の内容か一致せず、従っ
て、実際には継続信号C8か発生し、次の行であるNo
=■の処理に移行することになる。
No. 1■, which has just finished processing, is not finished yet < (∵
The contents of LAC1 and LAC3 in FIG.
The process will proceed to =■.

このときNAP1の内容は十mされる(これに対応した
NAPは12である)。
At this time, the content of NAP1 is increased to 10m (the corresponding NAP is 12).

No=■の処理(第9図)に於いては、以上述べたNo
一■の処理とほとんど同じである故、種複する部分は省
略し、異なる部分のみを以下説明しよう。
In the processing of No=■ (Figure 9), the above-mentioned No.
Since this process is almost the same as the process in step 1, we will omit the redundant parts and explain only the different parts below.

先ず、異なっている点はユーザ・プログラムUP土のラ
ベル部LABELIにラベルがないことである(第9図
aITテーブルのNo一■)。
First, the difference is that there is no label in the label section LABELI of the user program UP (No. 1 in the IT table in FIG. 9).

従ってテーブルNAMETにラベルがあるかどうかさが
す必要はなく、比較器COMP1による比較の必要性は
ない。
Therefore, there is no need to search whether there is a label in the table NAMET, and there is no need for comparison by the comparator COMP1.

更に、異なっている点はアドレヌ部ADDR1の内容r
EJはエントリーナンバー「1」から前回までに処理し
たエントリーナンバー「l2」までの間に存在せず、エ
ントリーナンパ−「l4」にあることである。
Furthermore, the difference is that the content r of the address part ADDR1
EJ does not exist between entry number "1" and previously processed entry number "l2", but exists at entry number "l4".

エントリーナンバー14の内容は2000であり、廓=
■とのDISPが128より大きくなるため比較器CO
MP3では、出力信号C1が得られ、比較器COMP5
でレジスタLACIとレジヌクNAMETRのアドレス
とを比較することになる。
The content of entry number 14 is 2000, and 廓=
Since DISP with ■ becomes larger than 128, the comparator CO
At MP3, an output signal C1 is obtained and the comparator COMP5
Then, the register LACI and the register NAMETR address are compared.

この比較の結果、n=2000−902=1098とな
り長語指令信号C,を発生し、長語フラグ発生器DFT
により長語フラグ″1”を発生しレジヌタITRのフラ
グ部FTに″1”をセットし(第9図ITテーブルのN
o一■のFT部)、加算回路LADD2を通してレジヌ
タLAC2の内容を+2することになる(この結果LA
C2は823となる)。
As a result of this comparison, n=2000-902=1098, a long word command signal C, is generated, and the long word flag generator DFT
generates a long word flag "1" and sets "1" in the flag section FT of the register ITR (N of the IT table in Figure 9).
FT section of o1)), the contents of register LAC2 are incremented by 2 through adder circuit LADD2 (as a result, LA
C2 becomes 823).

この行の終了した時点でもプログラムは終了せず、次の
行に処理が移る。
Even when this line ends, the program does not end and processing moves to the next line.

IsT El終了時は第9図eに示す。The end of IsT El is shown in FIG. 9e.

LAC2は821−123となり長語分カウントアップ
になる。
LAC2 becomes 821-123 and counts up by the length of the long word.

LAC1とLAC3は不一致なので次の行の処理をする
Since LAC1 and LAC3 do not match, the next line is processed.

以下、順次各行の処理が行われる。Thereafter, each row is processed in sequence.

最後の行が終了した時点でレジヌタLAC2とLAC3
との内容がCOMP7によって比較され、前回の走査と
今回の操作でオブゼクトの長さが変化しなければ両者の
内容は一致する。
At the end of the last row, registers LAC2 and LAC3
The contents of the object are compared by COMP7, and if the length of the object does not change between the previous scan and the current operation, the contents of the two match.

このとき終了信号C7が発生し、中間テーブル部MTよ
り登録された内容をレジヌタMTRを通して読み出し、
短語/長語の機械語変換部MIにより第2図に示す如き
機械語の形式に変換し、出力テーブル部OTに登録させ
ることになる。
At this time, an end signal C7 is generated, and the registered contents from the intermediate table section MT are read out through the register MTR.
The short word/long word machine language converter MI converts it into a machine language format as shown in FIG. 2, and registers it in the output table section OT.

機械語変換部MIは中間テーブルMTから順次命令をM
TRへ読出しそれを入力とし、機械語命令を出力するか
、この場合、単語命令のアドレス部は短語/長語のフラ
グの情報FTを用い決定した先頭からの相対ロケーショ
ンと、ラベル登録テーブルNAMET中のラベル・ロケ
ーションとの差をとることで、また長語命令のアドレヌ
部はラベル・ロケーションをそのまま使用することで決
定する。
The machine language conversion unit MI sequentially converts instructions M from the intermediate table MT.
Read it to TR and use it as input to output a machine language instruction. In this case, the address part of the word instruction is the relative location from the beginning determined using the short word/long word flag information FT and the label registration table NAMET. The address part of the long instruction is determined by taking the difference from the label location inside, and by using the label location as is.

ユーザ・プログラムの全行を以上の1回の走査によって
完全に短語/長語に区分けできればよいわけであるか、
実際上はユーザ・プログラムの全行の1回の走査だけで
は完全に正しい短語/長語の区分けは、達成し得ない。
Is it sufficient to be able to completely divide all lines of the user program into short words/long words in one scan as described above?
In practice, completely correct short/long word classification cannot be achieved by just one scan of all lines of the user program.

例えばNo一■の命令の処理の過程では、該命令のラベ
ルEは、未だ処理しない未処理の行に存在しており、こ
の未処理の行をもって相対アドレスDISPの値nが設
定されている。
For example, in the process of processing instruction No. 1 (2), the label E of the instruction exists in an unprocessed line that has not yet been processed, and the value n of the relative address DISP is set in this unprocessed line.

こうした未処理の行の、いわゆる事前に仮定の上に立っ
てたてられた行のアドレヌに基づく処理過程があるため
、1回の走査だけでは正しく完全な意味での短語/長語
の判定を行ない得ないことになる。
Because there is a processing process based on the address of these unprocessed lines, which is based on pre-assumptions, it is not possible to correctly and completely determine whether a short word or long word is a word with just one scan. It will not be possible to do so.

従って、当然のことながら、レジヌタLAC2とLAC
3との夫々の内容も一致することはない。
Therefore, as a matter of course, Resinuta LAC2 and LAC
3 and the contents of each do not match.

このとき信号C,が発生し次回の走査のために、LAC
2の内容をLAC3に転送し、前述のとと<UPの最初
の行からまた走査を開始する。
At this time, a signal C is generated and LAC is used for the next scan.
The contents of 2 are transferred to LAC 3, and scanning is started again from the first line of the above-mentioned and <UP.

第9図bはNAMETのテーブルに対応したNAP1〜
3の状態、Cは走査終了時のLAC1〜3、dは次回走
査時のLACの状態を示す。
Figure 9b shows NAP1~ corresponding to the table of NAMET.
C indicates the state of LAC 1 to 3 at the end of scanning, and d indicates the state of LAC at the next scanning.

走査回数によって当然のことながら、処理されるべき機
械語(オブセクト)総語数も減少してゆく。
Naturally, the total number of machine words (objects) to be processed decreases with the number of scans.

この様子を示したものか第10図である。FIG. 10 shows this situation.

第10図で01は第1回目の走査、02は第2回目の走
査、・・・・・・y01は第i回目の走査・01+iは
第(i+1)回目の走査時での機械語の総語数を示して
いる。
In Figure 10, 01 is the first scan, 02 is the second scan, y01 is the i-th scan, and 01+i is the total machine language at the (i+1)th scan. It shows the number of words.

この図より明らかなように、走査回数が増えるに従って
処理される機械語総語数は減少してゆき(差をεとして
いる)、ある特定回数iに達した時点で、次の回数i+
1との差ε=0となり、完全に短語/長語の一致か得ら
れることになる。
As is clear from this figure, as the number of scans increases, the total number of machine language words to be processed decreases (the difference is defined as ε), and when a certain number of times i is reached, the next number of times i +
The difference from 1 is ε=0, and a complete short word/long word match is obtained.

この時には、レジヌタLAC2とLAC3との内容も一
致する。
At this time, the contents of registers LAC2 and LAC3 also match.

これによって、短語/長語の完全な決定最適化を完了す
ることになる。
This completes a complete short/long word decision optimization.

この状態を弟9図fに示す。すなわちn−1回目とn回
目のロケーションが一致したということである。
This state is shown in Fig. 9f. In other words, the (n-1st and nth) locations match.

尚、走査回数が増加することによって、処理時間も増加
することになり、いわば欠点の面も出てくる。
Incidentally, as the number of scans increases, the processing time also increases, which may be a drawback.

従って、適当な走食回数をもって決定処理作業を終了さ
せることも考慮せねばならない。
Therefore, consideration must be given to terminating the determination process after an appropriate number of runs.

この走査回数は実用上の最適化であったかどうかによっ
て決める。
The number of scans is determined depending on whether it is a practical optimization.

実際には、レジヌタLAC1とLAC3との差が実用上
許容される範囲にあるかどうかによって行う。
In reality, this is done depending on whether the difference between the registers LAC1 and LAC3 is within a practically acceptable range.

即ち、許容範囲としてIε。1を設定しておき、比較器
COMPγを2つのレジスタLAC2とLAC3との差
もしくは比がIε。
That is, Iε is the allowable range. The comparator COMPγ is set to 1, and the difference or ratio between the two registers LAC2 and LAC3 is Iε.

1内にあれは終了、1εo1外であれば未終了として信
号C,を発生ずるように構成すればよい。
If it is within 1, it is considered to be finished, and if it is outside 1εo1, it is assumed that it is not finished, and the signal C is generated.

これによって決定の能率化をおこなうことができ処理時
間の短縮か可能となる。
This makes it possible to make decisions more efficient and to shorten processing time.

次に、決定時間の短縮化を説明しよう。Next, let us explain how the decision time can be shortened.

第5図のCOMP4,COMP5の判定に於いて、ある
種の命令は必す短語命令あるいは長語命令となり、一度
短語、もしくは長語であることが確定すればそれ以後
再び短語、長語の判定は必要ない。
In the determination of COMP4 and COMP5 in Figure 5, certain types of commands are necessarily short word commands or long word commands, and once it is determined that the command is a short word or a long word, the command can be used again as a short word or a long word. No word judgment is necessary.

かかる”ある種の命令”とはアドレヌ部ADDR1のラ
ベルがその行の128行以前(nく−129)に存在す
る場合、あるいは129行以降に存在する場合(n〉1
2s)の命令(長語命令となる)およびアドレヌ部AD
DR1のラベルがその行と63行前との間(該63行を
含む)にある場合(−64くn)、あるいはその行と6
4行後の行との間(該64行を含む)にある場合(nく
63の命令(短語命令となる)である。
Such "certain types of instructions" are defined as if the label of the address field ADDR1 exists before the 128th line (n-129) of that line, or if it exists after the 129th line (n>1).
2s) command (long word command) and address part AD
If the label of DR1 is between that line and the 63rd line before (including the 63rd line) (-64n), or between that line and 63rd line
If it is between the line 4 lines later (including the 64th line), this is the n63rd instruction (a short word instruction).

すなわちこれらのうち必らす長語となる命令の行テハ、
最良の場合(その命令の行と指定ラベルの存在する行の
間の行がすべて短語命令の場合)でも相対アドレヌDI
SPの値nはn<−129,n〉128となって絶対に
短語とはなり得ない。
In other words, among these, the command line teha, which is the long word,
Even in the best case (when all the lines between the instruction line and the line where the specified label exists are short instructions), the relative address DI
The value n of SP is n<-129, n>128, so it can never be a short word.

また必らず短語命令となる命令の行では最悪の場合(そ
の行の命令と指定ラベルの存在する行の間の行か全て長
語命令の場合)でも、相対アドレヌnは、n〉−64,
n<63となって絶対に長語とはなりえない。
Furthermore, even in the worst case (when all the lines between the instruction on that line and the line where the specified label exists are long instructions), the relative address n is n>-64. ,
Since n<63, it can never be a long word.

もしnが−128<nニー65,64<n<127のと
きには短語とも長語ともなりうる可能性があり、命令語
長は未確定である。
If n is -128<n 65, 64<n<127, there is a possibility that it can be both a short word and a long word, and the length of the command word is undetermined.

以上の点を考慮したアドレヌ決定方弐を実現するには、
先ず入力部ITのフラグテーブル部FTは1ビット構成
より2ビット構成となる。
In order to realize addressee determination method 2 that takes into account the above points,
First, the flag table section FT of the input section IT has a 2-bit structure instead of a 1-bit structure.

すなわち短語と判定されたときは「0」、長語と判定さ
れたときは「1」、短語か長語か未定の場合は「2」を
セットする(したかつてこの場合、短語長語が確定しな
い命令に対する仮の語長フラグFTは「2」とセントさ
れることになる)。
In other words, if it is determined to be a short word, set it to "0," if it is determined to be a long word, set it to "1," and if it is undecided whether it is a short or long word, set it to "2." The temporary word length flag FT for an instruction whose word is not determined is set to "2").

このフラグに関連する他のレジヌタ類も2ビット構成と
なる。
Other registers related to this flag also have a 2-bit configuration.

更に、第5図の実施例では、フラグ部FTのデータを使
用しなかったが、該データを取り込んで、″0”か″1
”か”2”かを判定する比較回路を設ける必要がある。
Furthermore, in the embodiment shown in FIG. 5, the data of the flag section FT is not used, but the data is taken in and set to "0" or "1".
It is necessary to provide a comparison circuit that determines whether it is "" or "2".

更に、この比較回路は3つの出力を有し、第1の出力は
”0”判定時に出力され、第2の出力は“1”判定時に
出力され、第3の出力は”2″判定時に出力される。
Furthermore, this comparison circuit has three outputs, the first output is output when a "0" determination is made, the second output is output when a "1" determination is made, and the third output is output when a "2" determination is made. be done.

″0”及び″1”判定時には、相対アドレヌDISPの
計算は必要なく、LAC2の内容を+1,+2するだけ
となる。
When determining "0" and "1", there is no need to calculate the relative address DISP, and only the contents of LAC2 are incremented by +1 and +2.

第3の出力発生時には、第5図の場合と同様に現在処理
中の行以Mにラベル一致があるかどうかの判定を行い、
現在処理中の行以前にラベル一致があれば、COMP4
に対応する比較器によって相対アドレスDISPの値n
を計算し、その計算結果に基づき短語、長語の判定を行
わせる。
When the third output occurs, as in the case of FIG. 5, it is determined whether or not there is a label match in the line M starting from the line currently being processed.
If there is a label match before the row currently being processed, COMP4
The value n of the relative address DISP is determined by the comparator corresponding to
is calculated, and based on the calculation results, short words and long words are determined.

現在処理中の行以降にラベル一致があれば、COMP5
に対応する比較器によって相対アドレヌDISPの値n
を計算し、その計算結果に基づき短語か長語かの判定を
行わせる。
If there is a label match after the line currently being processed, COMP5
The value n of the relative address DISP is determined by the comparator corresponding to
is calculated, and based on the calculation result, it is determined whether the word is a short word or a long word.

更に、短語/長語のフラグを発生する発生器SFT,D
FTの他に+2のフラグを発生する第3の発生器が設け
られる。
Furthermore, a generator SFT,D that generates short word/long word flags
In addition to the FT, a third generator is provided which generates a +2 flag.

これら3つの発生器の出力信号によってレジスタITR
のフラグテーブル部FTに“0”,″1”,″2″のい
ずれかが設定されるO 以上、本発明を詳細に述べたが、本発明によれば、アセ
ンブラやコンパイラなどの言語処理プロセッサの中間出
力言語から機械語形式のオブゼクト命令を生成するとき
その中間出力言語の中で短語命令か長語命令かを考慮す
る必要かなくかつ該命令語長の決定時間の短縮化もはか
ることができる。
The output signals of these three generators generate a register ITR.
The present invention has been described in detail above, and according to the present invention, a language processing processor such as an assembler or a compiler When generating object instructions in machine language form from an intermediate output language, it is not necessary to consider whether the intermediate output language is a short instruction or a long instruction, and the time required to determine the instruction word length is shortened. Can be done.

【図面の簡単な説明】[Brief explanation of drawings]

第1図はユーザ・プログラムの形式を示す図、第2図は
機械語(オブゼクト)の形式を示す図、第3図、第4図
は本発明の要部説明図、第5図は本発明の実施例図、第
6図〜第9図は本発明の動作説明図、第10図は繰り返
し計算の説明図を示すiである・ IT・・・・・・入力部、NAMET・・・・・・ラベ
ル登録テーブル部、LAC1,LAC2,LAC3・・
・・・・ロケーション・レジスタ、MT・・・・・・中
間出力部、OT・・・・・・出力部。
Fig. 1 shows the format of the user program, Fig. 2 shows the format of the machine language (object), Figs. 3 and 4 are explanatory diagrams of the main parts of the present invention, and Fig. 5 FIG. 6 to FIG. 9 are diagrams explaining the operation of the present invention, and FIG. 10 is a diagram explaining the repetitive calculation. ...Label registration table section, LAC1, LAC2, LAC3...
...Location register, MT...Intermediate output section, OT...Output section.

Claims (1)

【特許請求の範囲】 1 アセンブラ、コンパイラ等の言語処理プロセッサの
中間出力言語から機械語形式のオブゼクト命令を生成す
るときD相対アドレス決定方式において、(a)該中間
出力言語の命令の仮の語長として各々の命令がとりうる
最犬語長をフラグテーブル部FTに記憶しかつ該フラグ
テーブルに記憶されている該最大語長に基づいて演算さ
れた該中間出力言語命令の相対アドレスをロケーション
テーブル部LACTに記憶して成る該中間出力言語命令
記憶手段ITと、 (b)該中間出力言語命令の各々の命令を最大語長に設
定した場合の該中間出力言語命令の最終命令の相対アド
レス記憶手段LAC3と1 (c)該中間出力言語出力命令の各々の命令についで該
ロケーションテーブル部LACTに記憶されているアド
レスに基づいて相対アドレスを演算するものであって少
なくとも比較器 COMP2〜5とレジヌタITR,LAC1.2NAM
ETRと長語短語検出器DFT,SFTとから成る演算
手段と、 (d)該演算された相対アドレスから語長を判定すると
ともに該フラグテーブル部FTに仮の語長として記憶さ
れている最大語長に代えて該判定された語長に修正設定
するとともに該修正設定された語長に基づいて該中間出
力言語命令の各各について順次該中間出力a語命令の最
終命令まで相対アドレスを演算し記憶させる記憶手段L
AC2,LACTと、 (e)該中間出力言語命令の最終命令の相対アドしスの
記憶値LAC3と、該演算された最終命令のアドレス記
憶値LAC2とを比較する比較器COMPMとを具備し
、該比較演算されたアドレス偏差値があらかじめ定めら
れた値よりも太きいきき該最終命令のアドレス記憶値 LAC2を該最終命令のアドレス値LAC3に代えて記
憶せしめ該中間出力言語命令の最初の命令から該演算を
順次実行し、該比較演算されたアドレス偏差の値があら
かじめ定めた値よりも小さくなったときの相対アドレス
を該オブゼクト命令の相対アドレスとすること、を特徴
とするオブゼクト命令生成における相対アドレス決定方
式。 2 該特許請求の範囲第1項記載において、あらかじめ
定められた回数の演算を実行したときの相対アドレスを
該オブゼクト命令の相対アドレスとすることを特徴とす
るオブゼクト命令生成における相対アドレス決定方式。 3 前記特許請求の範囲第1項において、フラグテーブ
ル部FTに該中間出力言語命令のうち一義的に語長が確
定する命令語にはそれぞれ対応する確定語長フラグを、
また語長が未確定な命令にはその命令がとりうる最人語
長に対応した未確定識別フラグを設定し、該語長未確定
語長についてのみ相対アドレスを順次演算し、該中間出
力言語命令の相対アドレスを決定することを特徴とする
オブゼクト命令生成における相対アドレス決定方式
[Scope of Claims] 1. When generating object instructions in machine language form from an intermediate output language of a language processing processor such as an assembler or a compiler, in the D-relative address determination method, (a) a provisional word of the instruction in the intermediate output language; The maximum word length that each instruction can take is stored in the flag table section FT, and the relative address of the intermediate output language instruction calculated based on the maximum word length stored in the flag table is stored in a location table. (b) relative address storage of the final instruction of the intermediate output language instructions when each instruction of the intermediate output language instructions is set to the maximum word length; Means LAC3 and LAC1 (c) Calculates a relative address based on the address stored in the location table section LACT for each of the intermediate output language output instructions, and includes at least comparators COMP2 to COMP5 and a register register. ITR, LAC1.2NAM
(d) determining the word length from the calculated relative address and determining the maximum word length stored as a temporary word length in the flag table section FT; Correct and set the determined word length instead of the word length, and calculate relative addresses sequentially for each of the intermediate output language instructions up to the final instruction of the intermediate output a-language instructions based on the revised word length. storage means L for storing
AC2, LACT; and (e) a comparator COMPM that compares the relative address storage value LAC3 of the final instruction of the intermediate output language instructions and the calculated address storage value LAC2 of the final instruction; If the address deviation value obtained by the comparison operation is larger than a predetermined value, the address storage value LAC2 of the final instruction is stored instead of the address value LAC3 of the final instruction, starting from the first instruction of the intermediate output language instructions. A relative address in object instruction generation characterized in that the operations are sequentially executed and the relative address when the address deviation value obtained by the comparison operation is smaller than a predetermined value is set as the relative address of the object instruction. Address determination method. 2. A relative address determination method for generating an object instruction as set forth in claim 1, characterized in that the relative address when a predetermined number of operations are executed is the relative address of the object instruction. 3. In claim 1, the flag table section FT includes a determined word length flag corresponding to each instruction word whose word length is uniquely determined among the intermediate output language instructions.
In addition, for an instruction whose word length is undetermined, an undetermined identification flag corresponding to the maximum word length that the instruction can take is set, and relative addresses are sequentially calculated only for the undetermined word length, and the intermediate output language is Relative address determination method in object instruction generation characterized by determining the relative address of an instruction
JP50040261A 1975-04-04 1975-04-04 Relative address determination method for object instruction generation Expired JPS584371B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP50040261A JPS584371B2 (en) 1975-04-04 1975-04-04 Relative address determination method for object instruction generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP50040261A JPS584371B2 (en) 1975-04-04 1975-04-04 Relative address determination method for object instruction generation

Publications (2)

Publication Number Publication Date
JPS51115744A JPS51115744A (en) 1976-10-12
JPS584371B2 true JPS584371B2 (en) 1983-01-26

Family

ID=12575714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50040261A Expired JPS584371B2 (en) 1975-04-04 1975-04-04 Relative address determination method for object instruction generation

Country Status (1)

Country Link
JP (1) JPS584371B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61110240A (en) * 1984-10-31 1986-05-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Optimization compiler
JP2610890B2 (en) * 1987-09-09 1997-05-14 日本電気株式会社 Assembler branch instruction generation method

Also Published As

Publication number Publication date
JPS51115744A (en) 1976-10-12

Similar Documents

Publication Publication Date Title
US5339431A (en) Software compiler and linker with improved line-number table
CA1288871C (en) Method for verifying spelling of compound words
JPS584371B2 (en) Relative address determination method for object instruction generation
US20010044930A1 (en) Loop optimization method and a compiler
US6275984B1 (en) System and method for delaying indirect register offset resolution
US7080370B1 (en) Method and apparatus for compiling source programs using one or more libraries
KR20080045545A (en) Method of pre-processing conditional region
CN113609821B (en) Regular expression conversion method, device, equipment and storage medium
CN118069142B (en) Compilation optimization method, device, electronic equipment and storage medium
JP3279706B2 (en) Online compilation method
JP2001075831A (en) Program processor, ic test system, program processing method and storage medium
EP0647900B1 (en) Parameter storage space allocation
JP2827979B2 (en) Assembler processing apparatus and assembler processing method
JP2001297068A (en) Parallel program generating method and its recording medium
US20060015704A1 (en) Operation apparatus and instruction code executing method
JP3884807B2 (en) Document processing method and apparatus
US6105120A (en) Method for implementing multiple format addressing in an embedded microcontroller, a compiler being arranged for implementing the method, and a microcontroller being arranged for using the method and compiler
JP3141945B2 (en) Compiling device
CN117114003A (en) License identification method, system and medium based on Trie
CN118069143A (en) Access processing method, device, electronic equipment and storage medium
CN118069142A (en) Compilation optimization method, device, electronic equipment and storage medium
JP2005295216A (en) Data processing apparatus and program
JP2797777B2 (en) Language processor
JPH05189242A (en) Automatic generation method for parser
JPH11232119A (en) Character code conversion method