首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >程序集arm -如何读取寄存器值并将其存储在普通c变量中

程序集arm -如何读取寄存器值并将其存储在普通c变量中
EN

Stack Overflow用户
提问于 2022-04-29 20:09:01
回答 1查看 606关注 0票数 0

我需要将寄存器(r9)读入变量中。

我有这个

代码语言:javascript
运行
复制
 pxTopOfStack[9-4] = 0x20000000;  // Set the task's initial R9 value

0x20000000存储在R9中。

我怎么能把这个插在手臂上呢?我可以按以下方式在程序集中设置r9:

代码语言:javascript
运行
复制
__asm volatile ("LDR r9, = 0x20000000");

但是如何在内联程序集中设置普通的C变量呢?

伪码

代码语言:javascript
运行
复制
__asm volatile ("MOV pxTopOfStack[9-4], R9"); // just trying to illustrate what I am looking for
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-29 20:36:45

复制粘贴了一个来自developer.arm的示例并对其进行了修改。似乎很管用!

代码语言:javascript
运行
复制
__asm ("MOV %[result], R9"
    : [result] "=r" (pxTopOfStack[9-4])
  );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72063220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档