レジスター番号の表記

By 神居 - Posted: 2008/11/15 Last updated: 2010/01/19 - Leave a Comment

多くのプログラマーはCPU命令のオペランドで指定するレジスター番号を、単に10進数ではなく Rn のようなシンボル名で指定します。これは即値としての数字と、レジスター番号を区別しやすくする工夫の1つです。たいていは頭にRを付けてR0,R1,R2,…,R9,R10,R11,…と書くことが多いです。10以降は16進数で、RA,RB,RC,RD,RE,RFと書くプログラマーもいます。私も後者です。理由は簡単で、0から15まで桁数が変わらないので、レジスター番号を変える場合(例えば LA R1,WORKAREA を、LA R15,WORKAREA に変える)コーディング時に挿入や削除をしなくて済むからです。

汎用レジスターだけを使うプログラムでは Rn あるいは Rx 表記でいいのですが、浮動小数点命令やアクセスレジスターを使うプログラムではレジスター種別をわかりやすくするため、汎用レジスターならGRnあるいはGPRn、浮動小数点レジスターはFPRn、アクセスレジスターはARnとしたりします。制御レジスターならCTLRnです。
またレジスターの使用目的でシンボル名を付けることもあります。GR13はレジスター保管域アドレスをポイントするのでRSAVEA、GR12をベースアドレスにするならRBASEのようにです。

レジスター番号は数字での直接指定、シンボル名での指定、どちらも自由です。単なる番号ではなく用途に合わせたシンボル名でもかまいません。ただし開発プロジェクトなどでレジスター表記の規約が定められているような場合はそれに従います。

Posted in S/370アセンブラー講座 • • Top Of Page