cpu-registers

    0热度

    2回答

    可一个普通的数组(arr)投入CPU寄存器在以下情况: int arr[6] {/*some values*/}; const auto lambda_f = [arr](int input) {/*some manipulations on array elements and input*/}; // further usage of lambda_f 如果不能,我应该如何重写代码,使

    1热度

    2回答

    我写了这段代码,但我的教授一直告诉我要保存和恢复我的寄存器。我以为我是通过向空的寄存器声明一个值。 program middleFinder; #include("stdlib.hhf"); // imports the input and output library static iDataX : int16 := 0; iDataY : int16 := 0; iDataZ : i

    0热度

    1回答

    如何从SP寄存器获取实际值? 我想用一些初始值填满整个SRAM,但我不想覆盖堆栈的实际内容。 我的启动代码(其也覆盖堆的实际内容): void RESET_handler() { unsigned *src, *dst; // initialize memory // ..... // fill SRAM dst = &_bss_end;

    2热度

    1回答

    我刚刚有一个问题,我似乎无法找到一个体面的答案。 我给这个代码: 0020 mov eax, [ebp+0x0c]; value inside = 0x000000ff 0023 mov cl, [ebp+ox08]; value inside- 0x82 0026 cmp al, cl 0028 jl label ;label is at address 003c, jl is si

    -2热度

    1回答

    如何实际执行该指令,不被存储在RAM或仅该指令的ADRESS被存储在RAM ,然后使用该指令CPU获取完整的指令数据要执行

    1热度

    2回答

    它在ATMega32U4 MCU上工作正常,但是.....当电池供电时,它无法检测到与USB断开连接。它可以检测到重新连接(false),并在此之后成为真实状态,但不会断开连接。 例如: bool TEnjoyPad::isUSBConnected() { #if defined(UDADDR) && defined(_BV) && defined(ADDEN) //setDela

    0热度

    1回答

    我在学习汇编,它在某种程度上是有意义的,但我有一个问题。我有这个源文件hello.sfml: ; nasm -felf64 hello.asml && ld hello.o global _start section .text _start: ; write(1, message, 13) mov rax, 1 ; syscall 1 is w

    2热度

    1回答

    就此wikipedia article所示,在取指周期中,PC将其内容发送到连接到地址总线的MAR。然后个人计算机会增加(正如这里,值被复制,所以如果我们直接将PC与地址总线连接,则不需要MAR)。 我的问题是为什么PC不直接连接地址总线?它将比以前的版本快得多。 MAR在这里服务有什么特别的目的? 同样适用于MBR和IR,这里的数据是从MBR→IR复制的。我在这里错过了什么? 任何帮助,将不胜感

    3热度

    1回答

    索引寻址模式通常用于访问数组,因为数组是连续存储的。我们有一个索引寄存器,它在每次迭代时都会增加,当它被添加到基地址时,会给出数组元素地址。 我不明白这种寻址模式的实际需要。为什么我们不能直接寻址?我们有基地址,每次访问时我们都可以加1。为什么我们需要索引寻址模式,它具有索引寄存器的开销? 我不确定隐含寻址模式的指令格式。假设我们有一个INC AC指令。是指令中指定的AC地址还是有一个特殊的操作码

    -1热度

    1回答

    如果缓存未命中发生,数据将被直接从主存储器移到注册中,或者数据先移到缓存然后注册?有直接的方式连接寄存器和主内存吗?