例えば、CASLのアセンブラ命令にDCがある。
LABER DC 100 とすると。
これは、メモリに領域を確保し100をいれる命令だが、プログラムが変更されれば、メモリアドレスは変更される。
CASLには機械語命令・マクロ命令・アセンブラ命令がある。
機械語命令は人に分かりやすいようにニーモニックが付けられているだけだが、
アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、ハンドアセンブリでは、できない機能が含まれている。
アセンブリ言語は色々ありますが、アセンブラ言語は人に見やすいようにニーモニックが付けられているだけでなく、CASLのDC命令のように、ハンドアセンブリではできないアドレスの自動変更のようなアプリケーションとしての機能(OS的機能)も一般にふくまれているとかんがえてよいのでしょうか?
よろしく願います。
No.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でなく可変であることと、データに何が入るか分からないというくらいの違いだけです。
No.3
- 回答日時:
>アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、
>ハンドアセンブリでは、できない機能が含まれている。
これは違います。
「アセンブラ命令」に含んでいるのでは無く、「アセンブラ」というソフトのシンボリック機能です。
ラベルを定義して、コードやデータのサイズ等に応じて、ラベルに対応するアドレス値を計算して機械語に変換してくれる機能、という事になると思いますが、これはあくまでも「アセンブラ」というソフトの機能です。
アセンブラ言語というと、単にニーモニック機能である。的な説明が多く。アプリとして、利用者の利便性を考え、アドレス値をアプリとして計算する機能等、も含まれていると言う説明が解りました。
No.2
- 回答日時:
> 私の質問の主旨はという、アセンブラ言語が単にニーモニックの記述だけでない、アプリとしての機能(OS的機能)が含まれているかという質問です。
これは、Yes。
まあ、「疑似命令をもたないアセンブリ言語」も実現可能なので、あんまり厳密な答えではないですが。
個人的には、質問文の以下の部分に違和感を覚えました:
> アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、ハンドアセンブリでは、できない機能が含まれている。
質問内容的にはノイズになっているというか、そう質問されるとそれにはNoと答えざるをえなくなるというか。
多分、ANo.1のnotnotさんも、そのことを指摘したかったのではないかと。
No.1
- 回答日時:
>アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、ハンドアセンブリでは、できない機能が含まれている。
これは間違いです。
プログラム変更後にハンドアセンブルをやり直せば、アセンブラ命令(疑似命令とも言う)はハンドアセンブル可能です。
機械語命令:
CPUの命令に翻訳される命令
アセンブラ命令:
アセンブラに指示するための命令(データ定義、アドレスポインタを変更、プログラムの終わりを示すなど)
マクロ命令:
複数の他の命令をまとめて、一つの命令のように書けるアセンブラへの指示
面倒かどうかと言うことを除けば、全部ハンドアセンブル可能です。てか、プログラムがやることは、時間さえかければ人間にできます(制限時間のあるものはだめ)。これはあたりまえ。
この回答への補足
ハンドアセンブリで可能なのは解ります。
私の質問の主旨は。
プログラムの変更==>DCでアドレスの自動変更
という、アセンブラ言語が単にニーモニックの記述だけでない、アプリとしての機能(OS的機能)が含まれているかという質問です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- 哲学 《光あれ》という命令法は どういう実態か 1 2023/01/24 17:57
- その他(プログラミング・Web制作) x86_32のGASの擬似命令 3 2023/06/07 19:55
- 情報処理技術者・Microsoft認定資格 (パイプライン処理)基本情報技術者の演習問題について 1 2023/03/11 17:47
- CPU・メモリ・マザーボード CPUがメモリ上の命令を実行する流れについての質問です。 3 2023/05/05 01:41
- C言語・C++・C# アセンブラ指令 3 2023/06/17 14:47
- CPU・メモリ・マザーボード CPUがメモリ上に書かれている命令を実行した後の流れについての質問です。 1 2023/05/05 01:18
- 日本語 用言の活用組織はいかにして生成したか:或る試論 1 2022/06/30 05:41
- 事件・事故 ガーシー容疑者にパスポート返納命令。なぜ? ガーシー容疑者だけ特別扱いなのか? 7 2023/03/18 08:16
- その他(自然科学) 論文のまとめに関して(小論文)添削お願いします。 6 2023/07/16 14:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PICに書き込むプログラムや変数...
-
アセンブラのLA
-
データコピー
-
バイナリの実行ファイルをgccを...
-
アセンブラからC言語に変換する...
-
アセンブラで割り算
-
PICはアセンブラとC言語のどち...
-
PICのアセンブラからC言語へ変...
-
ライン数とステップ数の違いは?
-
SHの命令の意味について
-
素数を求めるプログラム(アセン...
-
素朴な疑問 (C言語とアセン...
-
情報処理技術者試験センター・...
-
MASMの機種依存についてお尋ね...
-
アセンブラエディタ
-
アセンブラ(アセンブリ)の何か...
-
PIC16F84AのデバイスでC言語を...
-
Linuxについて。
-
Cとアセンブリ
-
【H8マイコン】HEWで埋め込みア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
Windowsはオープンソースですか?
-
[C言語→アセンブリ言語]はどう...
-
実行ファイルからソースはみれる?
-
PICはアセンブラとC言語のどち...
-
void __cdeclなど_
-
アセンブラ言語がわかりません。
-
このアセンブラの意味を教えて...
-
エンディアンについて。
-
アセンブラのコマンドについて
-
PICのアセンブラからC言語へ変...
-
アセンブラで割り算
-
最初のアセンブラ
-
CASIOのポケコンZ-1GRのアセン...
-
SHの命令の意味について
-
PC-9801でマシン語を学習するに...
-
PC-9801 MS-DOSでの実行ファイ...
-
アセンブラのLA
-
masm32がうまく動きません。
おすすめ情報