论坛风格切换切换到宽版
  • 4354阅读
  • 1回复

Keil C51 在C和ASM混合编程出现问题 [复制链接]

上一主题 下一主题
离线BA3CE
 
发帖
1652
只看楼主 倒序阅读 0楼 发表于: 2004-05-29
最近我做一个ic卡项目,用的是周立功zlg500a ic卡模块,该模块是spi接口,我用的是at89c51的mcu,只好模拟spi。spi部分用asm,主程序用c51,结果搞了一星期也没成。仔细分析目标代码时发现,当asm部分和c没有参数传递时正常,当c与asm传递参数时,出现问题。问题是c调用汇编时参数应该从r7传递(我就传递一个uchar),然后通过lcall调用asm中的代码。可是生成的omf文件是在应当lcall的地方出现lcall 0000h
在0000h地址处又有sjmp xxxxh,在xxxxh处又出现sjmp到yyyyh。结果固然一塌糊涂!一直到了昨晚,我换用franklin c51结果一切正常。我用的仿真机是easypack /s的,不知道其他朋友碰到过类似现象吗?
离线ljchip
发帖
459
只看该作者 1楼 发表于: 2004-06-08
建议你还是在keil-c51编译器编译时,生成src文件,然后再看代码。查找出错原因。