No.46785 作者:guest 邮件:guest@guest.com ID:6 登陆:16560次 文章数:7648篇 最后登陆IP:219.68.9.43 最后登陆:2005/5/20 1:37:44 注册:2003/3/10 16:21:00 财富:35062 发帖时间:2003/12/25 22:31:16 发贴者IP:218.17.120.21 标题:guest:Keilc高手请指导: 下面是KeilC编译器错误,或者是我理解错误? 摘要:No.46785Keilc高手请指导: 下面是KeilC编译器错误,或者是我理解错误? /*编译器版本: c51:6.23a */ /*编译参数 NOREGPARMS 不使用寄存器传参数 RET_XSTK 使用外部数据空间作堆栈 */ unsigned char testpara(UINT8 pa1) reentrant { unsigned char pa2; pa2=pa1*5+4; return pa2; } /*在程序结尾有返回代码,反汇编为: ----------------------------------------------------------------- MOV DPTR,0x00YY ;外部堆栈指针回缩 LJMP C?ADDXBP ;外部堆栈回缩子程序 ----------------------------------------------------------------- */ unsigned char testpara1(UINT8 pa1) reentrant { /* 在程序开始的地方有下面的代码: ----------------------------------------------------------------- MOV DPTR,0x00ZZ ;外部堆栈指针增加 LJMP C?ADDXBPV ;外部堆栈增加子程序,将sp处的返回 ; 地址填充到外部堆栈位置,并将XBP-2, ;注:内部堆栈sp向上加,外部堆栈XBP向下减 ---------------------------------------------------- ......
>>返回讨论的主题
|