Software 用語集 アセンブラをやろう!8086系

【アセンブラをやろう!8086系】

[24/May/1997]
☆アセンブラとは
Assembler【アセンブラ】はコンピュータが理解出来る機械語(マシン語)に一番近い言語です.マシン語とは0と1の集まりで,おおよそ人間が判断するにはあまり適しません(蛇足であるが,昔はこの0と1の集まりを手でスイッチの集まりを前に入力したものだ!)
しかしいくら何でも0と1の集まりでは人間がプログラムを組むのに非常な時間がかかります.そこで人間が理解出来る言葉で記述し後でそれを0と1に直すプログラムが作られました.それが Compiler 【コンパイラ】です.
コンパイラは色々な種類がありますが,アセンブラは1行が1つの命令になっています.この命令はコンピューターが理解出来る命令に相当しますので,コンピュータに一番近い言語と言うわけです.
さてここでの環境としては80系の CPU を搭載し,MS-DOS または PS-DOS が動作することを前提とします.

☆アセンブラでよく使う命令
アセンブラでよく使う命令はそんなに多くありません.
MOV , ADD , CMP , JMP , JZ , PUSH , POP , IN , OUT これらを覚えれば小さいプログラムであれば組めます.

ではアセンブラで画面にお約束の【Hello! World】を出してみましょう!
下記のプログラムはDOSファンクションコールを利用しています.

.286c

cseg segment

  assume cs:cseg , ds:cseg

    push    ds                  ; Save Original segument data
    push    cs                  ; Save segment
    pop     ds                  ; Load segment

    mov     ah,09h              ; Display String
    mov     dx,offset data      ; Data offset address
    int     21h                 ; DOS Function Call

    pop     ds                  ; Load Original Data Segment data

    mov     ah,4ch              ; Process End
    mov     al,0h               ; Return code
    int     21h                 ; DOS Function call

    data    db  "Hello! World$" ; Data

cseg ends
end

さて上記プログラムをコンパイルします.

C:\TEST>masm5 test;     【←このように入力します】

Microsoft (R) Macro Assembler Version 5.10
Copyright (C) Microsoft Corp 1981, 1988.  All rights reserved.


  49730 + 237819 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors


これでコンパイルは成功です!
このとき TEST.OBJ というファイルが中に出来ています.これは中間ファイルで色々な中間ファイルをつなぎ合わせて大きなプログラムを作ることも可能です.
さてではこの中間ファイルを実行ファイル(EXEファイル)に変換します.

C:\TEST>link4 test;

Microsoft (R) Overlay Linker  Version 3.64
Copyright (C) Microsoft Corp 1983-1988.  All rights reserved.

LINK : warning L4021: no stack segment

さてこれで一応実行形式ファイル(EXEファイル)が出来ました.
さて warnig は気にしないで下さい.これはスタックセグメントが指定されていない為におこる注意ですが,まあこのくらいの短いプログラムではディフォルトですみますので,特に問題は無いです
さあ実行してみましょう!

C:\TEST>test
Hello! World

ちゃんと出来たでしょ!簡単じゃないですかぁ
【尚ここではマイクロソフトアセンブラ5.1以上を対象にしています】
以下の用語は各社の商標または商標登録です


前に戻る
最初に戻る