• 締切済み

コマンドプロンプトのデバッガ

以下のように,コマンドプロンプトのDEBUGコマンドでアセンブリ言語を書いたのですが,COMファイルとして保存する方法(http://wisdom.sakura.ne.jp/programming/asm/assembly29.html)が分かりません。お願いします! debug a 100 mov ah,a mov dx,9100 mov byte ptr[9100],20 int 21 ret a 200 sub bl,30 ret a 300 mov bl,byte ptr[9103] cmp bl,2b je 318 cmp bl,2d je 31a cmp bl,2a je 31a cmp bl,2f je 31a add al,dl ret a 400 mov ah,0 mov dl,a div dl mov byte ptr[9200],0d mov byte ptr[9201],0a add al,30 mov byte ptr[9202],al add ah,30 mov byte ptr[9203],ah mov byte ptr[9204],24 mov ah,9 mov dx,9200 int 21 ret a 9000 call 100 mov bl,byte ptr[9102] call 200 mov al,bl mov bl,byte ptr[9104] call 200 mov dl,bl call 300 call 400 mov ah,4c mov al,0 int 21 g =9000 9021

みんなの回答

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> g =9000 9021 質問者さんが提示したサイトにあるように、 | COMファイルの生成は、まずオフセットアドレス 100 からプログラムを作ります ですので、質問者さんの意図したようにはcomファイルに出来ません。 100番地から実行され、6行目のretで動作が不定になります。 しょっぱなで9000番地に飛ばすとかしては? > COMファイルとして保存する方法 サイト内容を参考にすると、 -r bx bx ???? :0 -r cx cx ???? :8f21 -n file_name.com -w でカレントディレクトリに、file_name.comという実行形式のファイルが作成されるハズです。 余分にファイルサイズが大きいですが、最近だと32KBとか64KBなんてのは屁みたいな扱いです…。

関連するQ&A