質問編集履歴

3 修正

carnage0216

carnage0216 score 131

2018/03/12 06:48  投稿

PCのVRAMに直接アセンブリ言語でデータを書き込む。
題名に書かせていただいた通りPCのVRAMにアセンブリ言語でデータを書き込むことを考えた場合、
windowsの場合はwin32APIによって直接書き込むことは出来ないため、win32よ呼び出してVRAMに書き込みたいデータを渡して、win32がVRAMにデータを書き込むことで画面に文字や色が表示されると思います。
しかし、Linuxの場合はOS自体がオープンソースであるため、VRAMにデータを書き込む過程をアセンブリプログラムで見れるのでしょうか?
「書き込む」部分アセンブリプログラムで見れるかをお尋ねしたいです。
printfに関しては文字を表示する際に関係しているため質問をわかりやすくしようとしたつもりがかえってわかりにくい内容になってしまいました。すいませんでした。
どうかよろしくお願いいたします。
//編集内容//
VRAMにアクセスする上で壁が多くあることはよくわかりました。(多分)
そこで、過去に質問を少し変えて改めて質問したいのですが「CPUからGPUを経由してVRAMにデータを書き込みをするⅭプログラムをコンパイルに成功して実際に文字が表示できたとします。そのC言語プログラムをアセンブリプログラムに変換したとします。そのアセンブリプログラムはハードウェアに依存したものであるため、GCCでアセンブリプログラムとして実行してもCプログラム同じような結果が出ると思います。
そこで、過去にした質問を少し変えて改めて質問したいのですが、CPUからGPUを経由してVRAMにデータを書き込むPCであるという仮定で「CPUからGPUを経由してVRAMにデータを書き込みをするⅭプログラムをコンパイルに成功して実際に文字が表示できたとします。そのC言語プログラムをアセンブリプログラムに変換したとします。そのアセンブリプログラムはハードウェアに依存したものであるため、GCCでアセンブリプログラムとして実行してもCプログラム同じような結果が出ると思います。
得られたアセンブリプログラムをVRAMにデータを書き込むひな形のプログラムとして、そのひな形のアセンブリプログラムを参照に改造して別の文字を表すようにアセンブリプログラムで書いてGCCなどでアセンブリ言語としてコンパイルできれば、アセンブリプログラムでVRAMにアクセスでき文字を表せると思うのですが、(OSも関与してくると思いますが。)私の考えは間違っているでしょうか?
完全に一からアセンブリプログラムを組んでVRAMにアクセスするのは難しいですが、以上のようにできるならばVRAMにアクセスするのは難しくないと思います。
完全に一から使っているCPU、GPUの情報からアセンブリプログラムを組んでVRAMにアクセスするのは難しいですが、コンパイラによって出力されたアセンブリプログラムをそのまま使えばVRAMにアクセスするのは難しくないと思います。
  • Linux

    5111 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Raspberry Pi

    1337 questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • アセンブリ言語

    134 questions

    アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

  • CPU

    67 questions

2 変更

carnage0216

carnage0216 score 131

2018/03/12 04:11  投稿

PCのVRAMに直接アセンブリ言語でデータを書き込む。
題名に書かせていただいた通りPCのVRAMにアセンブリ言語でデータを書き込むことを考えた場合、
windowsの場合はwin32APIによって直接書き込むことは出来ないため、win32よ呼び出してVRAMに書き込みたいデータを渡して、win32がVRAMにデータを書き込むことで画面に文字や色が表示されると思います。
しかし、Linuxの場合はOS自体がオープンソースであるため、VRAMにデータを書き込む過程をアセンブリプログラムで見れるのでしょうか?
「書き込む」部分アセンブリプログラムで見れるかをお尋ねしたいです。
printfに関しては文字を表示する際に関係しているため質問をわかりやすくしようとしたつもりがかえってわかりにくい内容になってしまいました。すいませんでした。
どうかよろしくお願いいたします。
どうかよろしくお願いいたします。
//編集内容//
VRAMにアクセスする上で壁が多くあることはよくわかりました。(多分)
そこで、過去に質問を少し変えて改めて質問したいのですが「CPUからGPUを経由してVRAMにデータを書き込みをするⅭプログラムをコンパイルに成功して実際に文字が表示できたとします。そのC言語プログラムをアセンブリプログラムに変換したとします。そのアセンブリプログラムはハードウェアに依存したものであるため、GCCでアセンブリプログラムとして実行してもCプログラム同じような結果が出ると思います。
得られたアセンブリプログラムをVRAMにデータを書き込むひな形のプログラムとして、そのひな形のアセンブリプログラムを参照に改造して別の文字を表すようにアセンブリプログラムで書いてGCCなどでアセンブリ言語としてコンパイルできれば、アセンブリプログラムでVRAMにアクセスでき文字を表せると思うのですが、(OSも関与してくると思いますが。)私の考えは間違っているでしょうか?
完全に一からアセンブリプログラムを組んでVRAMにアクセスするのは難しいですが、以上のようにできるならばVRAMにアクセスするのは難しくないと思います。
完全に一から使っているCPU、GPUの情報からアセンブリプログラムを組んでVRAMにアクセスするのは難しいですが、コンパイラによって出力されたアセンブリプログラムをそのまま使えばVRAMにアクセスするのは難しくないと思います。
  • Linux

    5111 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Raspberry Pi

    1337 questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • アセンブリ言語

    134 questions

    アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

  • CPU

    67 questions

1 追加

carnage0216

carnage0216 score 131

2018/03/10 11:17  投稿

PCのVRAMに直接アセンブリ言語でデータを書き込む。
題名に書かせていただいた通りPCのVRAMにアセンブリ言語でデータを書き込むことを考えた場合、
windowsの場合はwin32APIによって直接書き込むことは出来ないため、win32よ呼び出してVRAMに書き込みたいデータを渡して、win32がVRAMにデータを書き込むことで画面に文字や色が表示されると思います。
しかし、Linuxの場合はOS自体がオープンソースであるためVRAMに書き込むまでの過程を見ることができると思います。
LinuxでならVRAMにデータを書き込む過程をアセンブリプログラムで見れると考えているのですが、この考えは間違っているでしょうか?
また、printf関数がもしOSに依存しているとしたらLinux同様にアセンブリ変換すればVRAMに文字や色を表すためのデータを受け渡す部分が見れたりするのでしょうか?
しかし、Linuxの場合はOS自体がオープンソースであるため、VRAMにデータを書き込む過程をアセンブリプログラムで見れるのでしょうか?
「書き込む」部分アセンブリプログラムで見れるかをお尋ねしたいです。
printfに関しては文字を表示する際に関係しているため質問をわかりやすくしようとしたつもりがかえってわかりにくい内容になってしまいました。すいませんでした。
どうかよろしくお願いいたします。
  • Linux

    5111 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Raspberry Pi

    1337 questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • アセンブリ言語

    134 questions

    アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

  • CPU

    67 questions

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る