• 締切済み

C言語とアセンブラ言語による計算プログラミング

"AB間の距離を求めなさい。" 下の画像において、AC=r1、BC=r2、∠ACB=α°とするとき、AB間の距離dを求めなさい。 上記の問題について困っております。 この問題の解答については、C言語とアセンブラ言語によるプログラミングで考えるようになっており、FPU(MATH COPROCESSOR)を使用し、C言語側で変数や関数宣言、printfなどでの計算結果出力を記述し、アセンブラ言語側で計算するプログラム問題です。 原則として、C言語側で計算してはいけない仕様になっています。 そして、2つのオブジェクトファイルをリンクさせ、実行可能ファイル(.exe)を作成し、コマンドプロンプト に計算結果を表示する。とういう問題です。 ・アセンブラ言語側での使用する命令のプロセッサアーキテクチャのタイプは「.386」 ・作成するオブジェクトのメモリモデルは、Windowsなので「FLAT」 図の画像は添付してあるので、どうかご回答のほどよろしくお願い致します。

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

回答No.4

画像見れません。 計算部分を別ファイルとしてC言語で作ります。 C言語のコンパイラには大抵アセンブリ言語のソースへ翻訳する機能がありますので、計算部分のソースをアセンブリ言語化して見てみましょう。 まぁ、全体を一つのファイルにしても一旦アセンブリ言語のソースを出力し計算部分がどんなアセンブリ言語のコードになっているか確認しても良いでしょうが。 それを参考にして、作り直しても良いしそのまま使っても良いかも。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

まずは、距離を計算する部分も含めてプログラムを全部Cで書いて見せてください。もちろん計算部分は独立した関数にしてください。それを元にその関数部分をどのようにアセンブラ化するかを考えるという手順で進むのがいいでしょう。 プログラミング以前に数学の問題として計算方法が分からない場合は高校の数学を復習してください。

  • black2005
  • ベストアンサー率32% (1968/6046)
回答No.2

>上記の問題について困っております。 困っている部分を具体的に挙げてください。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

で, あなたはどこがわからないんですか?

