请教一下:有这么个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