看看这两个function: void function1() { int x; int y; int z; int *ret; } void function2() { char buffer1[4]; char buffer2[4]; char buffer3[4]; int *ret; } 如果我在gdb function1()中断,并打印variables的地址,我得到这个: (gdb) p &x $1 = (int *) 0xbffff380 (gdb) p &y $2 = (int *) 0xbffff384 (gdb) p &z $3 = (int *) 0xbffff388 (gdb) p &ret $4 […]
我需要获取大小超过2 GB的文件的文件大小。 (在4.6 GB文件上testing)。 有没有办法做到这一点,没有外部程序? 现状: filesize() , stat()和fseek()失败 fread()和feof()作品 有可能通过读取文件内容(非常慢!)来获取文件大小。 $size = (float) 0; $chunksize = 1024 * 1024; while (!feof($fp)) { fread($fp, $chunksize); $size += (float) $chunksize; } return $size; 我知道如何在64位平台上使用(使用fseek($fp, 0, SEEK_END)和ftell() ),但是我需要32位平台的解决scheme。 解决scheme:我已经为此启动了开源项目。 大文件工具 大文件工具是在PHP中(甚至在32位系统上)操作超过2 GB的文件所需的黑客集合。 回答: https : //stackoverflow.com/a/35233556/631369 github: https : //github.com/jkuchar/BigFileTools
我听说在Windows x64体系结构上,为了支持运行x86和x64应用程序,有两个单独/不同的Windowsregistry集合 – 一个用于x86应用程序访问,另一个用于x64应用程序访问? 例如,如果一个COM在x86registry中注册CLSID,那么x64应用程序将永远无法通过CLSID访问COM组件,因为x86 / x64有不同的registry集合? 所以,我的问题是,我对上述样本的理解是否正确? 我也想获得更多的文档来学习这个话题,关于x64架构上的两套不同的registry。 (我做了一些search,但没有find任何有价值的信息。) 在此先感谢乔治
我有一个x64服务器,因为我的库被编译为AnyCPU,运行在x64下。 我们需要访问在x86下注册的COM组件。 我对COM的了解不够,我的谷歌search引导我无处可去。 问题:对于COM组件,我可以使用从x64到x86的符号registry链接吗? 我是否还需要在x64下注册COM组件? 我可以(在这里的任何声明…)? 谢谢。
我昨天安装了Ubuntu 14.04(Trusty Tahr)。 一切似乎都OK。 但是当我试图编译一些C代码时,遇到以下错误。 错误似乎是由于操作系统缺乏32位体系结构的支持。 错误输出如下: /usr/bin/ld: i386 architecture of input file `./libsc.a(ftl_msg.o)' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_debug.o)' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_str.o)' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_cfg_common.o)' is incompatible with i386:x86-64 output […]
我正在使用Visual Studio 2013 Ultimate在MASM中编程汇编语言(x86)。 我想用一个数组来计算n个元素的斐波那契数列。 换句话说,我试图去一个数组元素,获取它之前的两个元素,将它们加起来,并将结果存储在另一个数组中。 我无法设置索引寄存器来完成这项工作。 我有我的程序设置像这样: TITLE fibonacci.asm INCLUDE Irvine32.inc .data fibInitial BYTE 0, 1, 2, 3, 4, 5, 6 fibComputed BYTE 5 DUP(0) .code main PROC MOVZX si, fibInitial MOVZX di, fibComputed MOV cl, LENGTHOF fibInitial L1: MOV ax, [si – 1] MOV dx, [si – 2] MOV bp, ax + dx […]
我认为2的补充的全部意义在于可以以相同的方式对有符号和无符号数字执行操作。 维基百科甚至专门列出乘法作为有益的操作之一 。 那么为什么x86对每个mul和imul都有单独的指示? 这对于x86-64还是这样吗?
我正在尝试安装使用Intel x86模拟器加速器的快速Android模拟器。 我已经通过SDKpipe理器下载了加速器,但是当我尝试安装时,我在安装开始时收到以下错误消息: 我知道我的CPU(i7-3520M)支持VT-X虚拟化,所以我去了BIOS,以确保它启用: 如您所见,该function在BIOS中启用。 我在互联网上find了'securable.exe'工具,当我启动它时,显示下面的窗口: 任何想法或build议? 我有英特尔酷睿i7的联想Z580笔记本电脑,我知道它应该支持这样一个基本的虚拟化function。 操作系统是Windows 8 Pro,我也有Hyper-V启用,我用这台机器进行Windows Phone 8的开发。 —编辑— 事实certificate,当您closuresHyper-V时,VT-x开始工作! 这是非常烦人的,因为我不能同时使用Android和WP模拟器。 有谁知道如何解决它?
考虑x86 CPU上的单个内存访问(单次读取或单次写入,而不是读取+写入)SSE指令。 该指令访问16个字节(128位)的内存,访问的内存位置alignment到16个字节。 文档“英特尔®64架构内存订购白皮书”指出,对于“读取或写入地址在8字节边界上alignment的四字(8字节)的指令”,内存操作似乎作为单个内存访问执行,而不pipe内存types。 问题: 是否存在保证读取或写入16字节边界的16字节(128位)作为单个存储器访问的Intel / AMD / x86 x86 CPU? 是这样的,哪种types的CPU是它(Core2 / Atom / K8 / Phenom / …)? 如果您对这个问题提供了答案(是/否), 还请指定用于确定答案的方法 – PDF文档查找,powershelltesting,mathcertificate或您用来确定答案的任何其他方法。 这个问题涉及到诸如http://research.swtch.com/2010/02/off-to-races.html之类的问题 更新: 我用C语言创build了一个简单的testing程序,你可以在你的电脑上运行。 请在您的Phenom,Athlon,Bobcat,Core2,Atom,Sandy Bridge或任何具有SSE2function的CPU上进行编译和运行。 谢谢。 // Compile with: // gcc -oa ac -pthread -msse2 -std=c99 -Wall -O2 // // Make sure you have at least two physical CPU cores […]
我希望在Visual Studio 2010中将目标CPU设置从“任何CPU”更改为“x86”。 我在另一个网站上阅读,我需要做以下几点: 转到您的程序的启动项目。 打开属性窗口。 点击编译选项卡。 点击高级编译选项。 将目标CPU选项更改为x86。 但是我没有看到属性中任何地方的“编译”选项卡。 请尽早帮助我。 更新:我看到一个平台下拉列表,但除了“任何CPU”之外,没有任何内容 。 。