A 回答 (9件)
- 最新から表示
- 回答順に表示
No.9
- 回答日時:
> では、なぜ低水準言語は必要なのでしょうか?
全く「では」「なぜ」がつながってないのですが。
今まで書いてきたのを全く読んでない、って事なんですかねぇ。
> ニーモニックとは何でしょうか?
これも何度も書いてるんですが。
ふざけてます?
> 教えていただけないでしょうか?すみません。
貴方、理解できないでしょう。
すみません。
No.8
- 回答日時:
> ・低水準言語は人がXORを理解していないとプログラミングできない ・高水準言語は人がXORを理解していなくてもプログラミングできるは合っていますでしょうか?
合ってません。
そもそも低水準言語とXORの存在は全く関係ありません。
高水準言語でもXORは存在します。
C言語: ^演算子
Common Lisp: logxor 関数
Python: ^演算子
Common Lispでの例:
CL-USER> (defparameter *p* #b0011)
*P*
CL-USER> (defparameter *k* #b0110)
*K*
CL-USER> (logxor *p* *k*)
5
CL-USER>
※: 二進数0011と二進数0110の排他的論理和は10進数で5となる
そもそもプログラミングは、水準はさておき、人間が理解してないと行えないモノです。
その辺は低水準だろうと高水準だろうとそうであり、「理解してる」「理解してない」で水準を規定は出来ません。
そうじゃなくって、CPU内部の演算装置にXORやADD等の回路があるだけ、です。
「理解」が規定してるのではなく、「回路」が規定してるのです。
言い換えると、CPUが直接そのまま実行出来る命令がアセンブリのニーモニックになっているだけ、です。
No.7
- 回答日時:
> C言語など(高水準言語)は人間が理解しやすい例えば、SUMとかだと知っている人も多いですが
C言語にはSUMなんて命令/関数はありません。
> XORが和だとか言われても意味不明になりますよね。
?
XORは排他的論理和でしょ?
単なる和、summationとは意味が違いますが。
つまり比較や例にはなりません。
> 低水準言語では、命令が単純なので、XORが和であることを理解できるということなのですが。
命令が単純だからXORが和であることを理解出来る?
誰が?
それとXORは排他的論理和であって和ではないのですが。
> 教えていただけないでしょうか?すみません。
何を?
全く意味不明なんですが。
そもそも疑問持つ前に、思ってる事とか、知ってる(つもりになってる)事が雑過ぎるんですよねぇ。
XORが和なのか排他的論理和なのか、の区別も付いてないし、付いてないトコで(何を対象に)「理解してる」とか言ってるのか分からないし、しかもXORがどーの、ってぇのとアセンブリの必要性って全く関係ないでしょう?
結局何が質問したいのか、も分からないんですよ。こっちも分からないけど、質問してる貴方自身も恐らく分かってない。
もうちょっとキチンと調べて考えて、整理してから質問する癖付けた方が良いですよ。
何を訊きたいんだか全く分かりません。
・低水準言語は人がXORを理解していないとプログラミングできない ・高水準言語は人がXORを理解していなくてもプログラミングできるは合っていますでしょうか?教えていただけないでしょうか?すみません。
No.6
- 回答日時:
> 低水準言語と高水準言語の違いは、人間が理解しやすいかどうか
極論そうですが、ぶっちゃけ、低水準言語と高水準言語と言う言い回しには厳密な定義はありません。
厳密な定義が無い以上、違いなんて論じても無意味です。
> マシン語が解釈できる
> 理解できない
そもそも、マシン語が「解釈できる」とか「理解出来る」とは何でしょうか。
マシン語が「解釈したり」とか「理解したり」なんてするものでしょうか。
> 意味不明ですみません。
ホント、意味不明ですね。
C言語など(高水準言語)は人間が理解しやすい例えば、SUMとかだと知っている人も多いですが、XORが和だとか言われても意味不明になりますよね。で、低水準言語では、命令が単純なので、XORが和であることを理解できるということなのですが。教えていただけないでしょうか?すみません。
No.4
- 回答日時:
> アセンブリ言語という低水準言語は、なぜ必要なのでしょうか?
いやだから、大枠では、ネイティブ・コードを生成するコンパイラ向けに必要だ、と言う事です。
#3で書いた通りですよ。
> ニーモニックとは何でしょうか?
これも#3で書いた通りです。
アセンブリでの命令の事ですよ。
No.3
- 回答日時:
今現在だと・・・・・・。
まぁ、コンパイラのコンパイル対象ってのは色々ありますが、いわゆるネイティブ・コードへのコンパイラ、って言われるモノは対象とする高級言語をアセンブリ言語に翻訳します。要するに、実用的な意味では、ネイティブ・コードのコンパイラ向けに必要だ、って事ですね。人間の為じゃないです(笑)。
(つまり、実行ファイルにするにはコンパイラ->アセンブラ、と事実上二段階で「翻訳」が必要で、最終的に機械語に変換する)
ニーモニックはアセンブリでの命令名の事ですね。大した意味じゃない。
例:
例えば良くある初心者用のCのプログラムを書く。
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}
これをインテルCPUを用いたLinux上で、GCCを使ってアセンブリファイルを吐き出す様にコンパイル指定する(-Sオプション)。
そうすると、フツーは「隠れて」直接マシン語を生成するトコを途中経過でのアセンブリファイルを吐き出してくれる。
結果、上の6行程度のCのソースコードは以下のようなアセンブリに変換される事が分かる。
.file "hello.c"
.text
.section .rodata
.LC0:
.string "Hello, World!"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
leaq .LC0(%rip), %rdi
call puts@PLT
movl $0, %eax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0"
.section .note.GNU-stack,"",@progbits
.section .note.gnu.property,"a"
.align 8
.long 1f - 0f
.long 4f - 1f
.long 5
0:
.string "GNU"
1:
.align 8
.long 0xc0000002
.long 3f - 2f
2:
.long 0x3
3:
.align 8
4:
アセンブリ言語という低水準言語は、なぜ必要なのでしょうか?それと、ニーモニックとは何でしょうか?ご教授いただけないでしょうか?すみません。
No.2
- 回答日時:
CPUの構造と動作を把握して、マシン語でそれらに直接アクセス出来る
ので、そういう用途に使う。
①コル一チンライブラリとか、割り込み処理とか、CPUのレジスタを直接操作するようなことが必要なものを書くとき
②組み込み用のロースペックCPUで、極力短く、メモリをけちった処理を書くとき
③そもそも高級言語未整備のCPUを使う時、マシン語で書くしかない。
アセンブリ言語という低水準言語は、なぜ必要なのでしょうか?それと、ニーモニックとは何でしょうか?ご教授いただけないでしょうか?すみません。
No.1
- 回答日時:
今の時代、アプリケーションプログラム向けにアセンブリ言語を使う必然性があるケースは極めてまれだと思います。
私の専門はCPUの開発ですが、その立場で言わせてもらうと、アセンブリ言語がないとテストプログラムを書くのが難しくなるので、CPUの開発が簡単でなくなります。CPUの開発において書かれるテストプログラムは、特定のコーナーケースを突くために、ある決められた命令シーケンスで書かれていたりします。コンパイラで発生させたオブジェクトコード(機械語)ではそのようなきめ細かい命令列の制御はできないので、人間がアセンブルコードを書く必要があるわけです。人間が機械語で書いてもいいけど、機械語よりはアセンブリ言語の方が人間にはわかりやすいので、そっちのほうが重宝します。
また、機械語のプログラムを流したときにおかしな結果になったとすると、デバッグをする必要があるが、デバッグをするためにはどういう命令列を実行したのか知る必要があります。32ビット長の命令が並んだ膨大な機械語のプログラムをみてそれが何をやっているかわかる人なんて皆無ですから、人間にわかりやすいコードとして、アセンブリ言語に変換されてデバッグが行われます。
ニーモニックは、ニックネームのようなものだと思ってください。機械語とアセンブル言語の間で、例えば、0011のオペコードが加算を定義する機械語だったとすると、そのオペコードにADDというニーモニックを割り振る、という感じです。
アセンブリ言語という低水準言語は、なぜ必要なのでしょうか?それと、ニーモニックとは何でしょうか?ご教授いただけないでしょうか?すみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 英検1級合格にはどの程度の国語力が必要になりますか? 1 2022/10/25 13:45
- その他(言語学・言語) 英語とドイツ語をネイティブ語にしたいとき、留学する必要あるのでしょうか? うちの祖父(1918年生ま 1 2023/08/15 23:01
- C言語・C++・C# C#のSystem.Windows.Media.Colorに関する質問です。 3 2022/05/18 11:51
- Windows 10 【Windows11】の起動画面で日本語と英語と中国語の言語選択画面を出して起動時の標準 1 2023/06/18 19:40
- 英語 なんで道を尋ねる外国人(中国人と韓国人など)は「英語」で話してくるのでしょうか? 別に英語圏ではない 5 2023/03/02 00:39
- その他(暮らし・生活・行事) 方言でしゃべる人! 12 2022/07/21 18:56
- 学校 僕は通信制学校に通ってます。生徒数は4人です。英語の授業をしてるのですが他の生徒は英語をやりたくない 2 2022/05/12 17:24
- 中国語 中国語には日本語にある助詞・助動詞などがないのですか 4 2023/07/23 10:05
- 日本語 方言は無くなるべきですか。 皆さん、こんにちは。日本語を専攻しているスペイン人のパウです。最近、日本 8 2022/05/11 19:52
- 英語 英語の発音の教育について 5 2022/08/05 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラマーと学歴の関係性に...
-
プログラミングを教えたいです...
-
楽しくて最高のプログラミング...
-
小学1年生の子です。塾に行かせ...
-
vba クリップボードクリアにつ...
-
IT業界より楽に稼げる業界って...
-
ラズパイpico PIOモード
-
pythonで複数画像からgifを作る...
-
Pythonでgif画像が上手く作れない
-
プログラミング ソースコード
-
プログラミング
-
pythonにてseleniumを使うも、...
-
ものづくりに向いているプログ...
-
Google ColaboでGUI作成
-
JRのjsonファイルって使って大...
-
Webサイト内に埋め込んだmp4動...
-
そのまま使っただけなのに・・...
-
正規表現で複数マッチ条件で悩...
-
Pythonって何を意識した言語な...
-
スカラーのベクトル微分
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
chatGPTで次々と質問をしていく...
-
昔のパソコン少年の武勇伝「店...
-
スカラーのベクトル微分
-
ハッシュテーブル(連想配列)が...
-
最新のプログラム言語を学ぶに...
-
pythonにてseleniumを使うも、...
-
Windowsのアプリ開発ってなんの...
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
sublimit textっていうエディタ...
-
フリーランスのエンジニアって...
-
ExcelVBAでFormulaR1C1を列範囲...
-
matplotlibで任意の角度の円弧...
-
そのまま使っただけなのに・・...
-
家庭のパソコンで Python の 環...
-
初心者powershellのPS1ファイル...
-
Webプログラムってネイティブア...
-
httpリクエストの送り元の特定
-
プログラミングで例えばゲーム...
-
rpa化する言語としてら何があり...
おすすめ情報
低水準言語と高水準言語の違いは、人間が理解しやすいかどうかで、例えば、高水準言語では、SUM は行けますが、低水準言語では、例えば、XQRが和であることをマシン語が解釈できるが、高水準言語では、XQRが和であることを理解できない。という事で合っていますでしょうか?ご教授いただけないでしょうか?意味不明ですみません。