2016-09-19 13 views
0

-(sp)の意味はなんですか?UNIX v6アセンブリで - (sp)の意味は何ですか?

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

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

+0

さらに詳しい情報を提供する必要があります。また、あなたが求めているアーキテクチャーを明記してください。 – icecreamsword

+2

私は古いPDP-11アセンブリ言語の本(Thomas Frankによる)を取り出しました。それはしばらくしていますが、私はSP(別名R3)がプリデクリメントとポストデクリメントをサポートしていることを確認できます。 (増分バリアントと同様に)。 1バイトと2バイトの増減をサポートしています。 - (sp)は、m68kについて説明したピーターと同様の方法でプリデクリメントされます。 –

+0

たとえば、_idleの定義では、m40.sに ' - (sp)'があります。 – KiYugadgeter

答えて

3

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

マイケル・ペッチは、PDP-11の-(SP)の構文がオペランドのサイズによって1または2バイト減少していることを確認しているので、モトローラのシンタックスの魅力はほぼ確実です。


This page-(A0)構文は、オペランドの幅によってプリデクリメントポインタに意味することを説明しています。 MOVE.L

  • アドレスレジスタがある場合を除き、それは(C *(sp-=4)ように)4によってMOVE.W
  • をデクリメントし、それはMOVE.B 2.
  • によってデクリメントし、それは(1によってデクリメントA7、別名SPの場合は、2だけデクリメントして整列します)。

同様に、+(A0)はポストインクリメント演算子と同じ方法で動作します。

これらは、x86のPUSH(スタックポインタのプリデクリメント)とPOP(スタックポインタのポストインクリメント)のように動作します

0

-(sp)は、使用前にレジスタspをデクリメントすることを意味します。

spが、これは、保存(またはプッシュ)スタック上のレジスタr0、および

mov (sp)+,r0 

例えばスタックに

mov r0,-(sp) 

意志を書くための通常の方法であるスタックポインタであるため、値をポップしてレジスタを再度リストアします。

関連する問題