搜索
bottom↓
回复: 11

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

[复制链接]
(170674285)

出0入0汤圆

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

出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
(170598186)

出0入0汤圆

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

出0入0汤圆

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

可以用类似这样的指令吧
(170549484)

出0入0汤圆

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

出0入0汤圆

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

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

出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
(170468995)

出0入0汤圆

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

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

出0入0汤圆

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

我單獨寫個ASM吧!
(170292192)

出0入0汤圆

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

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

出20入0汤圆

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

出0入0汤圆

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

雖然沒學會C语言和匯編的混合編程,但是問題已經發現,好像是layout工程師的佈綫問題,把芯片拆了,或者換到另外一路模擬I2C就好了,謝謝!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-1-22 21:49

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

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