Skip to content

Commit 648d1c0

Browse files
committed
ヘルプの更新、サンプルのコメント更新
1 parent 158a195 commit 648d1c0

File tree

6 files changed

+164
-201
lines changed

6 files changed

+164
-201
lines changed

asc-simulator/Resources/help.html

Lines changed: 115 additions & 127 deletions
Large diffs are not rendered by default.

asc-simulator/Resources/help.md

Lines changed: 32 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
# ASC Simulatorの使い方
2-
1+
---
2+
title: ASC Simulatorの使い方
3+
lang: ja
34
---
45

56
# 目次
@@ -17,84 +18,67 @@
1718

1819
---
1920

20-
<span id="1-画面の説明"></span>
2121
# 1. 画面の説明
2222
![画面](help/画面.png)
2323

2424
[2. 機能の説明](#2-機能の説明)にて、各部の詳しい説明をします。
2525

26-
<span id="2-機能の説明"></span>
2726
# 2. 機能の説明
28-
<span id="2-1-メニューバー"></span>
2927
## 2-1. メニューバー
30-
<span id="ファイル"></span>
3128
## ファイル
3229
![ファイル](help/ファイル.png)
3330

34-
<span id="ファイルを開く"></span>
3531
#### [ファイルを開く]
3632
asc-assembler.exeやasc-simulator.exeの出力した.ascoファイルを選択し、メモリに読み込みます。
3733

3834
またこの時、.ascsファイルで設定したORGの値がPCに設定されます。
3935

40-
<span id="ファイルを書き出す"></span>
4136
#### [ファイルへ書き出す]
4237
MMの内容を.ascoファイルへ書き出します。
4338

4439
ここで書き出すファイルは、asc-assembler.exeの書き出すファイルと互換性があります。
4540

46-
<span id="環境設定"></span>
4741
#### [環境設定]
4842
マシンビューの設定など、細かな設定をすることができます。
4943

50-
<span id="動作"></span>
5144
## 動作
5245
![動作](help/動作.png)
5346

54-
<span id="レジスタとフラグを初期化"></span>
5547
#### [レジスタとフラグを初期化]
5648
レジスタ、フラグの値を0に設定します。
5749

5850
後述する[[初期化ボタン]![初期化](help/初期化ボタン.png)](#初期化)との違いは、命令サイクルの状態を変更しないことです。
5951

60-
<span id="メモリを初期化"></span>
6152
#### [メモリを初期化]
6253
メモリの内容を0で初期化します。
6354

64-
<span id="ブレークポイントを初期化"></span>
6555
#### [ブレークポイントを初期化]
6656
ブレークポイントを全て解除します。
6757

68-
<span id="表示を更新"></span>
6958
#### [表示を更新]
7059
マシンビューの表示、MMの表示、レジスタの表示を更新します。
7160
表示に不具合のある場合などに使用してください。
7261

73-
<span id="指定アドレスへ移動"></span>
7462
#### [指定アドレスへ移動]
7563
押すと、以下のようなダイアログが表示されます。
7664

7765
![指定アドレスへ移動](help/指定アドレスへ移動.png)
7866

79-
表示したいアドレスを入力し、**[移動]**を押すことで、MMの表示を指定したアドレスまでスクロールすることができます。
67+
表示したいアドレスを入力し、[**移動**]を押すことで、MMの表示を指定したアドレスまでスクロールすることができます。
8068

81-
<span id="ヘルプ"></span>
8269
## ヘルプ
8370
![ヘルプ](help/ヘルプ.png)
8471
### [使い方]
8572
このページを表示します。
8673

87-
<span id="このプログラムについて"></span>
8874
### [このプログラムについて]
8975
プログラムのバージョンなどを確認することができます。
9076

91-
<span id="2-2-マシンビュー"></span>
9277
## 2-2. マシンビュー
9378
ASCマシンの状態を確認することができます。
9479

9580
![マシンビュー](help/マシンビュー.png)
9681

97-
<span id="色について"></span>
9882
### 色について
9983
マシンビューにおいて、値の書き換え、値の参照などが発生した場合、色が変わることがあります。
10084

@@ -108,11 +92,9 @@ ASCマシンの状態を確認することができます。
10892

10993
また、色のついた矢印は、**値が移動したこと**を表しています。
11094

111-
<span id="2-3-メモリレジスタ"></span>
11295
## 2-3. メモリ、レジスタ
113-
<span id="MMビューの見方"></span>
11496
### MMビューの見方
115-
画面右の**[MM]**という表に、ASCマシンのMMの内容が表示されます。
97+
画面右の[**MM**]という表に、ASCマシンのMMの内容が表示されます。
11698

11799
![MMビュー](help/MM.png)
118100

@@ -125,7 +107,6 @@ MMビューには**アドレス**、**バイナリ**、**ニーモニック**の
125107
.ascsファイルで定数とした値も、
126108
シミュレータ上では命令として解釈され表示されることに注意してください。)_
127109

128-
<span id="MMビューの色について"></span>
129110
### MMビューの色について
130111
MMビューの行が着色されるときがあります。
131112

@@ -136,61 +117,56 @@ MMビューの行が着色されるときがあります。
136117
**薄い赤****PCの指すアドレスの命令の内容**を表しています。
137118

138119

139-
<span id="MMの内容を変更する"></span>
140-
### MMの内容を変更する
120+
### MMの内容を変更する
141121
**バイナリ****ニーモニック**の列は、クリックすることで直接書き換えることができます。
142122

143123
値を入力した後、**Enterを押すか、他の行をクリックすること**でMMへ反映することができます。
144124

145-
書式にエラーがあった場合は、**赤い![赤いマーク](help/赤いマーク.png)**マークが表示されます。
125+
書式にエラーがあった場合は、**赤い**![赤いマーク](help/赤いマーク.png)マークが表示されます。
126+
127+
この**赤い**![赤いマーク](help/赤いマーク.png)マークにマウスオーバーすることでエラーの内容を確認することができます。
146128

147-
この**赤い![赤いマーク](help/赤いマーク.png)**マークにマウスオーバーすることでエラーの内容を確認することができます。
148129
![MMエラー](help/MMエラー.png)
149130

150-
<span id="ブレークポイントを設定する"></span>
151131
### ブレークポイントを設定する
152-
**[MM]**のアドレスの左にある列をクリックすることで、**ブレークポイント**を設定できます。
132+
[**MM**]のアドレスの左にある列をクリックすることで、**ブレークポイント**を設定できます。
153133

154134
![ブレークポイント](help/ブレークポイント.png)
155135

156136
ブレークポイントとは、[デバッグ](#3-2-デバッグする)の際などに、指定したアドレスで自動的に実行を停止する機能です。
157137

158-
ブレークポイントが設定されたアドレスは、左側に**赤い丸![赤い丸](help/赤い丸.png)**が表示されます。
138+
ブレークポイントが設定されたアドレスは、左側に**赤い丸**![赤い丸](help/赤い丸.png)が表示されます。
159139

160-
この**赤い丸![赤い丸](help/赤い丸.png)**をもう一度クリックすることで、ブレークポイントを解除することができます。
140+
この**赤い丸**![赤い丸](help/赤い丸.png)をもう一度クリックすることで、ブレークポイントを解除することができます。
161141

162-
また、メニューバーより**[動作][ブレークポイントを初期化]**機能より、全てのブレークポイントを解除することもできます。→_[ブレークポイントを初期化](#ブレークポイントを初期化)_
142+
また、メニューバーより[**動作**][**ブレークポイントを初期化**]機能より、全てのブレークポイントを解除することもできます。→_[ブレークポイントを初期化](#ブレークポイントを初期化)_
163143

164144
---
165145

166-
<span id="レジスタビューの見方"></span>
167146
### レジスタビューの見方
168-
画面右下に表示されている**[レジスタ]**という表に、レジスタとフラグの値が表示されます。
147+
画面右下に表示されている[**レジスタ**]という表に、レジスタとフラグの値が表示されます。
169148

170149
![レジスタ](help/レジスタ.png)
171150

172151
**名前******の列にそれぞれ、**レジスタ名****レジスタの値**が表示されています。
173152

174-
<span id="レジスタの内容を変更する"></span>
175153
### レジスタの内容を変更する
176154
****列はクリックすることで編集することができます。
177155

178156
**Enterを押すことや、他の行をクリックすること**で編集内容をレジスタに反映することができます。
179157

180-
入力にエラーがあった場合は、**赤い![赤いマーク](help/赤いマーク.png)**マークが表示されます。
158+
入力にエラーがあった場合は、**赤い**![赤いマーク](help/赤いマーク.png)マークが表示されます。
181159

182-
この**赤い![赤いマーク](help/赤いマーク.png)**マークにマウスオーバーすることでエラーの内容を確認することができます。
160+
この**赤い**![赤いマーク](help/赤いマーク.png)マークにマウスオーバーすることでエラーの内容を確認することができます。
183161

184162
![レジスタエラー](help/レジスタエラー.png)
185163

186164

187-
<span id="2-4-ツールバー"></span>
188165
## 2-4. ツールバー
189166
画面下部のツールバーには、ASCマシンの動作を操作するボタンなどが配置されています。
190167

191168
![ツールバー](help/ツールバー.png)
192169

193-
<span id="初期化"></span>
194170
### 初期化
195171
![初期化](help/初期化ボタン.png)
196172

@@ -201,38 +177,31 @@ ASCマシンの**レジスタとフラグの値を0に設定**し、**命令サ
201177

202178
プログラムを実行しなおす際などには、基本的にはこちらを使用してください。
203179

204-
<span id="通常実行"></span>
205180
### 通常実行
206181
![通常実行](help/通常実行ボタン.png)
207182

208183
ASCマシンを、**HLT命令****ブレークポイント**があわられるまで実行します。
209184

210-
手動で停止する際は、後述する**[[ブレーク]](#ブレーク)ボタン![](help/ブレークボタン.png)**を使用してください。
185+
手動で停止する際は、後述する[[**ブレーク**]](#ブレーク)ボタン![](help/ブレークボタン.png)を使用してください。
211186

212-
<span id="命令単位ステップラン"></span>
213187
### 命令単位ステップラン
214188
![命令単位ステップラン](help/命令単位ステップランボタン.png)
215189

216190
ASCマシンを、**次の命令まで実行して停止します。**
217191

218192

219-
<span id="状態単位ステップラン"></span>
220193
### 状態単位ステップラン
221194
![状態単位ステップラン](help/状態単位ステップランボタン.png)
222195

223196
ASCマシンを、**次の状態まで実行して停止します。**
224197

225-
<span id="ブレーク"></span>
226198
### ブレーク
227199
![ブレーク](help/ブレークボタン.png)
228200

229-
ASCマシンを、**現在の状態で停止します。**
230-
231-
HLT命令で停止している際も、一度このボタンを押してから各種操作をするようにしてください。
201+
通常実行時に**実行を(強制的に)中断し停止します。**
232202

233203
---
234204

235-
<span id="実行速度コントローラ"></span>
236205
### 実行速度コントローラ
237206
![実行速度コントローラ](help/実行速度コントローラ.png)
238207

@@ -242,63 +211,58 @@ HLT命令で停止している際も、一度このボタンを押してから
242211

243212
また、処理に時間のかかるプログラムなどは、実行速度を速めることで高速に実行することができます。
244213

245-
<span id="3-基本的な使い方"></span>
246214
# 3. 基本的な使い方
247-
<span id="3-1-自分で作ったプログラムを実行する"></span>
248215
## 3-1. 自分で作ったプログラムを実行する
249216
このシミュレータは、同封のasc-assembler.exeの出力する、.ascoファイルを読み込むことができます。
250217

251218
以下に、このシミュレータを使ってプログラムを実行する手順を示します。
252219

253-
1. **[初期化]ボタン**![初期化](help/初期化ボタン.png)を押す。
254-
2. メニューバーより、**[ファイル]****[ファイルを開く]**を押す。
255-
3. 読み込みたいファイルを選択し、**[開く]**を押す。
220+
1. [**初期化**]**ボタン**![初期化](help/初期化ボタン.png)を押す。
221+
2. メニューバーより、[**ファイル**][**ファイルを開く**]を押す。
222+
3. 読み込みたいファイルを選択し、[**開く**]を押す。
256223
4. 画面下部のステータスバーで、読み込みの成功を確認する。
257-
5. **[通常実行]**ボタン![通常実行](help/通常実行ボタン.png)を押す。
224+
5. [**通常実行**]ボタン![通常実行](help/通常実行ボタン.png)を押す。
258225

259226
以上の手順で、プログラムを実行することができます。
260227

261228
**(2, 3の手順を、ファイルをドラッグ&ドロップすることによって代用することもできます。)**
262229

263-
<span id="3-2-デバッグする"></span>
264230
## 3-2. デバッグする
265231

266232
読み込んだプログラムをデバッグするための手順を、以下に示します。
267233

268234
1. 動作を確認したいアドレスに、ブレークポイントを設定する。→
269235
_[ブレークポイントを設定する](#ブレークポイントを設定する)_
270-
2. **[通常実行]ボタン![通常実行](help/通常実行ボタン.png)**を押す。
271-
3. ブレークポイントで停止するので、**[命令単位ステップラン]ボタン![命令単位](help/命令単位ステップランボタン.png)**
272-
**[状態単位ステップラン]ボタン![状態単位](help/状態単位ステップランボタン.png)**を使い、動作を確認する。
273-
4. バグを確認したら、MMの該当のアドレスを書き換える。→ _[MMの内容を変更する](#MMの内容を変更する)_
274-
5. **[初期化]ボタン![初期化](help/初期化ボタン.png)**を押して、レジスタとフラグを初期化する。
236+
2. [**通常実行**]**ボタン**![通常実行](help/通常実行ボタン.png)を押す。
237+
3. ブレークポイントで停止するので、[**命令単位ステップラン**]**ボタン**![命令単位](help/命令単位ステップランボタン.png)
238+
[**状態単位ステップラン**]**ボタン**![状態単位](help/状態単位ステップランボタン.png)を使い、動作を確認する。
239+
4. バグを確認したら、MMの該当のアドレスを書き換える。→ _[MMの内容を変更する](#mmの内容を変更する)_
240+
5. [**初期化**]**ボタン**![初期化](help/初期化ボタン.png)を押して、レジスタとフラグを初期化する。
275241
6. PCの値をプログラムの初期位置に変更し、手順2へ戻る。→ _[レジスタの内容を変更する](#レジスタの内容を変更する)_
276242

277243
バグの改善が確認できるまで、この操作を繰り返してください。
278244

279245
ブレークポイントで停止している間に、RやZ, Nなどの値を変更することも、バグの特定につながります。
280246

281-
<span id="3-3-シミュレータ上でプログラムを作成する"></span>
282247
## 3-3. シミュレータ上でプログラムを作成する
283248

284-
[MMの変更機能](#MMの内容を変更する)により、シミュレータ上でプログラムを作成することも可能です。
249+
[MMの変更機能](#mmの内容を変更する)により、シミュレータ上でプログラムを作成することも可能です。
285250

286251
以下に、その手順を示します。
287252

288253
1. MMが初期化されていることを確認する。→ _[メモリを初期化](#メモリを初期化)_
289-
2. MMの内容を書き換え、プログラムを作成する。→ _[MMの内容を変更する](#MMの内容を変更する)_
254+
2. MMの内容を書き換え、プログラムを作成する。→ _[MMの内容を変更する](#mmの内容を変更する)_
290255
3. PCの値をプログラムの開始位置に設定する。→ _[レジスタの内容を変更する](#レジスタの内容を変更する)_
291-
4. **[通常実行]ボタン![通常実行](help/通常実行ボタン.png)**を押し、動作を確認する。
256+
4. [**通常実行**]**ボタン**![通常実行](help/通常実行ボタン.png)を押し、動作を確認する。
292257
5. デバッグをする。→ _[3-2. デバッグする](#3-2-デバッグする)_
293-
6. メニューバーより、**[ファイル]****[ファイルへ書き出す]**を押し、プログラムを保存する。
258+
6. メニューバーより、[**ファイル**][**ファイルへ書き出す**]を押し、プログラムを保存する。
294259

295260
ここで書き出した.ascoファイルは、asc-assembler.exeの出力するファイルと互換性があるため、再びシミューレータで読み込むことができます。
296261

297262

298-
<span id="4-注意点"></span>
299263
# 4. 注意点
300264
* メモリの内容を書き出す際、0番地から書き出されます。
301265
* メモリの内容を書き出したファイルのサイズは、変更されているメモリの最後の番地の、
302266
次の2の倍数byteになります。(例えば、メモリの使用が0xF0〜0xFF番地までの場合、128byteになります)
303267
* 実行中は、メモリ、レジスタの値は変更することができません。
304-
* HLT命令でASCマシンが停止した場合も、ブレークボタンを押すまで操作はできません
268+
* ADD、SUB命令によりオーバフローが発生した場合、マシンはブレークし、「オーバフローが発生しています」と表示します
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
input-file: help.md
2+
output-file: help.html
3+
from: commonmark_x
4+
to: html
5+
css:
6+
- github.css
7+
standalone: true
8+
wrap: preserve

asc-simulator/asc-simulator.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@
187187
</ProjectReference>
188188
</ItemGroup>
189189
<ItemGroup>
190+
<None Include="resources\help.md" />
191+
<None Include="resources\pandoc.yaml" />
190192
<None Include="resources\Run.png" />
191193
</ItemGroup>
192194
<ItemGroup>

resources/sample/BITCOUNT.ascs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
; ビットカウント
22
; Data中の1を数え、結果をCountに格納する
33
;
4-
; 1を数えるために1ビットだけ1が立ったマスクを使用するが、
5-
; シフト命令がないため、マスクの作成は000...001から出発して
6-
; 同じデータを加算することにより行っている。
7-
; このマスクとの論理積が1となるか、0となるかのテストによって
8-
; 1が立っているかどうかを判定し、計数する。
4+
; 1を数えるために1ビットだけ1が立ったマスクを使用する。
5+
; シフト命令がないため、マスクの作成は、000...001から出発して、
6+
; 同じデータを加算して2倍することにより1ビット左シフトする
7+
; ことを繰り返して行っている。
8+
; このマスクとDataとの論理積が0となるかどうかをテストして
9+
; 該当するビット位置に1が立っているかどうかを判定し、計数する。
910
; なお、MSBのテストのために、010...000+010...000→100...000を
1011
; 行うとオーバフロー割り込みを起こすため、MSBだけは、
1112
; あらかじめ100...000をマスクとして用意してテストに用いている。

resources/sample/factorial.ascs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Next LD C ; C←A*B
2323
B FLoop ;ループの先頭へ戻る
2424
EndFact HLT ;正常終了
2525

26-
; かけ算サブルーチン-A×Bを計算してCに置く
26+
; かけ算サブルーチン[A×Bを計算してCに置く]
2727
MULT LD Zero
2828
MLoop ADD A
2929
ST C

0 commit comments

Comments
 (0)