アプリ版:「スタンプのみでお礼する」機能のリリースについて

アセンブリ言語で素数を求めるプログラムを作っているのですが、どうしても内容が理解できなくて困っています。
難しいのは、多分理解できないので、できるだけ簡単なプログラムソースを書いて頂けないでしょうか?
または、それがあるページを教えてください。

A 回答 (5件)

C言語でとりあえず素数のアルゴリズムを起こし(Webに豊富なサンプルがあると思います)ASM形式に移植する方法はどうでしょうか?



○まずは簡単なASMサンプルをアセンブル(Cで言うところのコンパイル)して実行できる一連の手順を憶える。

○ASMの作法を学ぶ。2,16進数の理解、CPUのレジスター構成、ニーモニック(命令)、スタックの仕組み(PUSH&POP)、PC(プログラムカウンター)の仕組みなど。

*:プログラムはどれでも(どの言語も?)似たような構造をもっています。プログラムの最小に分けると「代入」「比較」「繰り返し」の構造が見えてくると思います。

参考URL:http://www.arch.cs.kumamoto-u.ac.jp/project/kite …
    • good
    • 0
この回答へのお礼

レスどうもです。

とにかく頑張ってやって見ますw
WEBの方も参考にさせていただきますね。

お礼日時:2003/05/02 02:27

No.2のarukamunです



KITEASMを使ってという事ですね。
検索サイトでKITEASMで検索すると、結構ヒットしますので、サンプルや仕様を確認しましょう。

>とりあえず、アセンブラ自体があまり分かってません(汗)

フローチャートを書いて、見る事をお勧めします。

高級プログラミング言語で解る言語はありますか?
例えばBASIC、C言語、Javaなど。

この回答への補足

レスありがとうございます。

一応C言語は分かります(Cだったら多分解けます)
分からないのは、アセンブリ言語としてのプログラムの起こしかたです。
とりあえず、資料が少なくて理解ができません(汗)

補足日時:2003/04/30 16:06
    • good
    • 0

(1)素数は無限にあることが証明されていたと思います。

しかし計算時間も限りあるコンピュター世界のことですから、いくら以下の素数と言う風に限定せねばなりません。
http://www.hokuriku.ne.jp/fukiyo/math-obe/eratos …
(2)整式等数式で全ての素数を計算する式はまだ発見されていなかったと記憶しています。
(3)それで古くから知られている「エラトステネスの
篩(ふるい)」というアルゴリズムでやらざるを得ないでしょう。(エラトステネスは古代ギリシャの数学者の名前に因む)
(4)「エラトステネスの篩(ふるい)」はこの語句でWEB検索すれば沢山出てきます。私がやると915件とか。
VBでの例が載っています。
http://www.arch.kumamoto-u.ac.jp/hagane/yamanari …
(5)アセンブリ言語って、CPUの系統でそれぞれ異なり、種類が沢山あります。それのどれを記さないでソースを教えろと言うのは、不充分です。
色んなコンピュタ機種の経験者がこのOKWEBの質問を見ているはずですから、ご質問者がひょっとして当然と思っているインテル86系以外で答えが出たら無駄になります。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。

内容については了解しました。
とりあえずは、CPUの系統を調べてみて質問しなおさせていただきます。

お礼日時:2003/04/30 00:55

素数を求めるアルゴリズムが解らないのでしょうか。


それともアセンブラが解らないのでしょうか。

アセンブラも沢山あるので、6502アセンブラとか8086アセンブラとか、名前は解りますか。
解らないのであれば、プログラムを書くことが出来ません。それぞれ固有の命令を持っていますので。

因みに素数を求めるアルゴリズムで有名なのは「エラトステネスのふるい」です。

「エラトステネスのふるい」をキーワードに検索してみるのも手だと思います。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。

とりあえず、アセンブラ自体があまり分かってません(汗)
エラトステネスのふるいのことは私自身調べて理解していたのですが、それをプログラムとして立ち上げることができないのです・・・。

とりあえず、使う環境としてはKITEマイクロプロセッサ上で動かすことができるということなのですが・・・。

お礼日時:2003/04/30 01:01

アセンブリ言語と言ってもいろいろあるので、



(1)どういう環境(PCの種類、CPUの種類、OS)で、

(2)どういう処理系か(MASMか、CASLか、Gnuアセンブラ等)

を書いてくれないと。
そうしたらアセンブラの偉い人が答えてくれるかもしれません。

この回答への補足

了解しました。

現在、「マイクロプロセッサの行動原理」というものを習っていてKITEマイクロプロセッサ使っています。

OSはLINUXでKITESIM、KITEASMを使って作成せよとのことでした。

・・・すいません、後は良く分かりません(汗)
極めて初心者ですといって逃げたくはないのですが、処理系とかどれのことをいっているのでしょうか?
ってなぐらいに分からないことだらけです。

補足日時:2003/04/29 22:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています