ホームページ  >  記事  >  アセンブリ言語のコンポーネントは何ですか?

アセンブリ言語のコンポーネントは何ですか?

WBOY
WBOYオリジナル
2022-08-15 15:44:397981ブラウズ

アセンブリ言語の構成: 1. 一般的なデータ転送命令、条件付き転送命令などを含む転送命令; 2. 論理演算、命令のこの部分は算術演算および論理演算を実行するために使用されます; 3シフト命令、レジスタまたはメモリ オペランドを指定された回数だけ移動するために使用されます; 4. テスト命令 BT、ビット テストおよびセット命令 BTS などを含むビット操作; 5. 無条件転送命令を含むコントロール転送 JMP、条件付き転送命令「JCC/JCXZ」など; 6. データ文字列の操作に使用される文字列操作; 7. 周辺デバイスとのデータ交換に使用される入力および出力。

アセンブリ言語のコンポーネントは何ですか?

#このチュートリアルの動作環境: Windows 10 システム、DELL G3 コンピューター。

アセンブリ言語の構成要素とは

アセンブリ命令体系は巨大であるため、命令数が多く、形式が複雑で、覚えにくい命令体系を構築する必要があります。この命令で最も難しいのは、その命令がサポートするアドレッシング モードであり、その要点は命令内のオペランドをどのように取得するかです。プロセッサにとって、必要なデータを見つける方法が重要です。ただし、コンピューターの基礎となるアセンブリ言語の場合、このアドレス指定方法には多数の計算ストレージ形式が含まれ、複雑なストレージ管理方法と密接に関連しているため、理解することが困難になります。最後に、アセンブリ命令はフラグ ビットに影響を与える方法にも関係しますが、プロセッサのフラグ ビットは非常に複雑であるため、そのメカニズムを習得するのは困難です。

  • #転送命令

    ##一般データ転送命令 MOV、条件付き転送命令 CMOVcc、スタックを含む演算命令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交換命令XCHG/XLAT/BSWAP、アドレスまたはセグメントディスクリプタ選択サブ転送命令LEA/LDS/LES/LFS/LGS/LSSなど

    #論理演算
  • 命令のこの部分は、算術演算と論理演算を実行するために使用されます。加算命令 ADD/ADC、減算命令 SUB/SBB、プラス 1 命令 INC、マイナス 1 命令 DEC、比較演算命令 CMP、乗算命令 MUL/IMUL、除算命令 DIV/IDIV、符号拡張命令 CBW/CWDE/CDQE を含む演算、小数点調整命令DAA/DAS/AAA/AAS、論理演算命令NOT/AND/OR/XOR/TESTなど

#シフト命令
  • 命令のこの部分は、レジスタまたはメモリをシフトするために使用されます。オペランド 指定された回数だけ移動します。論理左シフト命令 SHL、論理右シフト命令 SHR、算術左シフト命令 SAL、算術右シフト命令 SAR、循環左シフト命令 ROL、循環右シフト命令 ROR などを含みます。

#ビット操作

  • 命令のこの部分には、ビット テスト命令 BT が含まれています。ビットテスト&セット命令BTS、ビットテスト&リセット命令BTR、ビットテスト&ネゲート命令BTC、ビットフォワードスキャン命令BSF、ビットバックワードスキャン命令BSRなど。

#コントロール転送

  • 無条件転送命令 JMP と条件付き転送が含まれます。 JCC /JCXZ命令、ループ命令LOOP/LOOPE/LOOPNE、手続き呼出し命令CALL、サブプロセス復帰命令RET、割り込み命令INTn、INT3、INTO、IRETなど

  • #文字列操作

  • 命令のこの部分は、データ文字列を操作するために使用されます。文字列転送命令 MOVS、文字列比較命令 CMPS、文字列スキャン命令 SCANS、文字列ロード命令 LODS、文字列保存命令 STOS を含むこれらの命令は、REP/REPE/REPZ/REPNE および REPNZ のプレフィックスを選択的に使用して連続的に動作できます。

    #入力と出力

  • 命令のこの部分は、データを交換するために使用されます。ポート入力命令 IN/INS、ポート出力命令 OUT/OUTS を含む周辺デバイス。

    アセンブリ言語の特徴

    アセンブリ言語は、コンピュータがユーザーに提供する最も高速かつ効果的な言語であり、コンピュータのすべてのハードウェア機能を活用することができます。ハードウェアを直接制御できる唯一の言語です。ただし、アセンブリ言語プログラムの作成とデバッグは高級言語よりも複雑であるため、その応用は現在高級言語ほど普及していません。
アセンブリ言語は機械語よりも可読性が高いですが、高級言語と比較すると可読性はまだ劣ります。ただし、それを使用して作成されたプログラムは、記憶域の使用量が少なく、実行速度が速いという特徴があり、高級言語では置き換えることができません。実際のアプリケーションでは、アセンブリ言語を使用するかどうかは、アプリケーションの特定の要件、開発時間、品質によって異なります。

メリット

アセンブリ言語は機械語の第二世代プログラミング言語であり、次のような多くの利点もあります。

##コンパイルリンクが少ないため、記述したコードを正確に実行できる##低級言語として高い拡張性を持つ

欠点

##

コードは非常に単調で、特殊な命令文字がほとんどないため、コードが長くなり、書くのが難しくなります。

アセンブリはデータを保存するためにメモリを呼び出す必要があるため、簡単です。 BUGが発生するためデバッグが難しく、簡単ではありません

プログラムが完成しても、その後のメンテナンスに多大な時間がかかります。

マシンの特殊性により、コードの互換性が悪いという不具合が発生します。

関連知識の詳細については、FAQ 列をご覧ください。

以上がアセンブリ言語のコンポーネントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。