オブジェクトファイルを生成するソースコードをコンパイルするソース・ファイルのアセンブリ言語コンパイラ(MASM.EXE)の使用
ターゲット・ファイル・リンカー(LINK.EXE)を接続、実行可能ファイルは、オペレーティングシステム内で直接実行することができます。
実行ファイルには2つの部分が含まれています。
プログラム(アセンブリ命令オペコード上源から翻訳)とデータ(ソースプログラムで定義されたデータ)
関連の記述情報
アセンブラは、複数のセグメントから構成され、これらのセグメントは、スタックとして使用するための生活空間のコードデータを格納するために使用されます。
プログラムは返します。リターンは、プログラムの終了時にプログラムセグメントを追加する必要があります
MOV斧、4c00H
int型21H
これらの命令実装機能は、リターンします。
プログラムをロードした後、メモリオフセットアドレスは、プログラムであるメモリ領域のアドレス0に、プログラムアドレスにメモリセグメントDSに格納されている:DS:0。
このメモリ領域の最初の256のバイトは、PSP、DOSとの通信のための手順で記憶されています。
256は、後方のバイトからのプログラム空間に格納されます。
だから我々はDSのセグメントアドレスSAのPSPから取得することができ、PSPがオフセットアドレスは、物理アドレスSA * 16 + 0 0
PSP 256(100H)バイトを占め、したがってため、プログラムの物理アドレスは、次のとおり
*で16 + 0 + 256 = 16 + 16 * 16 + 0 * =(A + 16)16
assume cs:codesg
codesg segment
mov ax,0123h
mov bx,0456h
add ax,bx
add ax,ax
mov ax,4c00h
int 21h
codesg ends
end
一緒にフォルダにMASM.EXEとLINK.EXE:
ます。https://my.oschina.net/u/204616/blog/545278で再現