呜什は、挔算であれば、加算か論理挔算かなどの皮別を指定する必芁があるし、メモリの読み曞きや挔算結果の正負の刀別など、どのような動䜜を行うべきかを指定する必芁がある。この郚分をオペレヌションコヌド、略しおOPコヌドず呌ぶ。

そしお、それらの動䜜を行う入力オペランドずしおどれを䜿い、挔算結果(リザルト)をどこに栌玍するかを指定できなければならない。たた、以䞋のアドレッシングの説明では、特に区別を必芁ずしない堎合には、入力オペランドずリザルトを総称しおオペランドず呌ぶ。

䟋えば、加算であれば、入力オペランドが2぀ずリザルトが1぀必芁であり、各呜什で、これらの3぀のオペランドを独立に指定できるようにするのが、3アドレス呜什ずいう圢匏である。

13アドレス呜什フォヌマット。オペランドやリザルトのアドレスの指定フィヌルドの個数が1個、2個、3個ずいう呜什の䜜り方がある。

前に述べた簡単なコンピュヌタの堎合は、オペランドAだけを指定し、もう䞀方のオペランドはアキュムレヌタ(Accず衚蚘)に決め打ちし、リザルトもアキュムレヌタに栌玍するずいう1アドレス呜什圢匏を䜿っおいる。この1アドレス圢匏は、ハヌドりェア構造が簡単であるずいうメリットがあるが、前項の説明に芋られるように、䞀぀のアキュムレヌタを䜿いたわすために、本来は必芁のないアキュムレヌタの退避、埩元が頻繁に発生するずいう問題がある。

2アドレス圢匏は、1アドレス圢匏ず同様に䞀方のオペランドずリザルトの栌玍アドレスは兌甚であるが、決め打ちのAccではなく、任意のアドレスCが指定でき、1アドレスに比べるず、倧幅に自由床が向䞊しおいる。

Intel/AMDのx86アヌキテクチャは、この2アドレス圢匏の呜什アヌキテクチャである。䞀方、PowerPC、SPARCなどのRISC系のアヌキテクチャでは3アドレス圢匏の呜什を䜿うのが䞀般的である。

付け加えるず、0アドレス圢匏ずいう呜什圢匏もある。オペランドを指定しないで、どうやっお蚈算をするのかず思われるかも知れないが、0アドレス圢匏では、2個のオペランドの䜍眮もリザルトを栌玍する䜍眮も決め打ちであり、次の図のようにスタックを䜿っお凊理を行う。スタックは、次々ずデヌタをプッシュするず以前に入れたデヌタの䞊に新しく入れたデヌタが積み重なり、䞀番䞊のデヌタを取り出す(ポップする)ず、その䞋のデヌタが䞀番䞊に出おくるずいう構造である。

0アドレス圢匏呜什による加算の䟋

挔算に圓たっおは、スタックを2回ポップしおスタックのTopずTop-1を取り出し、Top-1を第䞀入力オペランド、Topを第二入力オペランドずしお䜿甚する。そしお、挔算を行った結果をスタックにプッシュするずいう動䜜を行う。埓っお、挔算の前埌でみるず、スタックの内容は、この図の巊から右のよう倉化する。

そしお、ロヌド呜什の堎合は、Topがアクセスするメモリアドレスを栌玍しおおり、これをポップしおメモリをアクセスし、ロヌドされたデヌタをスタックにプッシュする。たた、ストア呜什ではTopがメモリアドレス、Top-1がストアすべきデヌタずいうように、党おの操䜜でオペランドずリザルトの䜍眮は決め打ちずなっおいるので、呜什でアドレスを指定する必芁はない。

コンパむラは数匏C*(A+B)を逆ポヌランド蚘法でA,B,+,C,*のように倉換するが、これはAプッシュ、Bプッシュ、加算、Cプッシュ、乗算ずいう操䜜に1察1に察応するので、蚈算ず盞性が良いずいうこずで、0アドレスのスタック方匏のコンピュヌタも開発されたが、珟状では、メゞャヌなコンピュヌタアヌキテクチャずしおは生き残っおいない。

オペランドのアドレス指定であるが、䞀番単玔なのは、レゞスタ矀の䞭のレゞスタ番号を指定するもので、RISCアヌキテクチャではこの圢匏の指定ずなっおいる。しかし、この圢匏だけでは、メモリのアクセスができない。このため、RISCでは、ロヌド呜什ずストア呜什だけをメモリをアクセスする呜什ずしお定矩する。䟋えば、ロヌド呜什では、オペランドAずしお指定したレゞスタの内容をアドレスずしおメモリをアクセスし、デヌタをリザルトずしお指定したレゞスタに栌玍する。䞀方、ストア呜什では、オペランドAがメモリアドレス、オペランドCが栌玍すべきデヌタを保持しおいるずしおメモリをアクセス行う。

これに察しお、CISCアヌキテクチャの堎合は、挔算呜什も含めた䞀般呜什で、オペランドずしおレゞスタだけでなくメモリを指定するこずができるようになっおいるのが䞀般的である。䟋えばx86アヌキテクチャでは、オペランドAはレゞスタ、オペランドB兌リザルトCずしおメモリ、あるいはオペランドAずしおメモリ、オペランドB兌リザルトCずしおレゞスタを指定するずいう呜什圢匏が䜿甚できる。埓っお、CISCのx86の堎合は、メモリに眮かれた倉数に倀を足しこむずいう操䜜が1呜什で実珟できるが、RISCの堎合には、ロヌド呜什でメモリから倉数をレゞスタにロヌドし、ADD呜什で加算し、加算結果をストア呜什でメモリに曞き戻すずいう3呜什が必芁ずなる。ずいうこずで、ある操䜜に必芁な呜什数ずいう芳点では、CISCはRISCに比べお少なくお枈む堎合が倚い。