問題タブ [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.
c - OpenWatcom によってコンパイルおよびリンクされた小規模モデルの DOS .exe がクラッシュする
小さな DOS .exe プログラムを作成しようとしています。NASMアセンブリでエントリポイントを書きました
コードとセグメントがどのように見えるべきかわからないことに注意してください..start:
。その部分をどこかからコピーして貼り付けました。
私はCでメインプログラムを書きました:
私はこれでそれをコンパイルします:
結果の prog.exe は次のとおりです。
prog.exe の分解:
prog.exe
DOSBox を無限ループに陥れます。奇妙なことに、C ソース ファイル (other
呼び出されていない関数内) から文字列リテラルを削除すると、正常に返されます。アセンブリ ファイルの何が問題になっていますか?
OpenWatcom を使用するのはこれが初めてであり、DOS .exe ファイルを作成するのもこれが初めてであることに注意してください。
関数を書きたくないmain
のは、OpenWatcom libc が出力実行可能ファイルにリンクされて、不必要に大きくなってしまうからです。