原来CCS2.0可以调试的TI C54X的汇编程序为什么在CCS3.3上进行仿真出现很多问题?

wxjjiaoshi   2012-11-13 21:16 楼主
请教一下:有这么个54X汇编语言程序:
.title "wx1.asm"
       .mmregs
STACK  .usect "STACK",10H
       .bss a,4
       .bss x,4
       .bss y,1
       .def start
       .data
table:  .word 1,2,3,4
        .word 8,6,4,2
       .text
start:  STM #0,SWWSR
       STM #STACK+10H,SP
       STM #a,AR1
       RPT #7
       MVPD table,*AR1+
       LD #1,DP
       CALL SUM
end:   B end
SUM:   STM #a,AR3
       STM #x,AR4
       RPTZ A,#3
       MAC *AR3+,*AR4+,A
       LD #1,DP
       STL A,@y
           RET
           .end
在CCS2.0下执行的结果完全正确。生成结果y=0028H
但是在CCS3.3 下编译出现很多问题:
选择的生成环境是:/54x simulator

问题如下:
1:出现一个警告:
creating out section  STACK without specification
这个警告如何修改?
自由运行时,光标最终应该在end:   B end  语句处,为什么一直跳到别的地方?
3、单步运行时,   STM #a,AR1,结果AR1=90是正确的,
但是在子程序里: STM #a,AR3
                                 STM #x,AR4
运行结果为AR3=008CH,AR4=0000H,结果是错误的,是什么原因造成的?
执行累加指令时,累计器,AR3,AR4都不变,最终结果是错误的
子程序返回时,返回地址不是CALL+2,而是乱的。
4 如果加上cmd文件(此文件在这个工程的debug文件夹内)
wxj.obj   
    -o  wxj.out
    -m wxj.map
    -e   start
MEMORY
{
       PAGE 0:
               EPROM:  org=0E000H  len=0100H
               VECS :    org=0FF80H  len=0004H
        PAGE 1:
               SPRAM:  org=0060H    len=0020H
               DARAM:  org=0080H   len=0100H
}
SECTIONS
{
           .text  :>EPROM    PAGE 0
           .data  :>EMROM   PAGE 0

        .bss       :>SPRAM    PAGE 1
        STACK  :>DARAM   PAGE 1
        .vectors :>VECS      PAGE  0
}
则会出现一个错误:
wxj.cmd:   error: system error, can't open file 'wxj.obj' for input: No such
                     file or directory

>> Compilation failure
而在CCS2.0下,编译通过,没有任何错误。
请问这是什么原因造成的。是不是CCS3.3要做什么设置啊?



观察数据存贮器,a 为0x0090,x为0x0094

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复