首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ldmia.w sp,{r1,r2}与ldmia.w sp!,{r1,r2}的区别?

ldmia.w sp,{r1,r2}与ldmia.w sp!,{r1,r2}的区别?
EN

Stack Overflow用户
提问于 2021-08-26 07:24:36
回答 1查看 85关注 0票数 0

我正在做一个二进制分析项目,我遇到了ldmia arm汇编指令的两个不同变体。

ldmia.w sp,{r1,r2}

ldmia.w sp!,{r1,r2}

我知道ldmia.w sp!,{r1,r2}是pop {r1,r2}的同义词。但是ldmia.w sp,{r1,r2}呢?我是将存储在sp中的值作为内存地址加载到r1和r2中,这对我来说没有多大意义,还是在没有更新sp的值的情况下从堆栈中弹出,这也没有意义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-26 07:32:21

有关ARM汇编语言各个部分的含义,请参阅ARM体系结构参考手册。!标志表示新地址被写回寄存器。也就是说,ldmia.w sp!, {r1, r2}将8加到sp,但ldmia.w sp, {r1, r2}保持sp不变。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68934248

复制
相关文章

相似问题

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