関連するQ&A

  • アセンブラ言語についてです。

    こんにちは。 現在大学3回生で就職活動をしております。 ESに得意科目の欄があり、大学の講義で習ったアセンブラ言語と書こうと思います。 アセンブラ言語は、将来どのような役に立つのでしょうか?? アセンブラ言語を学んでCやJAVAのプログラミングに生かせるのでしょうか?? 知識としては、基本情報技術者のCASLIIの問題が解ける程度です。 よろしく願いします。

  • 組み込みアセンブラとは何ですか?

    私はx86でアセンブラを勉強中ですが、ネットでアセンブラ関係のことを検索していて組み込みアセンブラという記述をを見ました。 C言語から利用する場合インラインアセンブラより良いとかなんとか。 組み込みアセンブラという名前も怪しく合っているかわかりません。 掲示板のようなところで組み込みアセンブラの方が良い、早いと書いてありました。いろいろ検索して見かけたのでどこの掲示板かもわかりません。後から探したのですが見つけることができませんでした。 そこで質問なのですがそのその組み込みアセンブラとは何なんでしょうか? C言語からアセンブラを利用する場合、今読んでいる本「やさしいアセンブラ入門」にはインラインアセンブラとアセブラ言語モジュール(オブジェクトファイル)をCプログラムでリンクする方法の2種類が書いてありますが。組み込みアセンブラはモジュールで使うということでしょうか? 違うとすればどのような方法でアセンブラを利用することでしょうか? わかる方教えてください。ヨロシクお願いします。

  • 言語別(C/C++,Java等)の計算速度の違いが知りたいです。

    言語別(C/C++,Java等)の計算速度の違いが知りたいです。 巡回セールスマン問題を解く(よさそうな解を見つける)プログラムを書くことになったのですが、言語が自由です。 オブジェクト指向言語で組もうと思っているんですが、C++、C#、Javaなどの言語のうち、計算速度が早いのはどれでしょうか? 順番も分かれば、教えてほしいです。 また、もしC言語で組めれば、やっぱりオブジェクト指向言語よりも早いのでしょうか? 大体でもよいので、分かる方いたら教えてください。 よろしくお願いします。

  • 素朴な疑問 (C言語とアセンブラの処理速度の違いについて)

    C言語で作成したプログラムをビルドして実行ファイルを作成するのと、アセンブラ言語(?)をアセンブルして作成した実行ファイルは、どうして処理速度が違うのでしょうか?例えば全く同じ処理を高級言語と低級言語で作成した場合、出来上がったそれぞれの実行ファイルの違いは、コンパイル時に吸収されてしまうわけではないのでしょうか?

  • C言語の作成依頼です。

    C言語でカラー画像をグレースケール化するプログラムを作成していただけませんか? 入力画像と出力画像のフォーマットはppmで計算方法は重み付けした輝度の計算で処理したいと思っています。 (0.299 * R + 0.587 * G + 0.114 * B) Opencvを使わないで作成お願いします。 画像のサイズは360×270 です。 できるだけ計算時間のかかるも

  • C言語によるウェイト

    C言語による正確な時間を定めたウェイト(例えば100msのウェイト)の挿入方法を探しています。 C言語でのウェイトの挿入方法を調べたところ、for文等で挿入できるのはわかったのですが、時間の求め方までわかりませんでした。 時間の求め方で調べたところ、アセンブラなら命令のステート数とクロック周波数より求める方法を知りました。 ですがアセンブラでの方法ではなく、C言語での時間の計算方法を覚えたいと思います。 些細な事でもかまいませんので、ご回答頂ければと思います。 どうぞ宜しくお願いします。

  • アセンブラの機能について

    今、アセンブラの勉強をしているのですがある書籍の説明文において 「ハードウェアすなわちコンピュータが用意している機能を原理的にはすべて使用してプログラムを作成できる。」 ということや、 「C言語などの高級言語には存在しない、ハードウェアに予め用意されている機能を利用してのプログラム製作が可能」 という記述があったのですが、具体的にアセンブラには高級言語には存在しないどのような機能が内臓されているのでしょうか? 私は多少C言語およびJavaの経験があるのですが、是非ともアセンブラとの比較を勉強したいと思い、この疑問が浮かび上がりました。 分かる方、よろしくお願いいたします。

  • c言語の多項式のプログラミングについて

    学校のc言語の課題で 下記の多項式を、 x0=0, x1=1.5, h=0.1の条件の下に計算するプログラムを作成せよ。 s(x)=1-2x+3x^2-4x^3+5x^4-6x^5 という問題がだされたのですがわからないので教えてください。

  • アセンブラでWindowsAPI

    アセンブラだけでWindowsAPIを叩いてウインドウを表示させることはできるのでしょうか。C言語で普通にできるので、相当複雑になるとは思いますが、当然アセンブラでもできると思います。C言語だと変数の型の名前なども変な名前がいろいろ付いていて裏で何をやっているのかさっぱりわかりません。普通に使う分には問題ないのですが、ブラックボックスのような感じで気持ち悪いのです。どのような命令でAPIが呼び出されているのかCPUレベルで知りたいです。C言語の呼び出し規約ということで、MS-DOSのシステムコールみたいなものとは違うと思うのですが、どうなのでしょうか。

  • C言語による赤外線受信

    タイトルの通り、C言語によって赤外線の受信をしようとかんがえていますが、まったくおもいうがびません。赤外線の基本的な知識はあるのですが、どうすればうまくいくのかな?って言う状態です。送信機側は、ある本からそのままアセンブラで作ったのですが、とある事情により受信側はC言語でつくらなくてはいけません。どなたか、ホームページとう情報をお持ちの方よろしくおねがいします。また、もし回答するのに足りない点があれば指摘おねがいします。

専門家に質問してみよう