0

とはどういう意味-(sp)ですか?

古いOSのPDP-11でUnix V6のコードを読んでいます。

の意味はすでに知っていspます。これはスタック ポインタです。これは と同じ-1(sp)ですか?

4

2 に答える 2

3

この回答は、質問が PDP-11 に明確化される前に書かれました。m68k プリ デクリメント アドレッシング モードのように見えると推測しました。

Michael Petch は、PDP-11 の-(SP)構文がオペランドのサイズに応じて 1 バイトまたは 2 バイト減少することを確認しているため、Motorola の構文のインスピレーションとなったのはほぼ間違いありません。


このページ-(A0)では、構文がオペランドの幅だけポインターを事前にデクリメントすることを意味することを説明します。

  • aMOVE.Lでは、4 ずつ減少します ( C と同様*(sp-=4)) 。
  • では、MOVE.W2 ずつ減少します。
  • aMOVE.Bでは、1 ずつ減分します (アドレス レジスタが A7、別名 SP でない限り、この場合でも 2 ずつ減分されるため、アラインメントは維持されます!)

同様に、+(A0)ポストインクリメント演算子と同じように機能します。

これらは、x86 の PUSH (スタック ポインターを事前にデクリメントする) および POP (スタック ポインターを後からインクリメントする) のように機能します

于 2016-09-19T01:03:26.660 に答える