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以上を対象にしています】
以下の用語は各社の商標または商標登録です
前に戻る
最初に戻る