• ベストアンサー

アセンブラ言語って何をするための言語なんですか?

CASL II を勉強しようと思うのですが、そもそもアセンブラ言語って何をするための言語なんですか?また、どんなことができるんですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

プログラム言語の中でも、もっとも機械よりの言語(機械語除く)ですね。 何ができるというより、何でもできます。 他の言語では実行する際にはコンパイルして機械語に翻訳して実行します。で、この機械語とアセンブラは1対1に対応しています。通常のC言語やCOBOLなどでコンパイルして100行になるプログラムでも、アセンブラですと50行ぐらいで記述する事も可能です。 命令自体が少ないですし、本番の問題には言語仕様も記述されます。非常にシンプルなプログラムになります。他の言語に比べて読解力を必要としませんので、試験の合格だけを求めるならおすすめの言語です。

その他の回答 (7)

  • noro6677
  • ベストアンサー率21% (34/158)
回答No.8

CASLはあくまで仮想言語です。 で機能も最低限の物しか実装されていません。 ですからCASLのアセンブラではできることは 他の言語より何もないと考えた方が良いです。 あくまで勉強用言語。(二種(基本)受験用言語)。 基本情報処理を受ける気がないならMASMなんかの x86系CPU用物を使ってx86系CPUの物を覚えた方が いいとおもいますよ。 ただしパソコンレベルだとほとんどの分野において アセンブラで行う必要性はなくアセンブラを覚える 時間で他の言語を2~3個でも覚えた方がいいと思いますよ。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.7

★アセンブリ言語について ・CPU命令の1つ1つに対応したニーモニック(キーワード)が用意されている言語です。 ・高級言語(人間が分かりやすいタイプ)に対して低級言語(人間にとって分かりづらい)という  言葉があり、アセンブリ言語はその『低級言語』タイプです。 ・今は高級言語で高級言語(C,C++,VB,Java…)のコンパイラを作成していますが、最初は  アセンブリ言語で作られました。→さらにさかのぼると『アセンブリ言語』の前は機械語の  CPU命令の 16 進コード一覧を元に作成していたようです。 ・本題の『アセンブラ言語って何をするための言語なんですか?』というのは今となっては  ソフトの高速化や、最適化などコンパイラには真似できないきめ細かな記述が行える最終手段  のような位置づけになります。でも、知識や技術などのスキル不足で変なソースを書けば  逆効果(速度の悪化など)に繋がります。 ・利用するには、それなりの知識と経験がないと『アセンブリ言語』を使いこなせません。  上手に活用すればプログラム・コードを減らせてメモリの節約や起動の高速化、その他の処理  への高速化などいろいろ良いことがあります。なんだったら自作コンパイラや OS までもその  言語で作成できます。C言語のコンパイラで 64 ビット整数の演算をサポートしていない処理系  でも『インライン・アセンブラ』の機能を使えば 64 ビット整数が扱えます。→C99 の規格では  『long long』型があるようですが、一部のコンパイラではその型が利用できないときには活躍します。 ・それから『アセンブリ言語』を学ぶことで、より CPU 内部の仕組みも理解できるようになります。  そうなれば高級言語も使いこなせるようになりますよ。きっとね。多分?→自分しだいですが…。 ・ただし、『CASL』は仮想アセンブラですので、試験以外ではまともに利用できません。  実際にアセンブリ言語を学ぶのならば『MASM』などのちゃんとプログラムが作成できるタイプに  しましょう。よって、『CASL』は試験用に覚える以外に活用法がないと、私は思っています。  でもアセンブラですので知っておいて損はしないはずです。その後のちゃんとしたアセンブリ言語を  学習する為のイメージ・トレーニングになりますよ。 最後に: ・『アセンブリ』…CPU命令1つ1つにキーワードが対応したプログラミング言語の名前です。 ・『アセンブラ』…ソースファイルから機械語に翻訳するソフトウェアです。 ・『アセンブル』…ソースファイルから機械語に変換すること。 ・用語使用例⇒『アセンブラ』で『アセンブリ』を『アセンブル』する。 ・以上。おわり。→結論としては CPU 命令で出来ることは全て出来ます。それがアセンブラです。

回答No.6

CPUの性能が上がりメモリーも安くなった現在では 一部を除いてそう必要とされる言語ではありません。 しかし、CPUが理解できるものに一番近い言語ですから 極めて早いスピードを要求される場合や、ハードウエアを直接操作するような場合には必須になる言語でもあります。 たとえばC++で作ったプログラムのオブジェクト(CPUが理解できる言語)とアセンブラで作成されたオブジェクトでは アセンブラのほうが半分とか1/3と少なくなります。 オブジェクトのステップ数が少ない=高速となります。

  • murashin3
  • ベストアンサー率42% (55/129)
回答No.5

アセンブラ言語を知っていると何ができるかというと、たとえば新しいアーキテクチャのCPUのためのコンパイラを作る時には必要になります。あるいは新しい言語を作る場合に、その言語用のコンパイラを作る場合にも必要になります。まぁ、普通にはコンパイラそのものを自分で作るなどということはそうそう無い訳ですが、過去にコンパイラを作ってくれた人が居るお陰で今の高級言語が使える、というありがたみを実感するには良い機会かも。 あと、高級言語の一見不可解な仕様やおまじないコードも、アセンブラを知っていれば納得できることが多々あり、精神衛生上よろしいです。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.4

