![]() |
1
3
一 系统调用 也被称为 软件中断 . 调用软件中断的x86指令具有助记键 国际的 . 数据如何传递到操作系统由操作系统ABI定义。据我所知,Windows将immediate 0x80用于其所有例程,并通过寄存器发送附加数据,但我不确定。0x20是第一个可用的立即数,因为范围0到31是保留的,并且用于一般的异常,如整数除以零和内存错误。 什么 基本上 发生的情况是CPU切换到特权模式并读取 IDTR (中断描述符表寄存器)。在这里,它找到IDT(Interupt描述符表)的物理内存地址,并根据烘焙到软件中断指令中的8位立即数查找IDT。IDT可以存储在内存中的任何位置。IDTR可以通过说明LIDT和SIDT读/写。IDT可以存储各种信息,但是对于中断,它将地址存储到与int immediate关联的服务例程中。 触发软件中断的win32函数示例。嗯。 普林特 朋友当然有,朋友也有。 输入关键部分 .在WindowsVista和Windows7中,由于使用了新的复合管理器,一些OpenGL和DirectxAPI调用现在需要往返内核。对于OpenGL,它适用于读取当前backbuffer的所有函数,如glreadpixels、glcopy(sub)teximage2d等。 附言:用一小撮盐来做这个职位。我已经有段时间没有用这种方式处理窗口了,我也没有做很多事实检查。欢迎编辑和评论。 这里有一个链接 Intel 386 manual (我还是引用了这句话) |
![]() |
2
4
x86 CPU提供
您可以在中查看更多详细信息 Intel's Software Developer's Manuals ,具体地说 volume 2B |
![]() |
Jean · Python中的系统vs调用vs popen 7 年前 |
![]() |
nick · 用exec在c++中执行shell命令 7 年前 |
|
Goujon · 组件Exeve/bin/bash(x64) 7 年前 |
![]() |
Alok · fcntl Unix/Linux系统调用的全名是什么 7 年前 |
![]() |
Raviga · 使用写入系统调用不间断打印Int数组 7 年前 |