プロが教えるわが家の防犯対策術!

最近描画ツールで文字や色を表すのにVRAMへアクセスして書き込むというものがありました。
そこで思ったのですが、printf()などの関数ではなく、VRAMに文字データを送ってくれるC言語あるいはC++言語の関数を使ったほうが良いのではないでしょうか?
ただ、私がみたVRAMへアクセスしてデータを送るのはアセンブリ言語でした。
参考にしたサイトがこちらです。
https://qiita.com/Wanwannodao/items/1d999aeb3653 …

ただ、文字表示などはosのする仕事なので、この人はosを使わないでVRAMに直接書き込んだのですかね。

A 回答 (1件)

前の回答にも書きましたけど、OSの管理を抜け出して勝手にハードウェア資源にアクセスすると、OSの管理が破綻します。

なのでまともなOSではそんなことは許しません。そんな無茶ができるのは、DOSみたいにそうした管理機構を持たず、リアルモードだけで動作するものならではです。その記事もリアルモードでの話と書いてあるから、プロテクトモードによる保護機構を使わない(OSがない)前提です。

ただリアルモードだとi8086互換なので、メモリは1MBしかない上にセグメントで64KB単位に区切られたぶつ切りになるという、今となっては悪い冗談のような不自由な状態になりますが…。

その記事のベースになってる本は見ていませんが、おそらく画面表示はピュアVGA(描画アクセラレータを一切持たない)で行っているはずです。これだったらすべてをCPUで操作しなきゃいけないから、VRAMアクセスの話は当然出てきますけど、それはWindowsなどのOSには全く通用しないことなので、よりローレベルな動作を勉強するくらいにしか役に立たないですよ。
    • good
    • 2

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