LDM是出栈指令,STM是入栈指令
ED表示empty descending空递减, FA表示full ascending满递增。同理可知其它组合
STMED表示空递减入栈,相当于STMDA指令,即decrease after,先执行操作再减一。原因是空栈,说明此时可以入栈; 因为栈地址增长方向是递减,因此第一个元素入栈结束后,需要为下一个元素申请下一个地址,地址增长,需要减一
LDMED表示空递减出栈,相当于LDMIB指令,即increase before,先加一再执行操作。原因是满栈,说明此时可以弹出一个元素; 因为栈地址增长方向是递减,因此第一个元素出栈结束后,需要将上一个地址的元素也准备出栈,地址减少,需要加一
参考链接:
快速理解Arm指令:STMFD, STMFA, STMED, STMEA, LDMFD, L
ARM汇编编程基础
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)