假设我想使用以下操作码进行短跳转:
EB CB 或 JMP rel8
"跳转,RIP = RIP + 8位位移符号扩展到64位"
(其中CB是一个字节有符号值,表示与EIP寄存器中的方向有关的相对偏移量)
也许总是偏移量将偏移+ 2,因为此短跳转中的执行时间(参考方向)中的EIP是twobyte指令的基础,但加数始终发生
eb 30 = jmp 0x00000032(+30)
eb e2 = jmp 0xffffffe4(-30)
那么EIP可以是故意相同的方向,因为fe + 2是00或EIP.
eb fe = jmp 0x00000000
我发现令人惊讶的是,虽然数字是负数,但是过度偏移也会出现分叉.但在英特尔,我发现没有提及(可能因为3000页).
英特尔®64和IA-32架构软件开发人员手册:Vol.2A 3-423
近跳跃,其中跳跃范围从当前 EIP值限制为-128到+127 .
然后我考虑了三种可能性:
这是一个简单的问题.如果要编译C编译器需要一个C编译器......也许直接用汇编代码?也许内核提供了将C转换为汇编程序并创建升级基础结构的基本工具?这也是一个愚蠢的问题,但我真的很感兴趣如何设计一个操作系统(不是我)从0开始与CPU和内存交互.
例如,如果我画这个圆圈

显然是不精确和丑陋的.有没有办法调整抽奖的敏感度?
编辑:
我可以总结一下:
self.da = wx.Panel(self, -1, size=(-1, 800))
self.da.Bind(wx.EVT_PAINT, self.paint)
self._buffer = wx.EmptyBitmap(500,500) # creating empty buffer
dc = wx.MemoryDC(self._buffer) # to handle the buffer
dc.SetBackground( wx.Brush("White") ) # setting background
dc.DrawCircle(50,40,100) #drawing circle
def paint(self, evt):
dc = wx.BufferedPaintDC(self.da, self._buffer) #on paint event draw this
Run Code Online (Sandbox Code Playgroud) 我无法正常使用python,因为Sublime text 2正在删除缩进.如果我添加并编辑文档的另一部分,ST将再次删除所有表格.显然python会抛出错误:IndentationError:意外的缩进.
我该怎么调整呢?