アセンブラ(Assembler)


 アセンブリ言語からマシン語に翻訳してくれるのがアセンブラです。 別にアセンブラに頼らずにマニュアルを見ながら自分で翻訳してもいい ですが(^^;;(冗談) そんな時代もありました。
 やはりメジャーどころは、Microsoft Macro Assembler(MASM)、か Borland Turbo Assembler(TASM) といったところでしょう。昨今のCコンパラにはインライン アセンブル機能がついているので、Cコンパイラでもアセンブリ言語の記述が 出来ます。
 ここでは MASM に注目して話しを進めることとします。
最近ではNASMが人気のようで..

  1. MASM
  2. アセンブル
  3. リンク
  4. (EXE2BIN)
  5. 実 行

尚、MASM は下記サイトより入手可能です。(TASMはまだ販売しているので..)
http://home.att.net/~jackklein/x86/x86_main.html
http://www.geocities.com/SiliconValley/Program/1612/


  1. MASM
  2.  MASM はその名の通り「マクロ」アセンブラで強力なマクロ機能が 使用できます。MASM6.0からは構造化プログラミングも対応して尚一層 使いやすくなりましたが、時既にアセンブラ全盛時は過ぎた感も個人的 にはしていました。MASM6.0はNEC PC98シリーズ版しかありませんが、 統合開発環境を使用しなければ、IBM PCでも使用できます。(英語版ならあるよ)

  3. アセンブル
  4.  K&Rの本に習って(笑)"hello asm world."なんぞ表示するプログラムから(爆)  下記ソース。
    ;  foo.asm
    ;
    CR	EQU	0Dh
    LF	EQU	0Ah
    
    code	segment
    	assume	cs:code,ds:code,ss:code
    	org	100h
    START:	mov	ah,9
    	mov	dx,offset msg
    	int	21h
    	mov	ah,4Ch
    	int	21h
    
    msg	db	CR,LF
    	db	'hello asm world.'
    	db	CR,LF,'$'
    
    code	ends
    	end	START
    
     アセンブルします。
    C:\>masm /Ml foo,foo ;
    

  5. リンク
  6. C:\>link /NOI foo,foo ;
    

  7. EXE2BIN
  8.  8bitCPU(8080)から連綿と受け継がれたCOM形式へ変換します。これで実行ファイルの 完成です。  ところでここで言うCOMは"Componet Object Model"とは違うのでご注意を。
    C:\>exe2bin foo.exe foo.com
    

  9. 実 行
  10. C:\>foo
    hello asm world.
    

by masu
NIFTY SERVE: QZY03321
mailto:massun.masumoto@nifty.ne.jp
URL : http://member.nifty.ne.jp/~masumoto/