dragondslj 发表于 2012-5-8 14:12:31

求解一条MSP430F2132汇编指令


这是在IAR环境下嵌入的汇编语句
      asm("ADDC.b @R4+,-1(R4)\n");哪位对汇编了解比较多的可以给个详细的解释吗?

lcofjp 发表于 2012-5-8 14:59:58

本帖最后由 lcofjp 于 2012-5-8 15:11 编辑

推测:
uint8_t *R4;
R4[-1] = R4 + R4[-1] + C;
R4++;

单片机玩C++ 发表于 2012-5-8 15:04:45

@R4等价于0(R4)
不过,如果寄存器Rx带自增,就不能用0(Rx+),而用@Rx+

对于Rx+,如果指令带B,表示自增1,如果不带B,表示自增2。

dragondslj 发表于 2012-5-8 19:06:55

lcofjp 发表于 2012-5-8 14:59 static/image/common/back.gif
推测:
uint8_t *R4;
R4[-1] = R4 + R4[-1] + C;


不过源程序给的注释有点费解了,// roll left ,emulated by adding to itself == multiply by 2 + carry flag
不过这R跟R[-1]是两个存储单元的数据

dragondslj 发表于 2012-5-8 19:08:27

单片机玩C++ 发表于 2012-5-8 15:04 static/image/common/back.gif
@R4等价于0(R4)
不过,如果寄存器Rx带自增,就不能用0(Rx+),而用@Rx+



哦,谢谢了,我在书上没看到有详解介绍

lcofjp 发表于 2012-5-8 19:57:04

dragondslj 发表于 2012-5-8 19:08 static/image/common/back.gif
哦,谢谢了,我在书上没看到有详解介绍

那你写段程序仿真一下,就知道啥效果了。

dragondslj 发表于 2012-5-8 21:58:46

lcofjp 发表于 2012-5-8 19:57 static/image/common/back.gif
那你写段程序仿真一下,就知道啥效果了。

效果是没错,所以才想知道具体怎么执行的
页: [1]
查看完整版本: 求解一条MSP430F2132汇编指令