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

assembly - 什么 x86 寄存器表示 movsb 指令中的源位置?

什么 x86 寄存器表示 movsb 指令中的源位置?

0 投票
1 回答
6723 浏览

cpu-registers - 线程之间如何共享寄存器?

我知道堆栈是每个线程的,但是寄存器是有限的,就像在 IA32 上一样,只有 8 个寄存器。

那么寄存器是如何在线程之间共享的呢?

0 投票
2 回答
879 浏览

c++ - c++: asm clobber list

In g++, clobber lists for asm can be specified, for example:

which means that the asm code changes registers r1, r2, r3.

Now, my changed registers depend on a template parameter n (the asm block is inside of a template function), and registers r1, ..., rn will be changed. How can I express that?

0 投票
4 回答
463 浏览

linux - 简单程序的装配问题

我正在尝试从头开始学习组装。我已经阅读了很多,但即使是我在参考书中找到的以下简单程序也让我感到困惑:

现在显然这应该打印“Hello”。但我什至不知道在任何阶段发生了什么。前两个阶段将消息长度和messgae 放在两个寄存器中,不再使用。我不明白为什么。

我不知道为什么需要四个不同的寄存器。

0 投票
4 回答
667 浏览

c++ - g++ 寄存器分配

调用函数时,g ++中是否有一种安全的方法可以强制变量位于某个寄存器中?此函数包含假定某些寄存器中的输入的 inline-asm-code。

我试图将局部变量声明在固定寄存器 ( register int x asm ("$10")) 中并将它们传递给函数,但-O3搞砸了。

我不想通过在寄存器中声明全局变量来为整个程序保留寄存器。

0 投票
4 回答
430 浏览

c++ - 编译器将 cpu 寄存器中这样的结构传递给函数是否有意义?

我想知道某种结构是否包含多个原语,但其总大小小于或等于单个 cpu 寄存器(如 4 字节寄存器)的大小,编译器将其放入是否有意义在这些 4 字节寄存器中的一个中,当通过值或引用传递它时,而不是在被调用者堆栈上复制它或传递指向它的指针,并且通常在将不止一个原语传递给函数时传入 cpu 寄存器的数组或结构会派上用场吗?

这种结构的样本:

将结构传递给函数的示例:

0 投票
1 回答
455 浏览

opcode - 指令加载到寄存器

在指令集架构中,各种指令 R-Type、I-Type、J-Type 是加载到同一个通用寄存器中,还是根据操作码将不同种类的指令加载到不同的寄存器中?如果寄存器不同,那么处理器如何知道将哪条指令加载到哪个寄存器?在编译器的设计中,允许加载指令的寄存器数量是固定的吗?

处理器如何区分不同类型的指令 R-Type、I-Type、J-Type,是否基于第一个初始操作码?

0 投票
1 回答
867 浏览

stack - 通用寄存器

我是计算机体系结构的新手。有人可以帮助我了解在处理几个复杂应用程序时使用有限寄存器。我的问题是应用程序程序员感兴趣的寄存器数量是固定的(例如 :: 80386 总共包含 16 个寄存器)。

如果我们想要更多的寄存器(例如:以适应增加的堆栈大小)会发生什么,是否将寄存器中的地址和数据写回主存?在多任务环境中,不同应用程序的寄存器数据和地址是否从主存之间移动并返回注册处理?

操作系统是否具有不干扰应用程序通用寄存器的特殊寄存器?

并建议任何好的资源来帮助初学者理解这些概念?

0 投票
3 回答
6896 浏览

cpu-architecture - 处理器/寄存器/内存中的数据、地址和指令如何区分?

在处理器中,如何区分数据、地址和指令?执行程序时,当一切都在0s 和1s 中并且寄存器加载数据和地址时,处理器如何区分指令?

0 投票
2 回答
2697 浏览

assembly - x86 汇编内存操作数

大家好,我有一个关于 x86 的问题。在英特尔手册中,某些指令可能采用不同类型的内存操作数。例如。IDIV r/m8 或 IDIV r/m16 或 IDIV r/m32 或 IDIV r/m64 现在它们都是 IDIV 是否有可能知道操作数是 m8、m16、m32 还是 m64?我在想如果操作数是 m8 那么它是由一个 8 位寄存器寻址的,例如。ax if 32 then eax,esp ...我的假设是否正确?如果我错了请纠正我欢迎任何建议谢谢