搜索
bottom↓
回复: 11

想在IAR中實現保存現場,求代碼寫法

[复制链接]

出0入0汤圆

发表于 2016-8-26 12:18:26 | 显示全部楼层 |阅读模式
目前,有一段代碼可能是用到了寄存器傳參,所以想要用匯編把R4-R15壓入堆棧保存下,等待函數執行完再彈出試下!

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2016-8-26 23:13:46 | 显示全部楼层
FUN:
        PUSH    R4
        PUSH   R4
        PUSH   R5
        PUSH   R6
        PUSH   R7
        PUSH   R8
        PUSH   R9
        PUSH   R10
        PUSH   R11
        PUSH   R12
        PUSH   R13
        PUSH   R14
        PUSH   R15
        POP    R15
        POP    R14
        POP    R13
        POP    R12
        POP    R11
        POP    R10
        POP    R9
        POP    R8
        POP    R7
        POP    R6
        POP    R5
        POP    R4
        RET

出10入46汤圆

发表于 2016-8-27 09:26:45 | 显示全部楼层
绝对地址是用来做什么的呢?

出0入0汤圆

发表于 2016-8-27 09:55:38 | 显示全部楼层
    stmfd sp!, {r0-r12, lr}

可以用类似这样的指令吧

出0入0汤圆

发表于 2016-8-27 22:58:27 | 显示全部楼层
不都是单片机自行进行保存现场的吗?

出0入0汤圆

 楼主| 发表于 2016-8-28 12:00:04 | 显示全部楼层
jxchen 发表于 2016-8-26 23:13
FUN:
        PUSH    R4
        PUSH   R4

我中間要插入一些代碼,需要計算

出0入0汤圆

发表于 2016-8-28 21:18:15 | 显示全部楼层
gsq19920418 发表于 2016-8-28 12:00
我中間要插入一些代碼,需要計算

FUN:
        PUSH   R4
        PUSH   R5
        PUSH   R6
        PUSH   R7
        PUSH   R8
        PUSH   R9
        PUSH   R10
        PUSH   R11
        PUSH   R12
        PUSH   R13
        PUSH   R14
        PUSH   R15

        從這理開始插入你的程式碼



        POP    R15
        POP    R14
        POP    R13
        POP    R12
        POP    R11
        POP    R10
        POP    R9
        POP    R8
        POP    R7
        POP    R6
        POP    R5
        POP    R4
        RET

出0入0汤圆

发表于 2016-8-28 21:19:56 | 显示全部楼层
wangsen 发表于 2016-8-27 22:58
不都是单片机自行进行保存现场的吗?

組合語言由自己控制所有的事情,編譯器不會自行處理

出0入0汤圆

 楼主| 发表于 2016-8-29 09:14:47 | 显示全部楼层
jxchen 发表于 2016-8-28 21:18
FUN:
        PUSH   R4
        PUSH   R5

我單獨寫個ASM吧!

出0入0汤圆

发表于 2016-8-30 22:26:39 | 显示全部楼层
gsq19920418 发表于 2016-8-29 09:14
我單獨寫個ASM吧!

答案已經告訴你了如何保護與插入你的代碼,我不明白你的問題是什麼

出20入0汤圆

发表于 2016-8-30 22:36:31 | 显示全部楼层
  你要问什么??不是有人回答了吗

出0入0汤圆

 楼主| 发表于 2016-8-31 09:07:25 | 显示全部楼层
jxchen 发表于 2016-8-30 22:26
答案已經告訴你了如何保護與插入你的代碼,我不明白你的問題是什麼

雖然沒學會C语言和匯編的混合編程,但是問題已經發現,好像是layout工程師的佈綫問題,把芯片拆了,或者換到另外一路模擬I2C就好了,謝謝!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 00:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表