同じような質問をしてしまっているので今回で最後にしたいと思います。
今まで解答して頂いた解答者の方々、どうもありがとうございました。
⓵あるCPU(とGPU)のデータシートのアセンブリ命令のセットからopencvのような画像処理を行うソフト、プログラムなどは作れますか?
⓶ ⓵が出来ないとしたら、データシートはなんのためにあるのですか?
過去の解答ではosを走らせるために CPUのデータシートを読むと知りました。それ以外で使う理由はあるのでしょうか?
⓷データシートはアセンブリプログラムを組むためにあるのでしょうか?
私なりにIntelの CPUのデータシートを読んだ際にアセンブリ命令は記載されていませんでした。すなわち、データシートを読んでもアセンブリプログラムは組めないとわかりましたが、実際のところはどうなのでしょうか?
⓸私はopencvのような画像処理プログラムをデータシートを読んで、画像処理のアルゴリズムを理解した上でデータシートに書いてあるアセンブリ命令を駆使してアセンブリの画像処理プログラムを作りたいと考えています。
その考えが無謀で不可能なことなのかを理由も含めて説明して頂けると大変有り難いです。それがわかれば、無謀な概念に縛られずC言語の勉強に勤しめます。
どうかよろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
逆説的ですが、そういう質問を発しているという時点で無謀であるとの結論になります。
割と最初の頃からずっと言い続けていることですけど、もっとコンピュータの基礎的な仕組みを理解して、それから順番に攻めていかないとダメです。その目標は、今の一点突破のようなやり方では絶対に達成できないと言っておきましょう。コンピュータの仕組みを隅々まで熟知している必要はないにしても、ざっくりでいいから理解していなければ画像処理どころか、アセンブラでコードを書くこともままなりません。アセンブラじゃない高級言語ではその必要性はかなり薄れますが、それでもどうやって動いてるのか全くわからないまま動かすものは書けないですよ。それを言語の勉強と並行する感じですね。
さすがにワンボードマイコンまで時間を巻き戻せとは言いませんが、せめて今のWindows機の原型となったPC/ATのアーキテクチャは理解しておくべきです。これなら今の機体でもFreeDOSを入れることで使えるようになるし、DOSならばユーザーのやることにいちいち口出ししてこないから、どんなに行儀の悪いコードを書いても何も言ってきません。その代わりロクに手助けしてくれないし、ふつ~に暴走して戻ってこなくなり、リセット押すしかなくなる…なんてことにすぐになりますけど。
No.2
- 回答日時:
> あるCPU(とGPU)のデータシートのアセンブリ命令のセット
GPUのアセンブリ命令(という言い方もおかしいがそれは置いておいて)は、ふつう公開されていません。
> からopencvのような画像処理を行うソフト、プログラムなどは作れますか?
アセンブリ命令だけでという意味でしたら、できるでしょうが普通はやりません。
普通は高級言語で大部分を書きます。誰かがデータシートを見て作った高級言語のコンパイラを使って。
> 私なりにIntelの CPUのデータシートを読んだ際にアセンブリ命令は記載されていませんでした。
アセンブリ命令は別の資料にまとまっています。探してください。
多分その資料はCPUのチップに電源メモリ入出力装置などを配線してPCを設計したい時に見るものです。
> その考えが無謀で不可能なことなのか
高級言語を全く使わずにそのような複雑なプログラムを組もうというのは、不可能とは言いませんが、少なくともたいへん効率の悪いやり方だとは思います。無謀と言えば無謀ですね。
普通は、アセンブラはプログラムの中のごく一部の重要な部分だけを高速化するのに使います。(それですら最近はイントリンジックで済んだりして必要性が薄れています)
ただ別にアセンブラを使いたいということ自体は止めはしません。やりたいようにやるのが一番楽しいです。
No.3
- 回答日時:
>⓵あるCPU(とGPU)のデータシートのアセンブリ命令のセットからopencvのような画像処理を行うソフト、プログラムなどは作れますか?
できません。
計算機はCPUだけで構成されているわけではないからです。
周辺機器の操作ができなければ、たとえば画像データの取り込みすらできません。
>⓶ ⓵が出来ないとしたら、データシートはなんのためにあるのですか?
>過去の解答ではosを走らせるために CPUのデータシートを読むと知りました。それ以外で使う理由はあるのでしょうか?
CPUの使い方としての役割を果たします。
しかし、⓵への回答の通り、ディスクやカメラなどの周辺機器の操作方法も知る必要があります。
>⓷データシートはアセンブリプログラムを組むためにあるのでしょうか?
>私なりにIntelの CPUのデータシートを読んだ際にアセンブリ命令は記載されていませんでした。すなわち、データシートを読んでもアセンブリプログラムは組めないとわかりましたが、実際のところはどうなのでしょうか?
たとえばIntelでは、この回答時点では下記のURLでインストラクションセットなどを公開していますよ。
https://software.intel.com/en-us/articles/intel- …
ざっと見た感じ、これだけ情報があればアセンブリ言語でプログラムを書くことはできると思います。
命令やレジスタはかなり増えているものの、30年前に見た8086のインストラクションセットの書式とあまり変わっていないという印象です。
>⓸私はopencvのような画像処理プログラムをデータシートを読んで、画像処理のアルゴリズムを理解した上でデータシートに書いてあるアセンブリ命令を駆使してアセンブリの画像処理プログラムを作りたいと考えています。
>その考えが無謀で不可能なことなのかを理由も含めて説明して頂けると大変有り難いです。それがわかれば、無謀な概念に縛られずC言語の勉強に勤しめます。
たとえば、opencvを使ったプログラム(サンプルコードとかでも構いません)をコンパイルし、出来上がった実行ファイルのサイズを見てみてください。また、プログラムがリンクしているライブラリのサイズもすべて足し合わせてください。アセンブリ言語を多少でも触ったことがあればわかると思いますが、アセンブリ言語のソースコードは、実行ファイルのサイズよりも大きいです(ソースコード1行の命令が、32ビット=半角4文字の機械語命令に対応しています)。だいたい、1MBが新聞の朝刊1日分と言われていますが、それと比べてどれだけの量のソースコードを書かなくてはならないか想像がつくと思います。
これを「頑張ればできる」と考えるか「無謀だ」と考えるかは、人それぞれですね。
CPUのデータシートからopencvのような画像処理ソフトが作れない事がわかってよかったです。
本当にどうもありがとうございます。
No.4
- 回答日時:
openCVはCPUやGPUの仕様が解っただけじゃ全然作れません。
CPUやGPUはコンピューターの一部品でしかないということに
思い至らないのでしょうか?
ICのデータシートに書かれているのは、コンピュータやグラボの仕様の
ほんの一部でしか有りません。
またopencvはosを含んでないし、計算処理や画像処理の多くを他のライブラリに
依存しています。そうしたもの全ての使ぃ方を把握しないと作れません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA 複数ブックシートごとにデータを統合する方法について 4 2022/05/20 14:23
- システム CPUの問題について 2 2022/07/09 12:04
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) Excel VBA 大量のレコードからある列の重複数をカウントする方法?拡張編 7 2022/08/22 13:43
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) [Excel2016] 相関表等の自動作成 2 2022/08/01 20:34
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
特定の文字を含むシートだけマ...
-
VBA 入力月で該当シートを選択...
-
VBA 存在しないシートを選...
-
Excel VBA 複数行を数の分だけ...
-
別のシートを参照して計算する方法
-
ユーザーフォームに入力したデ...
-
実行時エラー1004「Select メソ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
Excel チェックボックスにチェ...
-
セルのコピーで「オブジェクト...
-
エクセルVBAでダブルクリックを...
-
複数シートに色付きセル(条件つ...
-
重複するidをデータごとにまと...
-
一括印刷マクロ シート名を数字...
-
VBA 最終行まで数式をコピーする
-
Excel マクロについての相談
-
エクセルのシート名変更で重複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報