Home > Archives > 2017年09月07日

2017年09月07日

AVR の機械語

改めて眺めてみるとビットの並びがきれいとは言えないな…… 

例えば加算命令 ADD Rd, Rr は 0000 11rd dddd rrrr とかいうビットの並びになっていて,Rd レジスタの指定の為の 5 bit の MSB だけが離れちゃってる.別の例としては,8 bit 定数 KKKK KKKK とレジスタ dddd との演算命令が xxxx KKKK dddd KKKK とかいう並びになっていて,8 bit 定数が割れて配置されている.なお,これ系の命令だと使えるレジスタ範囲が半分になってるのでレジスタ指定は 4 bit.

効率のためにレジスタ指定のビット位置を揃えたいという前提のもと,レジスタが 32本あるからレジスタ指定に 5 bit 固定で良い気もするけど 16 bit RISC だからビットが足りないときもあって妥協して 4 bit で 16本指定できればいいや的なことになっているので,結果として MSB 1 bit 分が変な位置に飛んでるのかなと.

機械が扱う分にはビットの並び替えだけなので何の問題もないのだけど,計算機やプロセッサの学習の為の教材として使うにはハンドアセンブルにミスりそうなので悩ましい.レジスタ16本の 16 bit RISC の機械語はきれいそうだな.

Home > Archives > 2017年09月07日

Search
Feeds

Page Top