みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アセンブラに関する質問

↓のソースをMASMでコンパイル&リンクして実行すると
 入力まではできるのですが、入力した直後に


  「このプログラムで無効な処理が発生したため、強制
   終了されます。全てのプログラムを、終了してから
   再起動してください」
と表示され、そのメッセージが表示されたウィンドウの下の方の「詳細」をクリックすると


   「プログラムで一般保護エラーが発生しました
    エラーが起きたアドレス 9A00:10000
    サービスへの割り込み なし」
    と表示されました


    実行したのは↓にソースですが、何がいけなくて
    このエラーが出たのでしょうか・・(OSはME)






CODESEGMENT
ASSUMEDS:CODE,CS:CODE,ES:CODE,SS:CODE
ORG100h

START:

mov ah,0Ah
mov dx,offset BUFF
int 21h

mov ah,09h
mov dx,offset BUFF2
int 21h

BUFF db 54,87,5 dup(?)
BUFF2 db 'testtest' '$'

code ends

end start

投稿日時 - 2005-03-19 16:49:04

QNo.1278826

暇なときに回答ください

質問者が選んだベストアンサー

ここ10年ぐらいアセンブラは触ってないので忘れかけてますが。。。試してみてください。

1. START: の直後に以下のコードを入れてみてください。
push cs
pop ds

2. BUFF の直前に以下のコードを入れてみてください。
mov ah,4ch
mov al,00h
int 21h

3. 開始オフセットが 100hなので COMモデルだと思いますが、LINKした後に、EXE2BINで COM形式に変換してますか?

投稿日時 - 2005-03-20 13:44:49

お礼

有難う御座いましたこれで、実行中強制終了する事がなくなりました

投稿日時 - 2005-03-23 16:50:45

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

MS-DOSの COMモデル のプログラムですか?

プログラム終了のシステムコール(確か、AH=0)は呼んでいますか?

投稿日時 - 2005-03-19 17:45:13

あなたにオススメの質問