
No.3ベストアンサー
- 回答日時:
意味はあると思いますよ。
アセンブリ言語ではポインタ(アドレス)を扱うことは必須ですから、確実にポインタへの理解は深まります。
また、1つ1つの命令を突き詰めていくと、コンピュータ(CPU)がどのようにして動いているかわかるようになります。
最終的にはメモリダンプ(16進数の羅列)でプログラムが追えるようになれます。
C++を知っているのでしたら、1度、プログラムを混合モードで表示してみてください。
C言語の1行1行の命令が、アセンブリ言語でどのように展開されているかを見ることができます。
ただ…
質問者さんがどれくらいのレベルの方かわかりませんが、僕はプログラミングの上達は単にたくさんの言語を知っていることとは決してイコールではないと思っています。
人がコンピュータで行いたいこと(自然言語で表現したソフトウェアの仕様)を、論理的思考を経て、プログラミング言語に置き換えていく「翻訳作業」がプログラミングだと思ってます。
論理的思考さえできれば、未経験の言語でも(最初のうちはマニュアルとにらめっこになりますが)プログラムは作れます。
逆に論理的思考ができなければ、できあがったプログラムは、読みづらい・異様に処理時間がかかる・ちょっとした例外ですぐにエラー停止する…など「できの悪いプログラム」になります。
もし、C++を学んであまり時間が経ってないのでしたら、もっと深くC++を勉強して、まずは論理的思考ができるようになってください。
別の言語に手を出すのはそれからで遅くありません。
ご回答ありがとうございました。
>質問者さんがどれくらいのレベルの方かわかりませんが、僕はプログラミングの上達は単にたくさんの言語を知っていることとは決してイコールではないと思っています。
『ロベールのC++入門講座』を全て読んで全て実践して全て理解したところです。
プログラミングの上達に関してたくさんの言語を知っていることは上達に繋がらないことは私も全く同じことを考えていました。しかも、そのことは最近感じて知ったばかりです。
>もし、C++を学んであまり時間が経ってないのでしたら、もっと深くC++を勉強して、まずは論理的思考ができるようになってください。
今後は『Effective C++』に挑戦するつもりですが、これを学んだからといってプログラミングが上達するかはどうか分かりませんが・・・。とりあえず挑戦します。
No.2
- 回答日時:
20年ぐらい前には最終的にどんなコードが出力されるのかを想像してコーディングするとかしてましたが、今は全然考えません。
パソコン黎明期には、速度をかせぐためにアセンブラプログラムをしたこともあります。
アセンブラを学んだことで得たもの
・おー、CPUってこんなことしてるのかー。と思った。
・おー、CPUって機種によって差があるんだなー。と思った。
・コンパイラに任せておくより、何をしてるかがわかりやすい。と思った。
・コンパクトなプログラムを作りやすい。当時はメモリの1バイトが貴重だった。
・ブロックで論理的パズルをしているみたいで楽しかった。
まあ、コンピュータに対する理解が深まるかもしれませんが、きょうび役に立つかどうかは、わかりません。
ご回答ありがとうございました。
参考にします。
>まあ、コンピュータに対する理解が深まるかもしれませんが、きょうび役に立つかどうかは、わかりません。
色々なサイトでアセンブラの必要性について調べてみたら、
今はあまり必要ないようですね。
コンピュータの理解は確かに深まるが、プログラミングの上達には繋がらないかもしれませんし・・・。
No.1
- 回答日時:
>アセンブリ言語で役立つことがあれば
アセンブラでプログラミングできる
>プログラミングの上達や理解を深めるためにアセンブリ言語を学ぶ意味はありますでしょうか。
あるけど? 無いでしょうね!
わたしは、もう30年以上プログラミングを仕事としていますが・・・
今でもアセンブラは使います
どうして必要なケースはあります
でも、C++でやることだってできます
でも・・・アセンブラで書く方が簡単だし・・・
昔なら、アセンブラだけでシステムを全て書きあげることだって
全然普通にありましたよ
目的の無い学習は続かないよ
世の中が必要とする知識が何か?
もう少し考えてみたら?
アセンブラが必須の世界は確実にあります
そこを目指すかどうかがカギかな?
時間は有意義に使うべきだと思う
ご回答ありがとうございました。
なかなか説得力のある回答です。
とても参考になりました。
>あるけど? 無いでしょうね!
よく考えてみれば、確かにないですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
昔のゲーム製作に使用する言語...
-
割り込みベクターをC言語で書...
-
コンピュータ言語とプログラミ...
-
0xffffとは?
-
プログラム言語
-
8ビットのデータの、先頭ビット...
-
ライン数とステップ数の違いは?
-
レジストってなんですか?
-
素数を求めるプログラム(アセン...
-
アセンブラからC言語に変換する...
-
ビットシフトってどんな時使うの?
-
C言語によるウェイト
-
アセンブラで割り算
-
シーケンス制御についての質問...
-
エクセルVBAのIf,Then 構...
-
C言語で128bitの2進数のビット...
-
アセンブラのコマンドについて
-
アセンブラで筆算的加減算が書...
-
C++ のDLLがdelphiで読めない
-
オーバーフローについて教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
昔のゲーム製作に使用する言語...
-
アセンブラとコンパイラ
-
論文のテーマ
-
基本情報処理を受験する上で参...
-
プログラマー経験者に質問です
-
C熟練者向けのC++入門書等はあ...
-
割り込みベクターをC言語で書...
-
これらのプログラミングで使う...
-
アセンブリ言語からC言語への変...
-
プログラミング言語
-
電化製品って何言語?
-
Visual C++ によるWindowsアプ...
-
OSはどんなコンピューター言語...
-
文系のSE志望です。プログラミ...
-
標準関数の中身について
-
C言語習得のネックは・・・
-
コンピューターシステム コン...
-
Javaなどを機械に埋め込むとは?
-
プログラミングの楽しみ
-
成人してから
おすすめ情報