问题标签 [cpu-registers]

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 回答
58248 浏览

assembly - SI 和 DI 寄存器之间的实际区别是什么?

我不明白有什么区别。

0 投票
2 回答
467 浏览

assembly - 有没有办法将 16 位值的一部分存储在 Assembly 的 8 位变量中?

我创建了一个存储 16 位变量的变量,我试图将上半部分存储在一个 8 位变量中。我该怎么做呢?

编辑:它适用于 IA-32,我认为我不能使用寄存器

EDIT2:我被允许使用寄存器。

0 投票
2 回答
1350 浏览

visual-studio-2008 - 在 VS2008 监视窗口中显示 CPU 寄存器

是否可以在监视窗口中添加具有特定语法的 CPU 寄存器(RAX、EAX、标志等),以便它们像常规变量一样显示并以 base-10 打印(如果打开十六进制显示,则以十六进制打印)?

例如:

如果 Registers 窗口显示 RAX = 00000000027A6468,将 %rax 添加到 watch 将导致:

谢谢 !

0 投票
1 回答
3872 浏览

cpu - Intel i7 处理器上的 CPUID

我在基于 i7 的较新机器上的基于 CPUID 的代码存在问题。它将 CPU 检测为具有 8 个 HT 单元的单核,而不是每个具有 2 个 HT 单元的 4 个核。

我一定是误解了从 CPU 返回的 CPUID 信息的结果,但我不知道如何。

基本上,我遍历每个对 Windows 可见的处理器,为该线程设置线程亲和性,然后进行一系列 CPUID 调用。

该序列对系统中的其余 CPU 重复。

有没有人遇到过这个问题?

0 投票
4 回答
83998 浏览

assembly - 新的 X86_64 处理器寄存器的名称是什么?

在哪里可以找到此架构上用于组装的新寄存器的名称?

我指的是 X86 中的寄存器,如 EAX、ESP、EBX 等。但我希望它们是 64 位的。

我认为它们与我反汇编 C 代码时不同,我得到的是 r 而不是 e。

0 投票
6 回答
4776 浏览

c++ - C++ CPU 寄存器使用

在 C++ 中,局部变量总是分配在堆栈上。堆栈是您的应用程序可以占用的允许内存的一部分。该内存保留在您的 RAM 中(如果没有换出到磁盘)。现在,C++ 编译器是否总是创建将局部变量存储在堆栈上的汇编代码?

以下面的简单代码为例:

在 MIPS 汇编代码中,可能如下所示:

如您所见,我根本不需要为 n 使用堆栈。C++ 编译器会认识到这一点,并直接使用 CPU 的寄存器吗?

编辑:哇,非常感谢您几乎立即和广泛的回答!foo 的函数体当然应该是return ++n;,不是return n++;。:)

0 投票
6 回答
12060 浏览

c - 何时在 C 中使用寄存器?

我有这样的东西

它做什么,没关系。代码以现在的方式运行得很快,如果删除了 register 关键字,则运行得更慢。但是,当我在 int n 之前添加寄存器时,它实际上运行速度比现在慢,但比不使用寄存器时快。

谁可以给我解释一下这个?谢谢。

0 投票
3 回答
11215 浏览

debugging - 调试程序集

如何调试汇编代码?我在 Linux 上,并且有 gdb 方便。我知道我可以看寄存器。有哪些调试汇编代码的方法?

0 投票
8 回答
94458 浏览

c - 将寄存器值读入 C 变量

我记得看到过一种使用扩展 gcc 内联汇编来读取寄存器值并将其存储到 C 变量中的方法。

尽管我一生都无法记住如何形成 asm 语句。

0 投票
3 回答
747 浏览

c++ - 如何在 Visual Studio 中使用处理器寄存器?

我正在尝试编写一个解决 rsa 挑战的程序(是的,我有有趣的目标),目前我没有 64 位 linux 机器,我真的不想花时间编写一个没有的程序有机会完成。所以虽然我可以做一些汇编程序编程,但我更喜欢使用 C++。但是,我也会对如何使用内联汇编来做同样的事情感兴趣。这里的计划是使用 16 个 64 位通用寄存器和 128 位 sse 寄存器来做(真的很长)整数数学运算。所以任何关于如何做到这一点的帮助将不胜感激。