Changes between Version 24 and Version 25 of Ex01 MIPSアセンブリの基礎2015
- Timestamp:
- Apr 13, 2015 3:02:34 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ex01 MIPSアセンブリの基礎2015
v24 v25 65 65 || B|| 0x4|| 75|| 75|| 66 66 || C|| 0x8|| 0|| 94|| 67 67 / 68 68 MIPSプロセッサでの演算は、レジスタ間でのみ行うことができます。 69 69 したがって、メモリの中のデータを演算するためには一度レジスタの中にデータをロードし、 … … 85 85 86 86 このプログラムを「sum1.s」としてファイルに保存し、xspimでシミュレーションを行ってください。 87 ソースファイルの読み込みには "load" ボタン、プログラムの実行には "step" ボタンをクリックする。 88 89 [[Image(http://galaxy.u-aizu.ac.jp/note/raw-attachment/wiki/Ex01%E3%80%80MIPS%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E3%81%AE%E5%9F%BA%E7%A4%8E2015/xpsim.png)]] 90 91 92 「.data」で定義される部分をデータセグメントと呼びます。 93 各行は「32ビット数値で内容は「19」の変数を定義しそのアドレスを「A」で参照できるようにする」のような意味を持ちます。 94 95 「.text」で定義される部分をコードセグメントと呼び、これがプログラムの本体になります。 87 88 アセンブリプログラムで、「.data」から始まる部分をデータセグメントと呼びます。 89 各行は「32ビット数値で内容は「19」の変数を定義しそのアドレスを「A」で参照できるようにする」という意味です。 90 91 「.text」で定義される部分をテキストセグメントと呼び、これがプログラムの本体になります。 96 92 各命令の概要を以下のテーブルで説明します。 97 93 … … 106 102 107 103 補足:「lw $8, A」 は 「lw $8, A($0)」 の省略形であり、レジスタ$8には「A + $0」の値がロードされます。 104 105 xpsimを実行すると以下のような画面となります。 106 107 [[Image(http://galaxy.u-aizu.ac.jp/note/raw-attachment/wiki/Ex01%E3%80%80MIPS%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E3%81%AE%E5%9F%BA%E7%A4%8E2015/xpsim.png)]] 108 109 110 画面の上段には各レジスタの内容が示されています。 111 112 中段には各ボタンがあり、ソースファイルの読み込みには "load" ボタン、プログラムの実行には "step" ボタンをクリックします。 113 114 下段にはテキストセグメント(Text Segments)と、データセグメント(Data Segments)が示され、一番下の部分には実行時のメッセージが表示されます。 115 116 プログラムの実行には二つの方法があり、stepボタンによる実行では、テキストセグメントの命令が一命令ずつ実行されます。 117 一方"run"ボタンを使うと、プログラムを一気に実行できます。 118 119 このプログラムをstep実行し、一命令ずつレジスタやデータセグメントの値が変化するのを確かめること。 108 120 109 121 = 複雑な式の評価 =
