アセンブリ言語注意事項9

オブジェクトファイルを生成するソースコードをコンパイルするソース・ファイルのアセンブリ言語コンパイラ(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で再現

おすすめ

転載: blog.csdn.net/weixin_34217711/article/details/91990151