- ベストアンサー
CASLアセンブラ命令とは?
- CASLアセンブラ命令はプログラムの変更に応じてメモリアドレスを自動的に変更する機能を持つ機械語命令の一種です。
- アセンブリ言語は人に見やすいニーモニックが付けられたプログラミング言語であり、CASLのDC命令のようなOS的な機能も含まれています。
- CASLアセンブラ命令はハンドアセンブリでは実現できない自動変更機能を持ち、プログラムの変更に柔軟に対応することができます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 >プログラムの変更==>DCでアドレスの自動変更 DC命令に限らず、命令につけられたアドレスが何番地であるかを計算(カウントアップ)するのは、アセンブラの基本機能です。これがないと、生成した機械語命令を何番地に格納したらいいのかわからない。 >という、アセンブラ言語が単にニーモニックの記述だけでない、アプリとしての機能(OS的機能)が含まれているかという質問です。 アセンブラはアプリなので、ニーモニックを解釈したり、上記のアドレスの計算をしたりするのは、アセンブラというアプリの機能です。OSは関係ありません。OSの上でアセンブラというアプリが動いているだけ。 >LABER DC 100 とすると。 >これは、メモリに領域を確保し100をいれる命令だが、プログラムが変更されれば、メモリアドレスは変更される。 もしかして勘違いがあるかもしれませんが、 LABER DC 100 というのは、 「LABERという名前のラベルを現在の命令格納アドレスポインタの値で定義して、そのアドレスの1ワードに100を入れて、命令格納アドレスポインタを+1する」 で、 LABEL NOP という機械語命令は、 「LABELという名前のラベルを現在の命令格納アドレスポインタの値で定義して、そのアドレスの2ワードにNOPの命令コードを入れて、命令格納アドレスポインタを+2する」 と、いうことで、DC命令と機械語命令はアセンブラの動作(ソースファイルをアセンブルして命令コードファイルを作る際の動作)としては格納するデータがちょっと違うだけです。DS命令も、データの長さが1とか2でなく可変であることと、データに何が入るか分からないというくらいの違いだけです。
その他の回答 (3)
- neko1963
- ベストアンサー率49% (127/258)
>アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、 >ハンドアセンブリでは、できない機能が含まれている。 これは違います。 「アセンブラ命令」に含んでいるのでは無く、「アセンブラ」というソフトのシンボリック機能です。 ラベルを定義して、コードやデータのサイズ等に応じて、ラベルに対応するアドレス値を計算して機械語に変換してくれる機能、という事になると思いますが、これはあくまでも「アセンブラ」というソフトの機能です。
- osamuy
- ベストアンサー率42% (1231/2878)
> 私の質問の主旨はという、アセンブラ言語が単にニーモニックの記述だけでない、アプリとしての機能(OS的機能)が含まれているかという質問です。 これは、Yes。 まあ、「疑似命令をもたないアセンブリ言語」も実現可能なので、あんまり厳密な答えではないですが。 個人的には、質問文の以下の部分に違和感を覚えました: > アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、ハンドアセンブリでは、できない機能が含まれている。 質問内容的にはノイズになっているというか、そう質問されるとそれにはNoと答えざるをえなくなるというか。 多分、ANo.1のnotnotさんも、そのことを指摘したかったのではないかと。
- notnot
- ベストアンサー率47% (4900/10361)
>アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、ハンドアセンブリでは、できない機能が含まれている。 これは間違いです。 プログラム変更後にハンドアセンブルをやり直せば、アセンブラ命令(疑似命令とも言う)はハンドアセンブル可能です。 機械語命令: CPUの命令に翻訳される命令 アセンブラ命令: アセンブラに指示するための命令(データ定義、アドレスポインタを変更、プログラムの終わりを示すなど) マクロ命令: 複数の他の命令をまとめて、一つの命令のように書けるアセンブラへの指示 面倒かどうかと言うことを除けば、全部ハンドアセンブル可能です。てか、プログラムがやることは、時間さえかければ人間にできます(制限時間のあるものはだめ)。これはあたりまえ。
補足
ハンドアセンブリで可能なのは解ります。 私の質問の主旨は。 プログラムの変更==>DCでアドレスの自動変更 という、アセンブラ言語が単にニーモニックの記述だけでない、アプリとしての機能(OS的機能)が含まれているかという質問です。
お礼
アセンブラ言語というと、単にニーモニック機能である。的な説明が多く。アプリとして、利用者の利便性を考え、アドレス値をアプリとして計算する機能等、も含まれていると言う説明が解りました。