竹下世界塔の計算機よもやま話

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU: 2017.05 メモリ操作命令

<<   作成日時 : 2017/05/19 00:56   >>

ブログ気持玉 0 / トラックバック 2 / コメント 0

 メモリ操作命令は汎用レジスタとメモリ間の転送を行う。メモリ操作命令はデータのサイズしか意識しない。


概要と基本フォーマット

・基本は2バイト命令。CO2:M2フォーマットを使用。

CO2: 010_xxxxx_xxdddddd
M2: 010_1_wwww_mm_dddddd wwwwはデータ幅、mmはモード

M2:={LD|ST}

・ロード命令
LD 010_1_wwww_00_dddddd
wwww:データ幅。2**(n-1)バイト 1〜32768バイト。0の時はLEA命令(destに実効アドレスが代入される)
dddddd: destination register指定

・ストア命令
ST 010_1_wwww_01_dddddd
wwww:データ幅。2**(n-1)バイト 1〜32768バイト。source registerのデータ幅と比較し、エラーフラグをセットする。
wwwwが0の時はチェックしない。
dddddd: source register指定

・アドレッシングモード
 オペランドでメモリ操作の対象となる実効アドレスを決定する。

M2 オペランドなし ※Reserved
M2 OPC 6bit定数
M2 OPL ロング定数
M2 OP1C [Ra+const] レジスタa+6bit定数
M2 OP1C OPL [Ra+const],endian レジスタa+ロング定数、6bit定数でバイトスワップ
M2 OP2 [Ra+Rb] レジスタa+レジスタb
M2 OP3S [Ra+Rb],Rc,ss ss=00:Rc指定の6bitでバイトスワップ / ss=01 Rcの内容でバイトスワップ
 ss=10,11 Reserved

これ以外のオペランドの組み合わせはCO2:M2 Illigal Operand Trap

・実効アドレスについて
定数の指定はデータ幅によりn倍する。データ幅をnとするとconst<<(n-1)が実際の定数
定数の最上位bitは符号拡張される
データ幅によっては実際のメモリアクセス時にアライメントエラーが発生する。
実効アドレスの計算に使用するレジスタRa,Rbの型は整数でなければならない。
Ra,Rbが整数でない場合はエラーフラグをセットする。実効アドレスは内容を整数とみなして計算される。


※LEA命令を使用すると汎用レジスタにサイズを指定した任意の値を設定できる。
※M2のオペランドなしはバリア命令を予定
※LL/SC未定


SALUS ステンレスソーサー MSALUS ステンレスソーサー M

佐藤金属興業
売り上げランキング : 180356

Amazonで詳しく見る
by G-Tools

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(2件)

タイトル (本文) ブログ名/日時
ぼくのかんがえたさいきょうCPU: 2017.05 概要と基本フォーマット
 ぼくのかんがえたさいきょうCPUも考え続けていつのまにか十年くらい経ってしまった。いろいろな命令セットアーキテクチャを調べるほどにいじくりまわしたくなるのだが、そろそろまとめてみようかとおもう。 ...続きを見る
竹下世界塔の計算機よもやま話
2017/05/19 00:59
ぼくのかんがえたさいきょうCPU: 2017.06 1バイト命令・バリア・プリフィックス
 命令拡張の余地がなくなった場合に、従来未定義だった命令から始めることで続く命令列に機能を追加できる。これをプリフィックス命令という。プリフィックス命令は次の命令に対する1回だけの指示と考えることもできる。プリフィックス命令は短いほどよいので1バイト命令フォーマットから空いているところを探す。今回はメモリ操作命令の1バイトフォーマットを割り当てることにする。 ...続きを見る
竹下世界塔の計算機よもやま話
2017/06/11 16:31

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




ぼくのかんがえたさいきょうCPU: 2017.05 メモリ操作命令 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる