質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • アセンブリ言語

    107questions

    アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

アセンブリを記述することが無いんですが

解決済

回答 5

投稿

  • 評価
  • クリップ 1
  • VIEW 294

pl2y

score 3

アセンブリを記述することって有りますか?
自分は読むことはあれど普段アセンブリを記述することは滅多にありません。

当然ながら生産性の観点から見てもアセンブリで記述するメリットがあまり無いのですがアセンブリでガリガリ書くような状況ってどういう状況ですか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

checkベストアンサー

+2

アセンブラを書くことがないというのは幸せなことです。
その調子で頑張ってください。

ワンチップCPUで、スタックを設定するとか、割り込みベクタの設定とか、Cの命令で用意されてない場合が多いので、アセンブラで書かなきゃなりません
あるいは、ROM数キロバイト、RAM数百バイト、というCPUで通信しながらキカイのコントロールとかする場合には多用したりとかしますねー

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/19 10:50

    > ワンチップCPUで、スタックを設定するとか、割り込みベクタの設定とか、Cの命令で用意されてない場合が多いので、アセンブラで書かなきゃなりません

    ワンチップCPUでは勉強の為にアセンブリでもCでも記述したことがあるのですが「Cの命令で用意されてない場合が多い」というのは初知りでした!勉強不足でした。ご教授ありがとうございます

    キャンセル

+1

だいぶ昔はインラインアセンブリを書くこともありましたが、32bit OS 上では書いたことはありません。

まあ、環境によってはこんなコードがかけたりもするわけですが。
※これ、C 言語でありながら、「VAX-11 か PDP-11 でないと動かない」と環境が限定されます

なぜこれが動くのか、理解できる人は、コンパイラとリンカとOSが何をどうしているのかを理解できている人です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/19 11:17

    main is usually a function!

    キャンセル

+1

趣味とか研究(コンパイラーの開発者など)でもない限り、アセンブリでガリガリ書くような状況は、無いと断言しても良いと思います。かつて(20世紀の頃)はパフォーマンスを上げるためにアセンブリでガリガリ書くということをしていたこともありましたが、今ではCPUの内部構造の複雑化とコンパイラーの性能向上により、下手に手で書くよりはコンパイラーの最適化に任せた方がパフォーマンスの高いコードを出力しますから。

CPUの性能を目一杯引き出したい時には今でもアセンブリで書くこともありますが、「ガリガリ書く」というレベルではないですね。部分的にインラインアセンブラで書くとか、組み込み関数として提供されているCPU命令を呼び出すといった、C/C++を補完する目的での利用にとどまると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

わたしはアセンブリ言語を記述することはないです。
C言語も使えないレアで特殊な環境ならわたしはアセンブリ言語を使うでしょうけど。

センブリ言語 タグ を漁ってみては?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/19 10:52

    やはりアセンブリで記述するという限定的な場面はかなり少ないようですね
    タグも漁ってみたのですがやはりアセンブリを書く機会が少ないという意見が多かったです!解答ありがとうございます

    キャンセル

0

アセンブリに限った話ではないでしょう。
言語を問わず、必要がなければ使いません。

私はもう5年以上、仕事でも趣味でもC/C++でコードを書いていませんが、
アセンブリはたまに使います。(趣味で)

アセンブリでガリガリ書くような状況ってどういう状況ですか?

よく言われるのは速度的なことですが、アセンブリでしか開発できない環境/状況もあります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/19 10:55

    アセンブリでしか開発できない環境というのがあまりパッとは思いつかないのですが、カーネルもCで書かれることがほとんどということを考えるとやはりよほど下層を触らない限りはCが使えない状況ってのは少なそうですね。
    解答ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    アセンブリ言語のレジスタに64bitのアドレスを入れる方法

    x86_64系のアセンブリ言語を勉強しています。 レジスタの中にmovでメモリアドレスを直接代入したい場合などはどうすればよろしいのでしょうか? mov rax,0x000

  • 解決済

    アセンブリ

    アセンブリ言語で質問があります。 C言語のプログラムをコンパイルした際に出てくるアセンブリ言語の一部なんですが、main()前の初期化の箇所で以下のような部分がありました。

  • 解決済

    16bitのリアルモード

    リアルモードは16bitで動いていると思いますが、 アセンブリのブートスストラップ領域に関する本で eaxレジスタなどが出現していました。 なんで、16bitなのに32bi

  • 解決済

    アセンブリ言語について、複数の引数を一つの行にまとめて記述する方法を知りたい

    現在PIC16F84Aを使用してLEDを8つ点灯させる回路のコードを記述しているのですが、下記のようなコードを一行にまとめるような記述方法はないでしょうか? 該当のソースコー

  • 解決済

    解決済み

    以下の英語での動作をするようなプログラムを作れと言われてるんですが、ポインタとスタックの意味がよくわかりません。よければ教えてほしいです。

  • 解決済

    Hello World を表示させたい

    前提・実現したいこと ここに質問したいことを詳細に書いてください アセンブリ言語を用いて「Hello World!」と表示させるプログラムを作成しようとしていました 機能を実装中に

  • 解決済

    nasm システムコールの疑問

    自分はnasm 16bit のプログラミングを勉強したものです 今はnasm 32bitをubuntuの端末で動かそうとしているのですが nasm16bitではシステムコールがin

  • 解決済

    ただファイルを開くだけのプログラム

    Ubuntuの端末で動くアセンブリ言語のただファイルを開くだけのシステムを作ってみましたが実行コアダンプが発生します。 具体的には開くだけのシステム+開けたかどうか表示をするプログ

同じタグがついた質問を見る

  • アセンブリ言語

    107questions

    アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。