1

src / lib / i386 / rts/_sendrec.sにある次の手順に出くわしました

最初に、次のステートメントが書き出されます。

SEND = 1

RECEIVE = 2

BOTH = 3

SYSVEC = 33

SRCDEST = 8
MESSAGE = 12

上記のステートメントをどのように解釈しますか?たとえば、SRCDEST = 8の場合、SRCDESTの値は8であると読む必要があります。そうである場合、次のステートメントは私には意味がありません。そうでない場合、SRCDEST、MESSAGE、両方とは何ですか?それらは組み込み関数ですか?はいの場合、それらは.sファイルのどこで定義されていますか?

コメントに基づいて、eax = dest-src。destとsrcの値は何ですか? ebx = message pointer。それはebxがベースポインタへの参照であることを意味しますか?に関してはmov ecx, BOTH ! _sendrec(srcdest, ptr)、ここで正確に何が起こっているのですか?誰かが次のステートメントに光を当てるか、私にリンクを1つか2つ指摘してくれたらありがたいです。何日もウェブを検索していて、情報を見つけることができません。お時間をいただきありがとうございます。

__sendrec:

mov eax, SRCDEST(ebp)   ! eax = dest-src

mov ebx, MESSAGE(ebp)   ! ebx = message pointer

mov ecx, BOTH       ! _sendrec(srcdest, ptr)
4

1 に答える 1

2

SEND、、、RECEIVEおよびBOTHは、それぞれ値1、2、および3を持つ定数です。これらは、実行している操作を表します(1は「送信」、2は「受信」、3は「送信と受信」の両方を意味します)。

SRCDESTおよびMESSAGE定数は、送信元/宛先およびメッセージを表す値が格納されているスタック上のオフセットです。

SYSVECは割り込み番号です。

于 2012-07-10T04:53:32.987 に答える