No. 1366/2188 Index Prev Next
Path: ie.u-ryukyu.ac.jp!hakata!sakura.kudpc!kuis-news!kuee-news!odins-suita!chiba-ns!villon.nig.ac.jp!aa.com!newsbase.nisiq.net!newsfeed.internetmci.com!in2.uu.net!192.244.176.52!news.iij.ad.jp!hskiij-news!light.imasy.or.jp!ikeda
From: ikeda@yokohama.yic.or.jp. (Hirotaka_Ikeda_)
Newsgroups: fj.beginners
Subject: Re: アセンブラ?
Date: 29 Nov 1996 13:53:57 GMT
Organization: Internet Mutual Aid Society Yokohama
Lines: 81
Message-ID: < 57mptl$b7e@light.imasy.or.jp> 
References: < 01bbda8a$ec6e1540$1d63cd85@1> 
	< 57f8vb$i04@ns.src.ricoh.co.jp> 
NNTP-Posting-Host: yokohama.yic.or.jp
X-Newsreader: mnews [version 1.19] 1995-07/21(Fri)


 池田@YICです。

< 57f8vb$i04@ns.src.ricoh.co.jp> の記事において
ohta@src.ricoh.co.jpさんは書きました。

>> fj.beginnersの記事< 01bbda8a$ec6e1540$1d63cd85@1> で
> >  	senmiura@mxp.meshnet.or.jpさんは書きました。
> >  >  アセンブラ、アセンブリ言語ってなに?
> >  
> >  コンパイラーはわかります?
> >  
> >  計算機を動かすためには計算機が直接解釈できる機械語
> >  命令を読ませる必要があるのですが、人間が書いたプロ
> >  グラムをコンパイル(翻訳あるいは編集)して機械語命令
> >  に変換するのがコンパイラーで、人間が書いたプログラ
> >  ムをアセンブル(直訳あるいは組み立て)して機械語命令
> >  に変換するのがアセンブラーです。
> >  
> >  コンパイラーが受け付ける言語はふつう高級言語という
> >  ような呼び方をされますが、これは水準の高い論理的な
> >  記述が可能で、複雑な手順を経て機械語命令に変換され
> >  ます。
> >  
> >  アセンブリー言語のほうは、記述できる命令自体は機械
> >  語命令と1対1に対応するもので、ジャンプ命令の飛び先
> >  やデータ領域などのアドレスを記号で書いておくことが
> >  できる程度のものです。
> >  
> >  こんな説明でわかりますか?
> >  --
> >  太田純(Junn Ohta) (株)リコー ソフトウェア事業センター
> >  ohta@src.ricoh.co.jp/JCF00656@niftyserve.or.jp

 言葉の説明だけでは判りにくいと思いますので
 Z-80 を例に補足させてください。

 CPU が実行中の命令を取り込むメモリー番地を
 9000H (Hは16進数  をあらわす) へ JUMP (飛ぶ ) には
 マシンの code では
 C3 0090 と 書かれています。(Z80ではメモリの上下を逆にあらわすので
 00 90 は 9000H の意味) 

 これを、Z80 のアセンブラー表記すると
 JP 9000H と書きます。

 ただし、9000Hは 例えば keyinput のプログラムだったりすると
 普通は
#define keyinput 9000H
 のように 定義しておいて 
 JP keyinput のように書きます。

 このような アセンブラー表記のプログラムを コンパイラーに
 かけると 
 C3 0090  のような コードを生成するわけです。
 
 普通はこのコードは ファイル上に書かれ、必要なツールを
 介して PROM WRITER に送り ROM に書き来んだり、あるいは
 OS上で 実行形式のファイル(MS-DOSの *.exe に相当)として 
 コマンド実行したりします。

 現在は アセンブラーを直接利用する人は少なくて例えば C 言語等の
 ような物が多く使われます。
 (共用することも多いですが..高級言語からアセンブラーで書かれた 
 低級な関数を呼んだりします。。)
 C 言語も printf( stdout, " hellow\n" ); のような 構文が
 コンパイル操作により 同じく実行形式のファイルが
 生成されます。
 上記の例は hellow と CRT に出すだけですが
 これを アセンブラーで書くと 1000行以上になると
 思います。
 
 昔、Z-80マシン上の BASIC 言語で print " A"  ( A と表示させる)
 が アセンブラー表示させるモニターで 追いかけた所
 数千行に 渡った経験があります。

---
(有)ケミカルセンサーアンドコンピューティング
横浜インターネットコミュニケーションズ
 池田浩隆 ikeda@yokohama.yic.or.jp

Next
Continue < toda-0212961235270001@ph1pc3.med.niigata-u.ac.jp>
< 587dcf$qdk@light.imasy.or.jp>
< 588bml$sb8@kinka.tokyo.pfu.co.jp>