• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MASMの機種依存についてお尋ねします)

MASMの機種依存についてお尋ねします

このQ&Aのポイント
  • MASMが9821のMSDOS6.2で使えるかどうか気になる
  • フリーのマクロアセンブラを使用しても機種に依存した命令が使えるか疑問
  • 初心者なので理解しづらいが、MSDOSのシステムコールやフロッピーディスクまわりの命令を使えるか知りたい

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

  • ベストアンサー
回答No.1

アセンブリ言語は、(MASMもそうですが)機種依存ではなくて、CPU依存です。 ですから、i8086(せいぜいi80386くらいまで)の命令は、全てサポートしています。 システムコールは、MS-DOSであれば、おそらくAT互換機でもPC-9821でも同じだと思います。 しかし、G-RAMのアドレスやBIOS関連(AT互換機はBIOSコールを使える。PC-9801は別のコールがあった気がする。)、グラフィック命令関連は、機種依存(アドレスやサービスコールが異なる)があるのでその機種にあわせたコールをする必要があります。 コールそのものは、ニーモニックとして存在しています。

situmonzui
質問者

お礼

皆様、アドバイスありがとうございました。  多角的な意見をいただきたいと思ってずっと放置していた本質問を締め切ります。  今は6年前と環境が激変し愛器に電源を入れる時間もほとんどなくなってしまいました。    御礼が遅くなり、申し訳ございません。

その他の回答 (2)

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.3

MASMというのは、intelのASM86アセンブラのMicrosoft製の互換品で、厳密にはサードパーティーの商品になります。 バイナリに関しては、MS-DOS(PC-DOS)汎用であれば違いはありません。低レベルなグラフィックやディスクアクセスをしなければ、気にする必要はないものです。 機種固有の部分は、特定の割り込み命令(PC98x1ならint1B)を使い、これについては、書籍などを参考にしてください(98だとASCIIから出ていたPC-9801プログラマーズリファレンスや秀和の本、どちらも絶版。ATだと、ソフトバンクからで出てたかな)。 98だと、プロテクトがらみでμPD765Aを制御したり、ATでもコントローラ(日立だったかな)をいじる方法もありますが、まあ、よほどの熟練者(モニタやデバッガだけでプログラムできるレベル)でないと無理でしょう。 多分、ここを見ている方でも、出来る方は一桁くらいかと思います。 MASM互換のアセンブラはネットを探せばあります、リンカやデバッガもあり、98でも動きますよ。

situmonzui
質問者

お礼

皆様、アドバイスありがとうございました。  多角的な意見をいただきたいと思ってずっと放置していた本質問を締め切ります。  今は6年前と環境が激変し愛器に電源を入れる時間もほとんどなくなってしまいました。    御礼が遅くなり、申し訳ございません。

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.2

8086のプログラムとして書く限り、機種に依存した機械語の命令(ニーモニック)というのは無いはずです。が、使用するアセンブラによって、マクロ機能やセグメントの指定の仕方等に多少の差はあると思います。 また、MS-DOSのシステムコールを使わずにFDを読み書きするなら、BIOSを使うことになりますが、BIOSや読み書きしたいFDのフォーマット(ファイルの管理方法やセクタ長とか)等の資料も必要になりますね。 BIOSもイヤで気力と技術があればFDCを直接制御することもできますが、DMAとか割り込みも制御しないといけなかったはずなので、ものすごく大変です…I/Oの割付はPC/ATとPC98では全く違うので、PC98の資料を集める必要があります。(昔は解析本など、沢山出ていたんですが)

situmonzui
質問者

お礼

皆様、アドバイスありがとうございました。  多角的な意見をいただきたいと思ってずっと放置していた本質問を締め切ります。  今は6年前と環境が激変し愛器に電源を入れる時間もほとんどなくなってしまいました。    御礼が遅くなり、申し訳ございません。

関連するQ&A