機械語アセンブラの使い方

機械語プログラムのアセンブル方法

機械語プログラムのアセンブリコードを記述したファイル (以下、ソースファイルと呼ぶ)をZ:\m1simの下に置く。
(ここでは説明の都合上、"ex1"という名前とする)

asm32フォルダの図

Z:\m1simの下にある asm32.exeをダブルクリックする。
(注:エクスプローラの設定でファイル拡張子を表示していない場合は、 asm32と表示されている)
以下のようなウィンドウが開く。

asm32の起動直後画面

ファイルを聞いてくるので、ソースファイルの名前を入力する。
(例では、"ex1"と入力している)

asm32 ファイル名入力

アセンブル作業が開始され、ソースコードに間違いがなければ、 "NORMAL TERMINATION !"と表示される。

asm32 正常終了

ここで、別のファイルをアセンブルするかどうか聞かれるので、"y""n"を入力する。
(終了してよければ"n"を入力する)

正常でアセンブルされていれば、".a"".b"の拡張子のついた ファイルが1つずつ生成されている。
(例では、"ex1.a""ex1.b"のファイルが生成されている)

asm32フォルダの図その2

".a"のファイルはリストファイルで、".b"のファイルが機械語 プログラムのオブジェクトコードファイルである。

ソースコードに(文法上の)間違いがあれば、 "ERROR OCCURED IN ASSEMBLE TIME !"と表示される。
エラーが発生した場合は、ソースコードを確認し、再度アセンブル作業を行なう。

asm32 エラー終了

例えば、次のようなソースコードをアセンブルすると

	TITLE	ADSBM
	ORG	10
	L	1,A
	LEA	2,(1)
	L	3,B
	ADD	2,(3)
	SUB	1,(3)
	MULT	1,(2)
	ST	1,C
	ST	2,C+1
	HLT
A:	DC	4
B:	DC	1
C:	DS	2
	END

以下のようなリスティングファイル(.a)と

                       TITLE ADSBM
                       ORG   10
  0010 9 01 09         L     1,A
  0011 A 12 00         LEA   2,(1)
  0012 9 03 08         L     3,B
  0013 0 32 00         ADD   2,(3)
  0014 1 31 00         SUB   1,(3)
  0015 6 21 00         MULT  1,(2)
  0016 9 11 05         ST    1,C
  0017 9 12 05         ST    2,C+1
  0018 E 33 00         HLT   
  0019 0004    A:      DC    4
  001A 0001    B:      DC    1
  001B 0000    C:      DS    2
  001C 0000
                       END   

THERE WERE NO ERRORS.

LABEL(S)
A:        0019    B:        001A    C:        001B    

以下のような内容のオブジェクトコードファイル(.b)が生成される。

MM ADSBM
0010  9109
0011  A600
0012  9308
0013  0E00
0014  1D00
0015  6900
0016  9505
0017  9605
0018  EF00
0019  0004
001A  0001
001B  0000
001C  0000

エラーが発生した場合は、リスティングファイル(.aファイル)内に エラーの発生箇所が示されているので、修正のヒントにする。
(左端に "F"が表示されている行に文法上の誤りがある)

                       TITLE ADSBM
F 0000                 ORIG  
  0001 9 01 0A         L     1,A
  0002 A 12 00         LEA   2,(1)
  0003 9 03 09         L     3,B
F 0004                 ADC   
F 0005                 SBC   
  0006 6 21 00         MULT  1,(2)
F 0007                 S     
F 0008                 S     
  0009 E 33 00         HLT   
  000A 0004    A:      DC    4
  000B 0001    B:      DC    1
  000C 0000    C:      DS    2
  000D 0000
                       END   

THERE WERE 5 ERRORS.

LABEL(S)
A:        000B    B:        000C    C:        000D    

※ 教科書のp.102にもアセンブルの手順が説明されているので、そちらも参照 すること。


文責:大津