在keil for arm里我用c程序调用汇编子程序,但是调试的时候总是会直接进入汇编程序,跳过c程序断点
证明你断点设置的不对,比如你说的调用,设在调用指令上,肯定是进入这个函数里面,你设在其前一条指令就可以了。
keil调试的时候c语言怎么变成汇编语言了
有几种情况:
A. 你编译的时候不是调试方式,不是调试方式的时候,C-汇编是单向的,也就是说运行的代码已经不可能返回原来的源程序了,因此你只能看汇编代码了。
B.你的环境配置存在问题。
C.楼上所述,你调试的程序在执行过程中进入了非你自己编写的区域,比如启动代码、库函数等等。
我用keil进行调试时,程序总是自汇编的一段程序里反复执行,无法跳到main函数,请问一下大家怎么解决
1. 正式产品的C51程序应该是一个死循环。如果不是死循环,执行完main后,执行RET,将会将堆栈里的数据当做地址压入PC,程序跑错。最后会回到地址0000H,重新开始,进入main。你仿真在00H做中断,就会发现他回去了。
2. 你说的不清楚,跳转还是会跳转的。程序运行结果正确就说明没有错。除非你程序错误。如果你是在仿真时看到没有跳转,还是在那一行,那是他还有数据要处理,看汇编就知道了。
我用汇编语言编的程序,在keil调试的时候为什么老是往汇编语言里边跑呢?高手指点一下。谢谢!
应该是程序停在了启动代码处,而启动代码是用汇编语言编写的。
打开工程属性页,在Debug标签页,选择“go until main”选项即可,则调试时,程序将会停止在c语言的main函数入口处。