電子書籍の厳選無料作品が豊富!

int $0x80はシステムコールを呼び出すと書かれていますがどういう事でしょうか? インテルx86系です。アセンブリ言語についてです。教えていただけないでしょうか?すみません。

A 回答 (4件)

>>$0x80の命令は何ですか?教えていただけないでしょうか?すみません。



このあたりの話は、対象のCPUよりも、自分が使おうとしているOSの勉強をしたほうがいいです。
とはいっても、このへんの話を解説した書籍って最近の本であるのかは知りませんが・・・。

昔、CP-MとかMS-DOSが流行っているころなら、秀和システムトレーディングから、OSとかBASIC-ROMの解析本が出ていて、それらが教科書になったものでした。(知的所有権関連でNECと揉めたこともあったような)

一番分かりやすいのは、OSのカーネル部分のソースコードを読めばいいのですが、なかなか入手できませんからね。
勉強用のOSで、MINIXっていうのがあったと思うので、そちらを勉強してもいいかもしれません。
    • good
    • 0

INTというのは割り込みのことです。

一般的にはどんなCPUでも、割り込むときに割り込みの種別を区別するために必ず割り込みIDが付いてきます。ここでの0x80は割り込みIDのことで、それを指定することでシステムコールを呼び出す(0x80を別の値に変えることで、他の割り込みを実行できる。例えば、キーボード入力など。)

アセンブリ言語についていろいろ質問しているが、その前にCPUのハードウェアの動作を理解したほうがいい。そこの理解がないと、アセンブリ言語は理解できません。
    • good
    • 2

http://wisdom.sakura.ne.jp/programming/asm/assem …

上記は、MS-DOSでのシステムコールの説明です。
MS-DOSはINT21でシステムコールを呼び出しますが、Linuxの場合は$0x80が割り当てられているみたいですね。

いろんなプログラムにおいて、似たような処理が必要になります。それぞれでロジックを開発するのはばからしいですよね。
また、OS側の資源は一元管理しないといけないので、システムコールを呼び出すようにしないといけない面もあります。

OS側で用意されたさまざまな処理をプログラムから呼び出すことをシステムコールと呼んでいます。
    • good
    • 0
この回答へのお礼

$0x80の命令は何ですか?教えていただけないでしょうか?すみません。

お礼日時:2021/06/23 01:32

1回しか書かないからね


システムコール=オペレータコールと見ていいかも
サーバーから離れて仕事をしている操作員にシステムから警告音を出す事

洗濯機で洗濯してて処理が全部終わった時にブザーが鳴ると思うが、その様子と同じに見ていい

以上
    • good
    • 0

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