C#スタディノート(1)-VS開発アセンブリの準備

私は数年前から開発を行っており、さまざまなプロジェクトの開発に忙しく、さまざまなフレームワークや言語のアプリケーションに精通し、学んでいます。今日、インターネットは爆発的に普及していますが、あらゆる種類の優れた言語とテクノロジーは急速に変化しており、学習アプリケーションだけが追いつくことができないかもしれませんが、言語を完全に理解する必要があると思います-結局のところ、テクノロジーは無尽蔵です。 。

ナンセンスではありません。最初に開発環境を構築します(vs開発アセンブリ-ILを学習するための準備):
1。visualstudo 2019をインストールし、c ++開発モジュールをインストールします。
2.コードを構成するかハイライトするか。(拡張子でasmDudeを検索してインストールします
ここに写真の説明を挿入
効果:
ここに写真の説明を挿入
3。空のプロジェクトを作成します
ここに写真の説明を挿入
。4。C++ファイルを追加し、サフィックスを.asmに変更
ここに写真の説明を挿入
します。これでコードを記述できます。

コードの最後の部分:

; AddTwo.asm - adds two 32-bit integers.

.386;汇编器生成 intel 80386 指令集
.model flat,stdcall ;伪指令   32 位程序总是使用平面(flat)存储模式,它与处理器的保护模式相关联,stdcall 怎样管理运行时堆栈
.stack 4096 ;.STACK 伪指令,它告诉汇编器应该为程序运行时堆栈保留多少内存字节
ExitProcess PROTO,dwExitCode:DWORD   ;声明一个方法 ExitProcess,  ExitProcess 的输入参数名称为 dwExitCode
 

.code ;.CODE 伪指令标记一个程序代码区的起点,代码区包含了可执行指令。
main PROC
mov eax, 5
add eax, 6

INVOKE ExitProcess,0;退出进程
main ENDP ;ENDP 伪指令标记一个过程的结束
END main   ;END 伪指令标记一个程序的结束

ここでc#を学習するには、アセンブリの学習を開始する必要があります。そうしないと、ilはそれを理解できません。
上記のコードはコメント化されています。
.386コマンドは、アセンブラがintel 80386命令セットを生成することを意味し
ます。modelflat、stdcallは疑似命令です。この機能は、32ビットプログラムが常にフラットストレージモードを使用することを示します。これは、プロセッサの保護モードに関連しています。stdcallはどのように管理しますか?ランタイムスタック。
.stack 4096;はSTACK疑似命令であり、プログラムの実行時にスタック用に予約するメモリのバイト数をアセンブラに指示します。CODE
は、プログラムコード領域の開始点をマークする疑似命令であり、コード領域には実行可能な命令が含まれます。

最初にここに書いて、すぐに仕事に取り掛かりましょう〜

オリジナル、再印刷のソースを示してください。


ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/xuetian0546/article/details/107219870