keil在混合编程错误

[复制链接]
查看11 | 回复1 | 2010-9-22 14:29:20 | 显示全部楼层 |阅读模式
我在编程C51程序时,使用了混合编程
#pragma asm
#pragma endasm
出错:
创建目标 '目标 1'
PA51汇编 STARTUP.A51 ...
编译 b.c ...
PA51汇编 b.src ...
连接 ...
BL51 BANKED LINKER/LOCATER V6.00 - SN: K1FNC-49QQRC
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2005
"STARTUP.obj",
"b.obj"
TO "b"
RAMSIZE(256)
*** FATAL ERROR L210: I/O ERROR ON INPUT FILE:

EXCEPTION 0021H: PATH OR FILE NOT FOUND

FILE: STARTUP.obj
目标未产生
在网上找方法解决,在“工程窗口”的c文件右击,出现的“为...设置选项”的窗口,选中“产生汇编器
SRC文件”和“汇编SRC文件“,并去掉”仅连接公共的”选项,再编译,问题依旧。后来,更把
“C51S.LIB"文件添加到项目中,再编译,问题依旧。
试了很多次,都得不到解决。烦死。
希望大家,帮我解决一下

回复

使用道具 举报

千问 | 2010-9-22 14:29:20 | 显示全部楼层
(1)、C51语言中调用汇编语言程序;C51语言调用汇编语言程序要注意以下几点:1:在文件栏选中File Group和C51程序原文件,在配置文件选项中激活“产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含”三个选项。2:根据选择的编译模式,把相应的库文件(如SMALL模式,库文件为KEIL\C51\LIB\C51S.LIB)加入工程中。3:在C51语言中必须声明需要调用的函数为外部函数。extern void DELAY(void);4:在汇编语言程序中必须声明被调用子程序为公共子程序,在被调用的文件中还需要声明此文件是可从新定位的。PUBLICDELAY,DELDELAYYSEGMENT
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行