我正在组装中构建一个32位操作系统.
我已经设置了IDT,我正在通过int指令处理程序interruptus .
如何启用syscall和sysenter说明以及如何处理/返回?
诚然,syscall指令在32位基于英特尔处理器的支持,所以我不能用它?sysret教学不安全是真的吗?在某处存在一个教程吗?
编辑:我的主要问题是如何启用syscall和sysenter说明!(没有重复)
assembly system-calls protected-mode osdev interrupt-handling
正如我已经注意到0xF3二进制前缀被用作:
1)重复和减小ecx直至ecx等于0在INS,OUTS,MOVS,LODS,STOS指令和称为rep
2)重复和减小ecx直至ecx等于0或ZF在设置CMPS,SCAS指令和称为repz或repe
该0xF3二进制前缀被用作:
1)重复和减小ecx直至ecx等于0或ZF不在集合中CMPS,SCAS指令和称为repnz或repne
最近注意到XACQUIRE/ XRELEASE前缀也有相同的二进制值(0xF2,0xF3)
那是什么XACQUIRE/ XRELEASE正在做什么(我读了一些关于锁定内存地址的东西,但它们不是工作线lock(我相信))?
还会怎么0xF3 mov byte ptr [ecx],0x0做?(将停在ZF …