Intel系の CPUだと下位バイトがメモリの若いアドレスにいるけど、Motorola系の場合は上位バイトが若いアドレスにいる。
思わぬところでこれにはまるときがある。
今回は printf。
「%d」に「long int」を与えているような場合*1 、Intel系だと 16bitに収まるような値の場合に期待通りに動いているように見えちゃうのよね。
Motorola系の場合、「0」としか表示されなくて「???」となる。
*1 今回のターゲットは LP32モデルなのでもバグである
孤独に歩め。悪をなさず、求めるところは少なく、林の中の象のように。