写了很简单的一个程序,但是查看了反汇编之后,那个函数根本就没有对应的汇编,我设置断点之后,在stepin进去,直接就出来函数了,难道keil有bug?
这是主程序:
void data_tst();
void main()
{
uint i = 0;
i = sizeof(uint);
data_tst();
}
void data_tst(void)
{
uint temp = 0,yy = 0;
temp = sizeof(uchar);
yy = sizeof(uint);
}
下面上图:
我调试时候的图片
(原文件名:keil.JPG)
当单步进入data_tst()函数的时候,汇编是:
C:0x0013 020016 LJMP data_tst(C:0016)
但是再继续往下执行时 下一条指令是:
C:0x0016 22 RET
直接就返回了,那我写的函数语句呢???
再往下执行就是 :
C:0x0017 00 NOP
C:0x0018 00 NOP
C:0x0019 00 NOP
C:0x001A 00 NOP
难道是我的keil版本的问题??
我的keil版本
(原文件名:keil_version.JPG)
大家有遇到过这个问题吗?
故开头的时候就说神奇的volatile。
下面有帖子是说volatile的,你可进去看一下。。。
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=460256&bbs_page_no=1&search_mode=4&search_text=tcp1985&bbs_id=9999
一周热门 更多>