[讨论] MSP430开始位读取和转码问题

l67088   2014-4-1 22:34 楼主
各位大神,刚接触MSP430,遇到一个疑问:
MSP430上电后,开始从"C000"读取Rom信息,下面为"C000-C003"的Rom 存储的值:
C000-C003:31 40 00 04
IAR的disassembly里面这步的转码为:4031 0400
机器码为:MOV.W #0X400SP
symbol为:?csstart_begin
个人有以下疑问:
1.Iar 的disassembly 转码为什么会从“31 40 00 04” ==>"40 31 04 00"? (要把后面的Bit值提到前面,前面转移到位后面)
2.“40 31 .04 00”是根据什么逻辑转换到机器码“MOV.W #0X400SP”?
3.同时Symbol 的信息又是从哪里转换的?

请各位大神不吝赐教,感谢!!!!(本人基本上是小白)

回复评论 (4)

1. MSP430的指令是16位的,所以会从起始地址取出一个16位指令,并且MSP430是小端模式的,也就是一个 十六位数的低字节在低地址,高字节在高地址,所以31 40 转换为一个十六位数的话,就是0x4031.
2. 要查看指令对应的机器码(或者由机器码推断指令),请参考相应型号的user's guide的CPU或者CPUX章节。
点赞  2014-4-1 22:58
引用: lcofjp 发表于 2014-4-1 22:58
1. MSP430的指令是16位的,所以会从起始地址取出一个16位指令,并且MSP430是小端模式的,也就是一个 十六位 ...

感谢,你的回答,对第一个和第二个问题,基本上知道了.
針對第三個問題;
該怎麼去理解?
点赞  2014-4-2 13:55
你启动DEBUG时,IAR把执行代码下载到目标板,同时把符号表载入内存,你就可以对照源码了。
事实上你可以改debug的设置让IAR只装入符号表而不下载程序,这样没必要就不用总擦除Flash了
点赞  2014-4-4 02:16
引用: mangoal 发表于 2014-4-4 02:16
你启动DEBUG时,IAR把执行代码下载到目标板,同时把符号表载入内存,你就可以对照源码了。
事实上你可以改 ...

有点不懂,有没有文件让我参考下??
点赞  2014-4-7 13:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复