【初月無料キャンペーン中】gooドクター

アセンブリ言語という低水準言語は、なぜ必要なのでしょうか?それと、ニーモニックとは何でしょうか?ご教授いただけないでしょうか?すみません。

gooドクター

A 回答 (5件)

二モニックの部分だけ。



8080 だと レジスタAに5を代入するコードは

3E 05 (16進数 2バイト)

だけど、人間にはきついので

MVI A 05H

とテキストで記述するとアセンブラが

3E 05

に翻訳してくれます。

MVI Aは Move Immediate to A

の略で、即値をレジスタAに代入せよ
という命令 3E に対応します。
#即値とはこの場合2バイト目の05のこと。

つまり、マシン語の命令に付けた
人が解る名前を ニモニック と呼んでます。

本来の意味は「記憶の助けになるもの」
    • good
    • 0

Re: 回答No.2



> CPUをスリープ状態にするHLT命令はアセンブラ…合っていますでしょうか?

そうです。CPUを直接コントロールできるのはアセンブラです。
    • good
    • 0

こんばんは。



んー。昔だったらハードウェアの能力をフルに使う為に、高級言語
という通訳を間に入れずにコンピュータが理解しやすい言語で実行
する、という目的があったんですけど(ファミコン、メガドライブ
あたりはアセンブラ必須でした)、今じゃコンピュータが複雑になっ
ていてフルに使おうと人間が考えるより、高級言語で通訳した方が
手っ取り早い、というのが実情でしょうね。

でも今でも組み込み系とかはアセンブラが必須な事が多いですし、
高級言語の通訳コストを減らしたいなんていう場合は、アセンブラ
の考え方を理解できていないとお手上げになりがちなので、プログ
ラマを名乗るならアセンブラを学ぶべきいだ、とか言われたりしま
す。

ニーモニックはアセンブラから機械語に変換する為の記号、ですか
ね。

ちなみに、今、ファミコンやメガドライブの新作ソフトをリリース
するためにアセンブラは必要だ、なんていうひねくれた回答は可能
です。今でも本当に微々たる量ですが、新作ソフトがリリースされ
ているので。。アセンブラが出来るかというか「今それらで作ろう」
という声が出る事自体がおかしいと個人的には思うのですが。
    • good
    • 0
この回答へのお礼

CPUを直接操作するうなプログラムは高水準言語では作れないので低水準言語が必要になります。
CPUをスリープ状態にするHLT命令はアセンブラにはありますがC言語などの高水準言語には無い機能ですから、アセンブラを使ってプログラムを書かないと実現できません。というのは、合っていますでしょうか?教えていただけないでしょうか?すみません。

お礼日時:2021/05/26 22:32

アセンブリ言語(アセンブラ)は、コンピュータが直接解釈・実行できる機械語(マシン語)に置き換えられるソフトウェア言語です。



ニーモニックはアセンブリ言語を覚えやすくした命令語で、たとえばデータを読み込むときはLD(Load)、データを保存するときはST(Store)、データを移すときはMOV(Move)のような記号にしたものです。(LD、ST、MOVなどのニーモニックはアセンブリ言語によって多少は違います)。

アセンブリ言語はソフトウェア言語のもっとも基本にあるものなので、BASIC、COBOL、FORTRAN、C++のような高級な言語を理解するためには知っておくと役に立ちます。

またソフトウェアによってコンピュータ内部のハードウェアがビット単位やバイト単位でどう動くか(レジスターの動作)を把握し解析し追跡できるようにするためには、アセンブリ言語や機械語の理解がなければできません。

アセンブリ言語(あるいは機械語)はハードウェアとソフトウェアの両方の動きを関連付けて理解するのに欠かせません(ハードウェアとソフトウェアの両方を結びつけるもっとも基本的な原始的な言語です)。

電子工学をやってきた私自身は基本的にはハードウェアが専門でしたが、コンピュータ(当時はミニコンピュータ)を動かすためにはアセンブリ言語(あるいは機械語)が使えないと仕事にはなりませんでした。
    • good
    • 0
この回答へのお礼

CPUを直接操作するうなプログラムは高水準言語では作れないので低水準言語が必要になります。
CPUをスリープ状態にするHLT命令はアセンブラにはありますがC言語などの高水準言語には無い機能ですから、アセンブラを使ってプログラムを書かないと実現できません。というのは、合っていますでしょうか?教えていただけないでしょうか?すみません。

お礼日時:2021/05/26 22:32

機械語はただの数値の羅列ですので、その数値をわかりやすいように(アルファベットで)記述することがニーモニックであり、それがアセンブラです。

高級言語で記述しても、コンパイルすることにより機械語に翻訳されます。デバッグするときには機械語(またはニーモニック表示したもの)でしか見れません。そのため、機械語レベルでのデバッグのために、アセンブラの知識が必要なのです。
    • good
    • 0
この回答へのお礼

CPUを直接操作するうなプログラムは高水準言語では作れないので低水準言語が必要になります。
CPUをスリープ状態にするHLT命令はアセンブラにはありますがC言語などの高水準言語には無い機能ですから、アセンブラを使ってプログラムを書かないと実現できません。というのは、合っていますでしょうか?教えていただけないでしょうか?すみません。

お礼日時:2021/05/26 22:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング