问题标签 [x86-64]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3972 浏览

python - 如何在 OS X 10.6 上构建 64 位 Python——只有 64 位,没有通用的废话

我只想在我的开发机器上构建它——来自 Python.org 的二进制安装仍然是 32 位,并且安装扩展(例如 MySQLdb)让我疯狂地试图找出每个扩展的正确标志。

澄清:我没有替换系统 Python,我只是将 Python.org 二进制文件安装到 /Library/... 的正常位置,而不是 /System/Library/...。

其他一切似乎默认构建为 64 位,默认的 Python 2.6.1 是 64 位(在我用 Python.org 构建替换它之前,认为它是直接替换)`

我只想要一个 64 位的构建,它可以在我的一台机器上运行而没有任何麻烦。

有人有简单的答案吗?

非常感谢,ssteinerX@gmail.com

0 投票
3 回答
14384 浏览

assembly - 是否可以在 x64 操作系统上运行 x86 程序集?

最近我决定值得尝试基本的 x86 汇编,以便更容易调试程序等。所以我(大约一周前)开始学习 x86 汇编,在那段时间,我将我的电脑升级到8GB 内存,很明显我的 x86 Windows XP 安装浪费了所有内存,现在,我正在运行 x64 Windows 7 副本,所以问题是:

是否可以在 x64 操作系统上使用 x86 程序集?它会在模拟器中正常运行吗?还是我应该学习 x64 汇编?

0 投票
6 回答
16363 浏览

assembly - 为什么 Visual Studio 使用 xchg ax,ax

我正在查看我的程序的分解(因为它崩溃了),并注意到很多

我用谷歌搜索了它,发现它本质上是一个 nop,但是为什么 Visual Studio 做一个 xchg 而不是一个 noop?

该应用程序是一个 C# .NET3.5 64 位应用程序,由 Visual Studio 编译

0 投票
2 回答
6541 浏览

c# - 64 位 .NET 应用程序中的 32 位 ActiveX 控件

我正在创建一个 C#.Net 应用程序,我希望能够为“所有 CPU”进行编译。我还想在这个应用程序的 UI 中包含一个特定的 ActiveX 控件,但是我尝试使用的 ActiveX 控件不支持 32 位。我可以使用一些技巧或解决方法来使此控件正常工作吗?

在 Web 浏览器控件中嵌入 ActiveX 控件怎么样?这甚至会起作用吗?

0 投票
3 回答
8236 浏览

directx - DirectX 中的 x64 和 x86 库文件有什么区别?

我最近在一台新计算机上安装了 Visual Studio,并在其上设置 DirectX,我转到工具>选项>项目和解决方案>VC++ 目录并在库文件下创建了一个新条目C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86

现在运行了一个测试程序(基本上只是初始化了 DirectX),它运行良好。但是,如果我更改...\Lib\x86...\Lib\x64,则会收到Direct3DCreate9未定义的链接器错误:

0 投票
1 回答
10743 浏览

linux - Assembly/Linking problem with nasm and ld

I have a sample assembly file that I compile with nasm:

This generates a syscall.o file. I try to link it with ld:

The ld command fails with the following error:

However, if I do

the command succeeds and I get a syscall executable.

Figuring out that nasm is not generating object code in x86-64 format I added "BITS 64" directive to the beginning of the syscall.asm file.

Then attempting to assemble syscall.asm with nasm gave the following error:

That seems strange because doing "file /usr/bin/nasm" on my terminal gives:

My 64-bit Fedora Core 11 has the latest version of nasm installed and my CPU is Intel Core 2 Duo E7200.

[EDIT]

My question is how do I get nasm to emit object files that is compatible with i386:x86-64.

0 投票
1 回答
2667 浏览

gcc - 在 x86_64 上使用汇编 JMP 函数

我对编程真的很陌生(总的来说 - 这很可悲),并且在这个应用程序中出现了一些与 Python 相关的程序集,我正在破解它以在 64 位上运行。

本质上,代码是这样的:

据我所知,FUNCTION(name) 语法被使用了大约 50 次来定义外部 Python 库的标头(我不会假装我完全理解它,我只是在修复错误)。

由于我正在为 x86_64 进行编译,因此 GCC 会为每个 FUNCTION(name) 实例吐出以下错误:

x86-64 不支持 32 位绝对寻址

不能做有符号的 4 字节重定位

我将如何“修复”它以在 x86_64 上运行?

0 投票
5 回答
1184 浏览

x86 - 是否可以矢量化 myNum += a[b[i]] * c[i]; 在 x86_64 上?

我将使用什么内在函数在 x86_64 上对以下内容进行矢量化(如果甚至可以矢量化)?

0 投票
5 回答
37160 浏览

assembly - 要学习汇编 - 我应该从 32 位还是 64 位开始?

我真的很想学习汇编。我非常擅长 c/c++,但希望更好地了解较低级别的情况。

我意识到以前曾提出过与装配相关的问题,但我只是在寻找一些特别适合我的情况的方向:

我正在运行 Windows 7,并且对如何开始使用程序集感到困惑。我是否必须从 x64 开始,因为我正在运行 Windows 7?有人说“先从 32 位开始”——我该怎么做呢?我的操作系统与我为“32”或“64”位编写程序集的能力有什么关系。实际上,“n 位”汇编是什么意思,其中 n 是一个数字?


编辑:

以下是一些帮助我开始组装的链接;其他刚入门的人可能会发现它们很有帮助。当我继续我的组装之旅时,我会不断更新这个列表:)

注意:正如我一直在学习的那样,我决定专注于使用 masm32 进行编程。因此,以下大部分资源都集中在这一点上。

  • 标记 wiki(初学者指南、参考手册、ABI 文档等。)
  • www.masm32.com
  • X86 组装维基书
  • X86 Dissassembly WikiBook(非常适合理解一些约定,以及高级代码如何转换为汇编的基础知识)
  • WinAsm IDE(与 masm32 配合得很好)
  • 简介:Windows 程序集(所有代码示例均适用于 masm32)
  • 中断列表
  • 装配教程(非常有助于理解核心概念)
  • x86 组装指南
  • Agner Fog 的软件优化资源,包括一些关于在不同平台(Windows 与 Linux/OS X)上调用约定的好东西,以及许多如何有效地做特定事情的例子。不适合初学者,但适合中高级读者。

    (他还为 Intel 和 AMD CPU 的每条指令提供了详细的性能信息,非常适合进行认真的性能微优化。一些初学者可能想看看其中的一些内容,以开始思考 CPU 的工作原理,以及为什么你可能会做某事方式而不是另一种方式。)

0 投票
6 回答
328 浏览

c - 在 i386 上实现回溯

我目前正在将我们的代码从 alpha (Tru64) 移植到 C 中的 i386 处理器 (Linux)。在我考虑移植我们的异常处理例程之前,一切都进行得很顺利。目前,我们有一个父进程,它产生许多子进程,当这些子进程之一是致命的(未字段)时,我有例程来捕获该进程。

我目前正在努力寻找实现回溯例程的最佳方法,该例程可以列出错误日志中的函数地址,目前我的例程只打印导致异常的信号和异常限定符代码。

任何帮助都会得到很大的帮助,理想情况下我会为所有处理器编写错误处理,但是在这个阶段我只关心 i386 和 x86_64。

谢谢

标记