>アセンブラ言語って何をするための言語なんですか? 通常のプログラミングでは必要性はありませんが・・・。 BIOSや組み込みファームなど、ハードウェアの直接的な制御が必要な部分ではアセンブラが必要になる場合があります。 CやJavaなどの言語と違って、CPUの命令言語(マシン語)に近いものなので、プログラミングにはCPUやハードなどの知識も必要になります。 CALSでも仮想CPUの構成(仕様)を元にプログラミングする必要があるのでは無いでしょうか?

  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.3

アセンブリ言語とは、 機械が直接理解する機械語(0と1が大量に並んだ言語)と、 人間が比較的分かりやすく理解できる高級言語(C言語など)の中間にあたる言語です。 ハードウェアを直接操作することのできる言語で、 OSを作ったりデバイスドライバを作ったりできるそうです。 ちなみにCASLは試験で使用するための仮想的な言語であるらしく、 この言語を使って実際に動作する製品を開発することはなさそうです。

  • TinyPine
  • ベストアンサー率30% (719/2386)
回答No.2

アセンブラー言語は日本語では機械語と表される様に、そのCPU独自の言語で、各CPUはそのCPU用の言語でしか動作しません。 従ってもっとも効率の高いプログラムを書く事が出来ますが、反面、めんどくさいし、他の種類のCPUとの互換性はありません。 アセンブラーに出来ない事は、他の言語でも出来ません。C言語であっても、最終的にはアセンブラーレベルに落ちてオブジェクトプログラムと成ります。

関連するQ&A

  • アセンブラ→C言語

    アセンブラを学んでから C言語を学ぶとわかりやすい(理解しやすい) と聴きました。 どうやって勉強すれば良いですか? やっぱり本屋さんでアセンブラについての本を買って 勉強した方が良いですか? 今まで全くコンピュ-タ-についての言語を 習ったことがありません。

  • アセンブラ言語についてです。

    こんにちは。 現在大学3回生で就職活動をしております。 ESに得意科目の欄があり、大学の講義で習ったアセンブラ言語と書こうと思います。 アセンブラ言語は、将来どのような役に立つのでしょうか?? アセンブラ言語を学んでCやJAVAのプログラミングに生かせるのでしょうか?? 知識としては、基本情報技術者のCASLIIの問題が解ける程度です。 よろしく願いします。

  • アセンブラ言語がわかりません。

    初心者です。まとを得ていない質問でしたらすみません。 C言語は理解できる程度なのですが、アセンブラのコードを書く事ができません。 今アセンブラ言語を学び始めた所ですが、「jr」「jarl」「jmp」などの分岐命令の指定の方法がわかりません。 C言語でいうとどういうコードを書いた時に、このような命令を出力できますでしょうか。 本を読んでも、この上記の命令の意味は書いてあるのですが、実際出力が出来なかったもので。 またアセンブラ言語を学ぶためにいい方法などありましたらお教えく頂けないでしょうか。 よろしくお願いします。

  • アセンブラ

    CASL2を覚えたので今度はうちのパソコンのアセンブラをかまってみたいです。かまうにはどうしたらよいでしょうか?ちなみにCPUはペンティアム4です。その場合せつめいしょはあるのでしょうか?

  • CASL アセンブラ命令 アプリ機能

    例えば、CASLのアセンブラ命令にDCがある。 LABER DC 100 とすると。 これは、メモリに領域を確保し100をいれる命令だが、プログラムが変更されれば、メモリアドレスは変更される。 CASLには機械語命令・マクロ命令・アセンブラ命令がある。 機械語命令は人に分かりやすいようにニーモニックが付けられているだけだが、 アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、ハンドアセンブリでは、できない機能が含まれている。 アセンブリ言語は色々ありますが、アセンブラ言語は人に見やすいようにニーモニックが付けられているだけでなく、CASLのDC命令のように、ハンドアセンブリではできないアドレスの自動変更のようなアプリケーションとしての機能(OS的機能)も一般にふくまれているとかんがえてよいのでしょうか? よろしく願います。

  • アセンブラ言語について

    アセンブラ言語に興味があり、コード表を知りたいのですが(例えば B8ならEAXと言う意味)などコード表が載っているサイトなどあれば教えてください。

  • アセンブラ言語CASLII

    タイトルにあるように、このアセンブラ言語がよくわかりません。 詳しいサイトがあれば教えてください。

  • アセンブラ言語について。

    アセンブラ言語について詳しい解説サイトなどありましたらご回答お願いします。僕はプログラミングじたい初めてなので、わかりやすいサイトなどお願いします。ちなみに大学一年で理解できる程度であれば幸いです。お願いします。

  • アセンブラと高水準言語の関係について

    工業高校の情報技術科の者です。 アセンブラ言語のレポートで「アセンブラ言語と高水準言語の関係」について調べてきなさいと言われたのですが、何を調べればよいかまったくわかりません。何か参考になるサイトがあれば教えてください。

  • PICプログラム C言語とアセンブラ言語

    PIC18シリーズを使用して、プログラミングをしています。コンパイラはCCS-Cです。今まではすべてC言語で書いてきたのですが、アセンブラでしか設定ができない部分があり、今までのC言語のソースに加えてアセンブラを組み合わせようと思っているのですが、C言語とアセンブラを組み合わせることは可能なのでしょうか?