-(sp)
の意味はなんですか?UNIX v6アセンブリで - (sp)の意味は何ですか?
私はUnix V6のコードを、PDP-11では古いOSで読んでいます。
私は既にsp
の意味を知っています。これはスタックポインタです。 これは-1(sp)
と同じですか?
-(sp)
の意味はなんですか?UNIX v6アセンブリで - (sp)の意味は何ですか?
私はUnix V6のコードを、PDP-11では古いOSで読んでいます。
私は既にsp
の意味を知っています。これはスタックポインタです。 これは-1(sp)
と同じですか?
この回答は、質問がPDP-11に明確になる前に書かれています。私はそれがm68kプリデクリメントアドレッシングモードのように見えたと推測しました。
マイケル・ペッチは、PDP-11の-(SP)
の構文がオペランドのサイズによって1または2バイト減少していることを確認しているので、モトローラのシンタックスの魅力はほぼ確実です。
This pageは-(A0)
構文は、オペランドの幅によってプリデクリメントポインタに意味することを説明しています。 MOVE.L
で
*(sp-=4)
ように)4によってMOVE.W
でMOVE.B
2.同様に、+(A0)
はポストインクリメント演算子と同じ方法で動作します。
これらは、x86のPUSH(スタックポインタのプリデクリメント)とPOP(スタックポインタのポストインクリメント)のように動作します。
-(sp)
は、使用前にレジスタsp
をデクリメントすることを意味します。
sp
が、これは、保存(またはプッシュ)スタック上のレジスタr0、および
mov (sp)+,r0
例えばスタックに
mov r0,-(sp)
意志を書くための通常の方法であるスタックポインタであるため、値をポップしてレジスタを再度リストアします。
さらに詳しい情報を提供する必要があります。また、あなたが求めているアーキテクチャーを明記してください。 – icecreamsword
私は古いPDP-11アセンブリ言語の本(Thomas Frankによる)を取り出しました。それはしばらくしていますが、私はSP(別名R3)がプリデクリメントとポストデクリメントをサポートしていることを確認できます。 (増分バリアントと同様に)。 1バイトと2バイトの増減をサポートしています。 - (sp)は、m68kについて説明したピーターと同様の方法でプリデクリメントされます。 –
たとえば、_idleの定義では、m40.sに ' - (sp)'があります。 – KiYugadgeter