• ベストアンサー

アセンブラ リンクエラーで困っております。

アセンブラ リンクエラーで困っております。 OS:PC-DOS コンパイラ:MASM6.0 mapファイルを確認するとcodeセグメントのlengthが0FFFFHを 越えて配置しようとしエラーが出ているようです。 いくつかのパターンでコードサイズを減らすとリンクが通ります。 本エラーを解消する方法ってないでしょうか? (codeセグメントの分割方法など)

  • rox_y
  • お礼率100% (5/5)

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

  • ベストアンサー
  • hanmemomo
  • ベストアンサー率35% (205/580)
回答No.1

懐かしいことしてるねー 小さなfarセグメントのプローシャーをたくさん作るようにしないと えらーになりますが、nearアプリですか? 86系アセンブラは、今でも使うので、必要でしたら どんどん聞いてください。 そもそも、ソースを64K越える書き方にも問題があるように 感じますし、早くて小さいソースの書き方など 教えられるかもしれませんので。

rox_y
質問者

お礼

大変ご親切な回答ありがとうございました。 ヒントをいただきました2つの方法 1.farプロシージャ 2.ソースの最適化 において2。での対応で解決できそうな見込みです。 (テクニック的なところではなく無駄な処理の削除などですが。。) 回答をいただいた後セグメントの基礎をもう一度やったほうがいいと思い 古い書籍を取り寄せ学習しております。もしその中で疑問があればここで 質問いたしますのでご縁があればよろしくお願いいたします。

関連するQ&A

  • MPLAB IDE v8.92アセンブラについて

    PICマイコンを初めて使う初心者です。 準備としてPickit3を購入し、最新バージョンの”MPLAB IDE v8.92”を開発環境に入手しましたが、 初期設定の”Project Wizard”でアセンブラのコンパイラーの選択が上手くいきません。 ”mpasmwin.exe”などのコンパイラーが入手できたら可能なのか、そもそもアセンブラでは開発は出来ないものなのでしょうか? また、コンパイラーの実行ファイルの入手ができたとしてリンクさせる方法などご存知の方がおられましたら、ご教示お願い致します。 マイクロチップへ問い合わせをしているのですがなかなか回答がきません。 よろしくお願い致します。

  • アセンブラに関する質問

    ↓のソースをMASMでコンパイル&リンクして実行すると  入力まではできるのですが、入力した直後に   「このプログラムで無効な処理が発生したため、強制    終了されます。全てのプログラムを、終了してから    再起動してください」 と表示され、そのメッセージが表示されたウィンドウの下の方の「詳細」をクリックすると    「プログラムで一般保護エラーが発生しました     エラーが起きたアドレス 9A00:10000     サービスへの割り込み なし」     と表示されました     実行したのは↓にソースですが、何がいけなくて     このエラーが出たのでしょうか・・(OSはME) CODE SEGMENT ASSUME DS:CODE,CS:CODE,ES:CODE,SS:CODE ORG 100h 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

  • アセンブリ言語について教えて下さい。no.2

    ご覧いただきありがとうございます。 前回の質問に続き、アセンブラについてお聞きしたいと思います。 前回ご回答を下さった方には非常に感謝しております。またよろしくお願いいたします。 「page擬似命令」と「2つのファイルをリンクさせる方法」が知りたいのですが、参考書等を拝見してもよくわかりません。 どなたかご教授下さい。 ちなみにアセンブラは8086のMASMです。 よろしくお願いいたします。

  • NASMかNASKの文法の本

    NASMかNASKのアセンブラを使っているのですが、MASMと構文が異なっている?せいか、エラーなりました。 MASMでは DW offset ADR_KOKO DW seg ADR_KOKO でOKだと思いますが、NASM/NASKではどうするのでしょうか? NASM,NASMの文法など詳しく載っている本などありますか?(洋書でも構いません。) DW 0 ; A---> オフセット DW 0 ; B---> セグメント ADR_KOKO: ;ここのオフセットとアドレス値をA,Bにセットしたい mov eax, 1  ... RET

  • スタックポインタをC言語で記述する方法は?

     スタック・ポインタの設定はアセンブラで記述してリンクしていますが、C言語で記述する一般的な方法は有りますか。  ルネサスのHEWだと出来るようですが、コンパイラ依存性が有るようです。  コンパイラに依存しないか、たいていのコンパイラなら出来る方法は有りますか。  宜しくお願いします。  

  • 他のページ内の複数のフレームに同時にリンクさせるには?

    フレーム分割されてないページから、フレーム分割されている他のページ内の複数のフレームに、それぞれURLを指定して同時にリンクさせるには? HPを作っているのですが、どうしてもわからないことがあります。 フレーム分割の無い「サイトマップ」のページから、 フレーム分割されている他のページにリンクさせる際に、 リンク先ページの各フレームがそのリンク毎に変わるよう、別々に設定したいのです。 <例> Aページ(サイトマップ)内の”寿司”をクリックすると、フレーム分割されたBページの「LeftFrame」には”日本料理のページ”を、「RightFrame」には”寿司のページ”を表示させる。 Aページ(サイトマップ)内の”ピザ”をクリックすると、フレーム分割されたBページの「LeftFrame」には”イタリア料理のページ”を、「RightFrame」には”ピザのページ”を表示させる。 ↑ これを可能にする方法、タグなどがありましたら、どうかアドバイスをお願い致します!

  • HEWでのコンパイルエラー

    とある人に頂いたH8Sデバッグボードを動作させるためのサンプルHEWプロジェクトをコンパイルしたところ次のエラーが出てしまいます…。 License has expired. Maximum link size limited to 64KB code+data. L3430 (F) The total section size exceeded the limit このエラーの意味を、Google先生に色々尋ねてはみたのですが答えが出てきませんでした。もちろんH8S C/C++コンパイラマニュアルも調べました。 無償評価版のHEWを使っているので「合計リンクサイズが64KBを超えてますよ」というエラーなのでしょうか?? どなたかこのエラーの意味をご存知の方がおられましたらご回答願います。

  • エクセルのリンク編集について

    エクセルで更新できないリンクエラーがあります。 エクセルにシート1~シート10までデータがあり、別のフォルダーからデータをリンクするようにしているのですがいつも下記のエラーが出ます。 何か良い解消方法はありませんか。 エラー内容 ブック内の一部のリンクはすぐに更新できません。 値を更新せずにそのままにするか、間違っていると思われるリンクを編集してください。 続行とリンク編集のボタンが表示されます。 リンクの編集を押すとエラー:ソースが見つかりませんと表示されます。

  • illustratorのリンク画像について

    macにてillustratorCS5を使っています。 ちょっと言葉で説明するのが難しかったため、実例にて質問させていただきます。 作業中【フォルダ1】というフォルダに 作業データと配置しているリンク画像をまとめているとします。 途中【フォルダ1】も残しておきたいけど別パターンも作ろうかなと思い、【フォルダ1】をコピーして【フォルダ2】を作りました。 ところが【フォルダ2】のデータを開くと、リンク画像は【フォルダ1】のままだったりするのですが、これは1つ1つ再リンクするしか方法がないのでしょうか? できたらコピーした【フォルダ2】のデータのリンク画像は同一フォルダの【フォルダ2】に置き換わってくれたらありがたいのですが…。 アドバイス頂けましたら幸いです。

  • windows xp の再インストールエラー表示について

    windows xpの再インストールのときに、下記のようなエラーがでて、これ以上先に進むことができません。これを解消する方法があったら教えてください。 File \i386 \biosinfo.inf could not be loaded. The error code is 47872.