プロが教えるわが家の防犯対策術!

main(){
satatic char path[] = "c:\\test.txt"
__asm {
mov ah, 3Dh
mov al, 01h
lea dx, [path]
int 21h
}
}
これで実行時にエラーになります。
セグメントの扱いを知らないのでcsの設定などを書いていないのでエラーになったのでしょうか?

A 回答 (2件)

Windowsのプログラムですか?


64bitのOSだと、DOSのAPIはサポートされてないらしいですけど。
(32bit OSでは一応動く)
    • good
    • 0
この回答へのお礼

64bitではございません。すべて32bitです。

お礼日時:2017/04/26 16:34

エラーの内容は?


あとコンパイラはなに使っているの?

int 21hはDOSシステムコールだから基本16bitコンパイラで作らないと動かないよ。
そんで動かないけどコンパイラは通っちゃうんじゃないかな。
あとANo.1にも書かれているように64bit Windowsだと16bitプログラムは起動もできない。32bit Windowsのコンソールからなら16bit用Cコンパイラで作れば一応動くと思う。
    • good
    • 0
この回答へのお礼

32bitコンパイラを使っていました。
16bitで試してみます。
ありがとうございました。

お礼日時:2017/04/26 21:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!