すいません、先日はありがとうございました。まだ未解決ですが(--;
ところで、入門書・入門サイトの類いの冒頭にかならずと云っていいほど
載っている"Hello, World!"のDOS画面表示プログラムですが、
大半の入門書、また実際のコードを見ても、流れは

・dxレジスタにメッセージ文のあるオフセットアドレスを代入
・AH=09H / INT 21Hのfunction callにより、コンソールに表示
となっていますが、ほとんどのケースで
mov dx, offset err_msg ; [MASM表記]
mov dx, err_msg ; [NASM表記]

ですね。先日PC-98の小物ツールのソースを読んでいたら、dxレジスタへのアドレス代入に
lea dx, [err_msg] ; [NASM表記]
となっているものがありました。実際にアッセンブルすると1バイト余分に食ってしまい、
たとえばAH=09Hファンクションが4箇所あれば、4バイト分実行バイナリ(COMファイル)が
大きくなってしまっています。この場合、mov dx, offset ではなく、lea命令で代入するのは、
擬似命令のoffsetを使いたくない、という理由ではないですよね??ご教示ください。

あとエラーメッセージやUsageの表示に、AH=40H/BX=0001Hのfunction callを用いる利点と欠点を
ご教示ください。数バイト分バイナリが大きくなってしまうのですが、意味が無いでしょうか??