0
  szText MACRO Name, Text:VARARG
    LOCAL lbl
      jmp lbl
        Name db Text,0
      lbl:
    ENDM

Anyone knows what this macro's doing?

4

1 に答える 1

1

ゼロで終わる文字列 (したがって、sz) を作成するように見えます。文字列の記号は、Name パラメーターとしてマクロに渡したものであり、Text パラメーターとして渡したものと、末尾の 0 が含まれています。

文字列を越えてジャンプするジャンプ命令を出力し、その後に文字列自体のバイトを出力します。ジャンプのラベルは、マクロに対してローカルであると宣言されているため、グローバル名前空間を汚染しません。

x86 アセンブリ言語を使ってからしばらく経ちましたが、これは文字列データをデータ セグメントに入れるのではなく、コード セグメントに入れるのではないかと思います。これは少し奇妙に思えます。

于 2011-03-13T09:46:42.770 に答える