a.s
.xref X
move.l #$deadbeef,(buf+X)
lea (buf,pc),a0
move.l (X,a0),d0
.dc $ff00
.bss
buf: .ds.b $10000
b.s
.offset 0
.ds.b $8000
X:: .ds.l 1
アセンブラで警告が出ず、リンカでもエラーにならないため意図しない動作になる。
オブジェクトファイルのコマンドでワード値の出力時に-$8000~$7fff
の範囲外の値をエラーにするものは次のものしかない。
65 sect.b
69 sect.b
99 00
d16
の出力を99 00
を使うように変更する(スタックからポップするコマンドなので値のプッシュも必要)
という手段が考えられる。
a.s
.xref X
move.l #$deadbeef,(buf+X+4)
lea (buf,pc),a0
moveq #4,d0
move.l (X,a0,d0.l),d0
.dc $ff00
.bss
buf: .ds.b $10000
b.s
.offset 0
.ds.b $80
X:: .ds.l 2
アセンブラで警告が出ず、リンカでもエラーにならないため意図しない動作になる。
-$80~$7f
の範囲外の値をエラーにするものは6b sect.b
しかない。
コマンドを新設する必要がある?