我调用.p2align了这个汇编指令,它是由gccC程序源生成的.
据我所知,对齐访问比未对齐访问更快,asm程序也不会自动对齐内存位置或优化内存访问,因此您必须这样做.
我真的无法读到这一点.p2align 4,,15,尤其是最后一部分15.
正如许多文档报道的那样,跳过明显gcc产生2 ,而不是1 的事实; 我得到的是这段asm内存以这样的方式对齐内存,即每个位置占用2 ^ 4位,这意味着16位,所以我认为WORD在这种情况下a 是16位长是公平的.
现在15可能意味着什么?这是多少比特?计数是从0这样开始的,"实际"数量是16而不是15?
编辑:
我只是将相同的C源转换为32位和64位asm代码,内存总是以相同的方式与同一指令对齐.p2align 4,,15.这是为什么 ?
我正在尝试实现一个REST协议,并尝试调试我的Web服务器不允许该PUT请求.
我已通过运行测试并进一步确认了这一点:
curl -X PUT http://www.mywebserver.com/testpage
Run Code Online (Sandbox Code Playgroud)
哪个为我的Web服务器返回403 - 禁止错误.
同样的事情发生在DELETE哪里POST,GET一切都很好.
我想知道这是否是一个常见的问题,那些使用REST的人会遇到什么以及可能的解决办法?
我可以对.htaccess文件进行简单的更改吗?或者我是否需要修改协议以在POST查询字符串中设置隐藏变量"_method"?
我想编写一个可以充当真正的文件描述符的类。它的 .fileno() 方法应该返回一个提供 POSIX 系统期望的所有服务的文件描述符。
这是我第一次涉足 POSIX 系统编程,所以我可能会误解很严重。
潜在的动机是希望使用内存中的 Python 对象作为构造函数的stdinor stdoutkwarg,subprocess.Popen而不必依赖临时或内存映射文件。但是我对一些可以完成工作的聪明技巧不感兴趣——我真的希望有一个能够回答所有相关系统调用的 Python 实现。