各位大神好!小弟有个问题求教!
我在编写KeilC程序的时候,有个汇编子程序是这样调用的
SETB RS0
SETB RS1
;主功能XXXXXXXXX
CLR RS0
CLR RS1
我在程序跑的过程中结果发现结果有误,以确认非主功能的问题,而且单步调试的时候结果也正常。这个bug出现特别随机和罕见,所以想问下各位大神,是否在我切换寄存器组的时候出现了问题?已确定程序其他地方不会使用到第3组寄存器。是否换了USING会好些??
另外求教:如果在KeilC中要在不同子程序之间调用时,除去传递参数的那几个Rn寄存器之外,是否可以使用剩余的Rn寄存器做中间变量?(如果C程序在.c而汇编在.asm中)。我看反汇编的时候感觉Rn用的特别随意,所以不大敢放开了用,怕影响到别的地方出现bug |