Lions' 本読み (78)

なんとなくそうなんだろうな、とは思っていたのですが直感的にイメージできないあたりが相当に痛い。昨晩あたりからぐだぐだ見てた控えが以下です。

気になるのでググッてみたら 6.828 なコンテンツに hit しました。ちょっと前まで xv6 ではなくて本当の v6 見てたんですね。

曰く

ap is a negative value v (see 3154). is a negative value loaded in the user stack pointer register? (Answer: no. it is unsigned integer, an address, thus the value is 2^16 - v, pointing exactly in the stack at the top of the address space.)

L10 より引用
とのこと。やっぱそうなのか (て今それを言っちゃ駄目てきナニ)。
でもちょっと腑に落ちてないな。あ、そうか例えば 8-bit で -16 を unsigned に代入すると 10010000 ではなくて 11101111 になるのか。これはこれで unsigned を上手に使った魔法ですね。
つうか unsigned ってどこで宣言されてるんだorz

アドレス扱うナニだから負は無い前提なのかorz