おきまりのCOMサンプル

yang20052005-05-26


さっそく、MASMを使って実際に実行できるCOMファイルを作ってみましょう。

インターネットで、アセンブラ入門といえば、必ず出ていそうなサンプルプログラムですが・・・ (笑)

実行すると、画面に
 Hello!
と表示し、キーを押すと終了します。

Windowsからでも、直接ダブルクリックで実行できます。(写真)

ソースファイルは、次の通り、

;---------------------------------------
; アセンブラ・プログラムのサンプル COM用
; 	2005.05.10   "hello.asm"
;---------------------------------------
	;セグメントの宣言
	assume  cs:SG, ds:SG, es:SG, ss:SG	; 全部同じ値に。

SG	segment		; ここから コード セグメント 開始。
	org 100h	         ; COMは100hから開始するルール。
START:			; プログラム開始ラベル
	mov	DX, offset MSG         ; 表示する文字のオフセット値。
	mov	AH, 09h                ; 09h=文字列表示のファンクション番号
	int	21h                    ; これで、表示実行。
	;
	mov	AH,08h                 ; 08h=キー入力のファンクション番号
	int	21h                    ; ALにキーコードが入る
	;
	mov	AX,4C00h               ; AH=4Ch:終了, AL=DOSへの戻り値。
         int      21h                     ; DOSへ戻る
;
MSG	db	'Hello !',0Dh,0Ah,'$'  ; 表示する文字列。'$'は終わりを示す記号
;
SG	ends		; コードセグメントの終了
;
	end	START	; プログラムの終了。STARTは開始したラベル
  end

これを、テキスト・エディタで入力し(この画面をコピー&ペーストでもOK)、アセンブルすれば動きます。 ファイル名は hello.asm とします。

 >ML /c /Fl hello.asm
 >VAL hello;
 >EXE2COM hello

で、COMファイルが出来上がります。
実行して、写真のようになる事を確認してみて下さい。


これから作成する OSでも DOSと互換性を持たせ、このCOMファイルが実行できるようになれば、まずは1段階クリアです。