[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 1353] music.asm のプログラミング
小柳です。
music2.asm を参考にして音楽データを作ってみたのですが、
コメントで説明されている
> unsigned char musicdata[266], [2 /* for align */];
> // このmusicdataのサイズの決めかた
> // 3.アセンブル時に出力される.lstファイルを開いて、アドレスを引き算して求める
> // 4.WORKのサイズは4バイトの倍数でなくてはならないので、端数を忘れずに付ける
についてよく分からないのでお尋ねします。
lst ファイルが
(前略)
00000020 header endp
00000020 static_datas proc near
00000020 00000004 DD 0004H
(中略)
00000128 F0 03 DB Qcmd, 3
0000012A 45 18 4F 18 DB O4A,L8, O5G,L8
(中略)
000001A8 51 30 4F 18 00 DB O5A,L4, O5G,L8, Rst,L8
18
000001AE FF DB 0ffH
000001AF 00 DB 0
= 00000000 @GL00000001 equ 0
000001B0 static_datas endp
000001B0 main proc near
000001B0 BC 00000800 mov ESP,0800H
(以下略)
となっています。
この時 musicdata のサイズ = 0x1AF - 0x128 + 0x1 = 136(10進)
WORKのサイズ = 0x1AF - 0x20 + 0x1 = 400
なので結局
unsigned char musicdata[136], [0 /* for align */];
となるような気がするのですが、正しいでしょうか?
よろしくお願いします。
--
小柳 雅明(Koyanagi.Masaaki !Atmark! nifty.ne.jp)