> 早速試してみたところ,書き換わるという状況は変わりませんでした.
残念、これは関係なかったですか。
でも tmpbuf4 はどこで使われるかわからないので、この方向にしようと思います。
> ただ,ちょっと不思議なのが,見かけ上(……と言うのか,マクロファイルの)は
> 書き換わる位置が変わらず,当該マクロを実行すると停止する同じ症状ですが,
> 書き換わるアドレスが変わって 2329h 付近になりました.だいぶ違う……(?_?)
> ある位置からの相対アドレスは変わっていないけれど,マクロバッファの使い方が
> 変わったということでしょうか.
書き換わる位置が変わらないということは、マクロ内での挙動なのですかね?
書き換わるアドレスが変わって 2329h 付近になったのは一時バッファの影響でしょう。
> マップで見ると,システム領域が500バイトほど
> 増えているのですね.ああ,LFN の一時バッファをそこに取ったということ?
そうなんですが、260バイト のはずが 500バイト増えてるとは、位置が悪いのかなぁ?
実行ファイルのサイズ増加分も含んでいるのかしら?
実は、10#さんのルーチンでは、MAIN.ASM の pn.11 の後ろになっています。
11 wsplit0 db 0 ; pn.11
GDATA lfntmp, db, <MAXPATH+1 dup(0)> ; ## 10# mod 260 LFN maxpath
この後ろも ポインタで参照されそうだと思ったので、繋がりが切れていると思われる
EXPR.ASM のローカルデータの後ろに置きました。
もしかしたら副作用があるかもしれませんね。