问题标签 [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 投票
3 回答
86774 浏览

assembly - 在 MIPS 中,什么是 HI 和 LO

我正在阅读 MIPS 中的除法,我发现 div

将 $s 除以 $t 并将商存储在 $LO 中,余数存储在 $HI 中

https://web.archive.org/web/20201111203150/http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html

维基百科说

HI 和 LO 用于访问乘法器/除法器结果,由 mfhi(从高位移动)和 mflo 命令访问。

http://en.wikipedia.org/wiki/MIPS_architecture

是 HI 和 LO 寄存器吗?它们是什么数字寄存器?

0 投票
9 回答
1801 浏览

performance - 组装:我们为什么要为寄存器烦恼?

我有一个关于装配的基本问题。

如果寄存器也可以在内存上工作,为什么我们还要费心只在寄存器上做算术运算呢?

例如,以下两个原因(本质上)将相同的值计算为答案:

片段 1


片段 2



据我所知,大多数文本和教程主要在寄存器上进行算术运算。使用寄存器是否更快?

编辑:那很快:)

给出了一些很好的答案;最佳答案是根据第一个好的答案选择的。

0 投票
1 回答
531 浏览

.net - 在 Visual Studio 中调试托管应用程序时设置 CPU 寄存器值

我正在使用反汇编视图在 Visual Studio 2010 RC 中调试 .NET 应用程序。代码经过优化和 JIT-ed。在某个特定点,我需要更改 ZR CPU 标志,以便 JNE 指令采用不同的路径。出于某种奇怪的原因,Visual Studio 中的寄存器窗口是只读的,不允许我更改寄存器值,我也不能使用“设置下一条指令”命令自己强制跳转。有任何想法吗?

PS:是否有替代方案,例如“命令窗口”的命令?我怀疑我可以从“立即窗口”中做到这一点,因为我认为 .NET 不允许注册访问。

0 投票
2 回答
19300 浏览

assembly - 什么是 CPU 寄存器以及它们是如何使用的,尤其是 WRT 多线程?

这个问题和我下面的回答主要是针对另一个问题中的一个混乱领域。

在答案的最后,有一些我不完全相信的 WRT“易失性”和线程同步问题 - 我欢迎评论和替代答案。然而,问题的重点主要与 CPU 寄存器及其使用方式有关。

0 投票
6 回答
1327 浏览

assembly - 组装登记初学者

所以我最近一直在进行一些组装,我是一个初学者,所以我想知道是否有人可以澄清一些事情。我认为每个进程都有自己的一组寄存器,每个线程都可以修改这些寄存器对吗?那么多个线程如何使用相同的寄存器而不引起冲突呢?还是每个线程都有自己的一组寄存器?

0 投票
4 回答
12406 浏览

architecture - ESP在汇编中是什么意思?

E在这里代表什么?

更新

64位的RSP?

这里是什么R意思?

0 投票
5 回答
27278 浏览

assembly - X 在 EAX,EBX,ECX ... 在汇编中是什么意思?

谷歌没有显示结果,

有谁知道?

0 投票
2 回答
1256 浏览

linux - 我们如何在 Linux 上从 Spack Pointer(reg/SP) 获取函数名称?

我正在使用 ptrace 获取与 Linux 上的 Callstack 相关的信息。我可以使用 ptarces 返回的寄存器检索指向我的堆栈的 Spack 指针。但是使用这个堆栈指针如何检索与当前调用堆栈的函数名称和签名相关的信息?

是否有任何 Linux API 可以遍历此调用堆栈?

请帮助..我正在寻找它从过去几天...

提前感谢桑迪普

0 投票
2 回答
5978 浏览

assembly - 快速的初学者 MASM 注册问题 - DX:AX

我目前正在准备参加 x86 汇编的考试。

我在谷歌上搜索“:”时运气不佳,标点符号太常见了:/

IDIV - 有符号整数除法

用法:IDIV src

修改标志:(AF、CF、OF、PF、SF、ZF 未定义)

按源对累加器进行有符号二进制除法。如果 source 是字节值,则 AX 除以“src”,商存储在 AL 中,余数存储在 AH 中。如果 source 是一个字值,则DX:AX除以“src”,商存储在 AL 中,余数存储在 DX 中。

摘自“英特尔操作码和助记符”

DX:AX 是什么意思?

非常感谢您的时间:)

0 投票
1 回答
10121 浏览

assembly - 在 x86 程序集中打印寄存器值的简单方法

我需要在 8086 Assembly 中编写一个程序,它接收来自用户的数据,进行一些数学计算并在屏幕上打印答案,我已经编写了程序的所有部分并且一切正常,但我不知道如何打印号码到屏幕上。

在我所有的计算结束时,答案是 AX,它被视为一个无符号的 16 位整数。如何打印 AX 寄存器的十进制(无符号)值?