問題タブ [watcom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
366 参照

c - OpenWatcom によってコンパイルおよびリンクされた小規模モデルの DOS .exe がクラッシュする

小さな DOS .exe プログラムを作成しようとしています。NASMアセンブリでエントリポイントを書きました

コードとセグメントがどのように見えるべきかわからないことに注意してください..start:。その部分をどこかからコピーして貼り付けました。

私はCでメインプログラムを書きました:

私はこれでそれをコンパイルします:

結果の prog.exe は次のとおりです。

prog.exe の分解:

prog.exeDOSBox を無限ループに陥れます。奇妙なことに、C ソース ファイル (other呼び出されていない関数内) から文字列リテラルを削除すると、正常に返されます。アセンブリ ファイルの何が問題になっていますか?

OpenWatcom を使用するのはこれが初めてであり、DOS .exe ファイルを作成するのもこれが初めてであることに注意してください。

関数を書きたくないmainのは、OpenWatcom libc が出力実行可能ファイルにリンクされて、不必要に大きくなってしまうからです。