cpu-registers

    2热度

    2回答

    我正在学习8086/8080微处理器。其中使用的寄存器有名字, RAX RBX RCX RDX 和R8之前那张,然后寄存器被命名为R8,R9 ......到R15。我想知道 我们是否也将寄存器RAX,RBX等称为R1,R2等? 三江源

    3热度

    2回答

    我一直在尝试在我的linux操作系统上学习32位英特尔x86 nasm语法程序集,并且遇到了关于四个通用32位寄存器的问题。 从我一直思维,EAX是,本来是要用来与 16位的寄存器AX,其中又分为啊(高8位)的32位寄存器,和人(低8位)。和ebx,ecx和edx一样。 然而,在阅读一篇快速文章之后,我变得有些困惑。 32位寄存器是由16位寄存器(又由两个8位寄存器组成)和另外16位加上的吗? 从

    0热度

    1回答

    我知道,对于Intel来说,矢量寄存器是优化的,例如, SandyBridge微架构(SSE + AVX),但NVIDIA的GPU如何?我在某处读过的一些资源(我忘记了在哪里)说使用矢量寄存器对NVIDIA的GPU没有任何用处。但是我有一个testrun在GPU上运行一个带有向量寄存器的程序,并且与其中的一个进行比较,他们确实给了我apx。 1.7倍加速。 仅供参考对于相同的程序,英特尔的CPU只

    2热度

    2回答

    我的印象是,如果程序为变量类型整数(其大小为8字节)保留内存,则保留的内存将是8个不同的寄存器,这些寄存器将在内存中顺序显示。 我的问题如下: 1)假设的答案会有所不同是我上面一个很好的概括,通过不同类型的变量需要每个字节相当于出在内存使用1个寄存器变量? (即1个字节要求内存中有一个寄存器) 2)如果这是真的,那么每个寄存器在内存中的位数是多少?或者,如果我购买了32位计算机,这是否意味着内存中

    1热度

    2回答

    是否有一本为它的所有..可悲的是我可以对所有这些东西进行肤浅的谈话。我已经去过Uni,并且在所有这些主题中都得到了A,但是我不知道堆栈或记忆的真实外观。 我不“得到”真正的线程。 CPU高速缓存行如何工作,以及它如何因读/写障碍而失效。诸如TLB之类的东西 任何一本书或者一小部分书籍可以帮助你阅读。

    0热度

    1回答

    有没有办法将寄存器值向右移动,而不是加0(如srl那样),使其加1。如果这是不可能的,任何其他建议来实现相同的目标将不胜感激。

    1热度

    1回答

    我知道8086有一个20位地址总线和16位寄存器,所以它需要2个寄存器来定位绝对存储器地址。为什么8086不使用20位寄存器?

    3热度

    3回答

    我有一个现有的C代码(第三方来源,我无法更改它),这将不会被PC-Lint(版本9.0)接受。代码在嵌入式环境中运行,使用Green Hills Compiler。 有没有人知道如何配置PC-Lint接受代码定义? 我只附加了结构中第一个成员的错误消息。 下面是从头文件中的定义: typedef struct { uint32_t PINSEL0; // see ERROR messa

    0热度

    1回答

    在下面的MIPS代码部分中,我必须说明在序言中必须保存哪些寄存器,然后再恢复。我发现一些包括: $ ra,$ a0和$ v0 但是,是否有任何非明显的也必须保存/恢复,如$ sp或$ fp?谢谢。 func: #insert function prologue here bne $a0, $0, else addi $v0, $0, 1 j ret else: srl $a0, $a0,

    0热度

    1回答

    我有一个浮点数,需要将它存储在一个4字节的寄存器。 但是,当我做下面的例子的操作时,我不会得到一个正确的值,因为它被损坏为0x0000C000。 typedef float FLT; FLT val , temp_val; val = -6.513467; (volatile FLT*)0x402174 = val; 相反,如果我用一个变量地址如下,并在& _temp_val检查,它的工