47

アセンブリの「下」にプログラミング言語はありますか?

4

17 に答える 17

73

実際には、マシン コードの下にMicrocodeと呼ばれるレベルのコードがあります。

于 2008-11-05T19:26:21.820 に答える
39

マシンコード。バイナリの 1 と 0 でコード化されたプログラマーの時間。16 進数はこれよりも優れていると考えられていました。それは、コードの名前を使用し、命令のパーツをパーツに分割するアセンブリの前でした。

于 2008-11-05T19:23:24.930 に答える
20

アセンブリは、マシン コードのテキスト表現です。CPU自体内の単一の命令を表す単一のステートメントがあります。たとえば、「MOV X, Y」は、CPU を通過して値 X を位置 Y に移動する単一の命令です。機械語コードに到達するために、CPU は「MOV」を表す番号と、 'X' (まだ数値でない場合)、および Y を表す数値。これらの生の HEX バイナリ値はマシン コードです。CPUがトランジスタに電圧/電流を流して、CPUの機能を実行させるのは、この数値です。

マシンコードは下位レベルですが、アセンブリに非常に近いものです。それは非常に近いので、命令「MOV」=移動を読み取ることができるという利点のために、誰もそれを使用することを気にしません。スタックまたはヒープ内の生のアドレスではなく、変数名も読み取り可能になります。

于 2008-11-05T19:32:30.543 に答える
14

さらに下に行くと (「言語」という言葉は「マシン」言語やさらに下位の物理層に適しているわけではありません)、マシン言語の下には、各バイナリオペコードを実際に実装するために使用される多くのゲートとスイッチの構成があります。関係する特定のハードウェア (CPU) ... このさらに低いレベルをカバーする優れた本は、Charles Petzold 著の「CODE」です。

于 2008-11-05T19:46:35.740 に答える
9

以下で、より低いレベルを意味する場合は、はい。機械語があります。アセンブリは、実行前に機械語に変換されます。多くの最新のプロセスでは、機械語はマイクロコードでエミュレートされています。マイクロコードの詳細については、こちらを参照してください。

于 2008-11-05T19:28:02.393 に答える
6

マシンコード

http://en.wikipedia.org/wiki/Low-level_programming_language

于 2008-11-05T19:24:17.127 に答える
3

アセンブラは、アセンブラによってマシンコードに変換されます。バイナリエディタで書くことができます。(痛い!)CISCコンピュータは、チップのセグメント(ALU、メモリフェッチなど)をシーケンスするマイクロコードを持つことができます。通常、チップメーカーを除いて、誰もマイクロコードを書きません。

于 2008-11-05T21:22:17.607 に答える
3

まあ、他の人が言及したように、機械語があります。機械語は通常、アセンブリで記述した内容を 1 対 1 で翻訳したものであるため、アセンブリ コードと同じレベルの抽象化になりますが、手作業で記述するのははるかに困難です。

これには、MIPS アセンブリ言語によって提供される疑似命令などの例外があります。

アセンブリ/マシン言語よりも下のレベルである言うべきかもしれません: microcode . 現代のロジックトランジスタの予算は現状のままであり、マイクロコードはその関連性を失いつつあるのではないかと私は考えています。

于 2008-11-05T22:33:09.867 に答える
3

なぜあなたが尋ねているかによります。アセンブリでできないことで、他の方法でできることはありません。マシンコードは、まったく同じデータの別の表現にすぎません。

于 2008-11-05T19:32:07.797 に答える
3

非常に最初のコンピューター (ENIAC) はハード ワイヤリングを使用していたため、ある計算からの出力を別の計算に入力として供給することができました。別のプログラムを実行するには、いくつかのケーブルを取り外して、別の方法で再配線する必要がありました。

于 2008-11-05T21:02:21.437 に答える
2

CPU に電流を送り、ピクセルを配置する場所を伝えることができます。(ほとんどバイナリですが、コンピュータを使用して記述しません。)

于 2012-07-25T04:18:41.023 に答える
2

アセンブリ言語は、従うべき文法規則を含まないため、機械語は言語ではないため、プログラミング言語構築の下層階です。マシンコードは、マイクロプロセッサ操作を実行する唯一のデータ形式である場合があります。CPU はメモリからデータをフェッチし、フェッチされたマシンコードに従って命令を直接実行します。

ただし、Intel Pentium 4 以降などの一部の最近の設計では、マシン コードは、uops または microoperations として知られる下位レベルの RISC 実行ユニット操作の表現です。したがって、これらの設計のデコード ロジックは、CISC タイプの命令を小さな uop に変換することです。これらの命令は、通常、RISC のような単純なロード/ストア ユニットを対象としています。この側面では、(技術的に正確ではないかもしれませんが) 機械語は、CPU の基礎となる実行ロジックによってアトミックに実行される「実際の」操作ではなく、アーキテクチャの「高レベル」の複雑な命令を記述すると言えます。 .

つまり、アーキテクチャ命令セット、つまりアーキテクチャ マシン コードと、外界から隠されている内部レベルの「マイクロ命令」セットがあります。Intel プロセッサのトレース キャッシュは、プロセッサのスーパースカラー パフォーマンスを最適化するために、そのような op を格納するように考えられていました (CPU は、プログラムで実行できるアーキテクチャ命令セットではなく uop を実行するため)。

于 2008-12-25T07:18:33.117 に答える
2

コードはいつでも 2 進数 (または 16 進数、またはその他の表現) で記述できます。次に、頭の中でジャンプオフセットなどを計算する必要があります。推奨されません。;)

于 2008-11-05T19:23:51.903 に答える
2

並べ替え。機械はアセンブリを読むのではなく、アセンブリが変換されたものである「機械語」を読みます。機械語には、アセンブリのニーモニックの代わりに「オペコード」があり、これらのオペコードは通常、単なるバイナリ データです。通常、マシン コードは人間が判読できるとは見なされません。

RISC システムでは、マシン コードはアセンブリの単純な変換であることがよくありますが、特に x86 システムでは、この 2 つはまったく異なります。

于 2008-11-05T19:25:52.803 に答える
2

確かに: 「マシン コード」については、ウィキペディアのアセンブリ言語に関する記事 ( http://en.wikipedia.org/wiki/Assembly_language ) で次のように述べられています。特定の CPU アーキテクチャをプログラムするためです。」

于 2008-11-05T19:26:28.713 に答える
2

マシンコードの下でさえ、VHDL - チップ設計と言えます。コードを実行するためにチップを設計する必要さえなく、入力を出力に即座に変換するだけです。

(私は専門家ではありません - 私は C++ を使用しています)

于 2008-11-05T19:38:36.707 に答える