こんだけわかれば大学のMIPSのアセンブリ言語の課題程度はできねーかな
もちろん適当だ。
各種命令
データ転送系
| 文法 | 説明 |
|---|---|
| lw r1, n(r2) | load word。r2レジスタの数値+nが示すメモリ番地の内容を1ワードをr1レジスタに代入(ロード)するぞ。 メモリ番地の単位はバイト。 | sw r1, n(r2) | store word。r2レジスタの数値+nが示すメモリ番地にr1レジスタの内容を1ワードとして代入(ストア)するぞ。 メモリ番地の単位はバイト。 |
| li r1, n | load immediate value。「即値を読み込むよ」の意。即値は10とか3とかそういう直接数字による指定の値。r1レジスタにnをロード。 |
| la r1, label | load address。アドレスをロードする。labelが指すアドレスをr1レジスタにロード。 |
| lb r1, n(r2) | load byte。r2レジスタの数値+nが示すメモリ番地の内容を1バイトをr1レジスタに代入(ロード)するぞ。 メモリ番地の単位はバイト。 | sb r1, n(r2) | store byte。r2レジスタの数値+nが示すメモリ番地にr1レジスタの内容を1バイトとして代入(ストア)するぞ。 メモリ番地の単位はバイト。 |
| lbu r1, n(r2) | load unsigned byte。r2レジスタの数値+nが示すメモリ番地の内容1バイトを符号無しとしてr1レジスタに代入(ロード)するぞ。 メモリ番地の単位はバイト。 |
| move r1, r2 | r1レジスタにr2レジスタの内容を転送 |
| mflo r1 | move from lo。loレジスタの内容をr1レジスタに転送 |
| mtlo r1 | move to lo。r1レジスタの内容をloレジスタに転送 |
| mfhi r1 | move from hi。hiレジスタの内容をr1レジスタに転送 |
| mthi r1 | move to hi。r1レジスタの内容をhiレジスタに転送 |
r1とか書いてるけど本当はディスティネーションレジスタが云々とかで色々ありそうだけど、とりあえずはそんなの考えないでもプログラム書けはする。あとMIPSに実際に実装されてる命令なのかアセンブラ先生がなんとかしてくれる合成命令なんですかとか。
すごいぜアセンブラ先生、subu $8, $9をsubu $8, $8, $9に解釈してくれるのかよ気持ち悪い。
めっちゃ書きかけ。たぶん続きは書かない気がする。
