So-net無料ブログ作成

Bare Metalプログラミングする時はスタック領域は把握してこ

rk11ディスクから、1ブロック分512バイトの任意のアドレスに読み込むのに
07000〜010000あたりを指すとおかしな挙動をするという謎があったが、、、
解けた、というか単にバグだった。

えー、しょっぱなのstart.Sでスタックポンタの設定を0x1000番地にしていて、これは010000(8進)だった。



t_rdsk $cat start.S
.GLOBAL start
.GLOBAL _cstart

STACK = 0x1000

.text
start:
mov $STACK, sp
jsr pc, _cstart
halt

.end





アホやね。普通に自分でスタック破壊してるだけだった。
まあアセンブラプログラミングの基礎中の基礎だろけど、慣れていこ。

以上。



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。