相关疑难解决方法(0)

为什么ARM PC寄存器指向下一个要执行的指令后?

根据ARM IC.

在ARM状态下,PC的值是当前指令的地址加上8个字节.

在Thumb状态:

  • 对于B,BL,CBNZ和CBZ指令,PC的值是当前指令的地址加上4个字节.
  • 对于使用标签的所有其他指令,PC的值是当前指令的地址加上4个字节,结果的位[1]清零以使其字对齐.

简单地说,PC寄存器的值指向下一条指令后的指令.这是我没有得到的.通常(特别是在x86上)程序计数器寄存器用于指向要执行的下一条指令的地址.

那么,底层的前提是什么?有条件执行,也许?

assembly arm

33
推荐指数
1
解决办法
2万
查看次数

如何将任意长度的 Vec<T> 的所有条目加载到堆栈上?

我目前正在处理向量,并试图确保我在堆栈上拥有本质上是向量数组的内容。我无法调用,Vec::into_boxed_slice因为我正在动态分配Vec. 这是可能吗?

阅读了关于如何实现的VecRustonomicon 后,它似乎跨越了堆上的指针,在每个条目处取消引用。我想将Vec堆中的条目分块到堆栈中以便快速访问。

vector heap-memory rust stack-allocation

-2
推荐指数
1
解决办法
222
查看次数

标签 统计

arm ×1

assembly ×1

heap-memory ×1

rust ×1

stack-allocation ×1

vector ×1