51单片机汇编中能否象C51那样包含头文件和源文件?

51单片机汇编中能否象C51那样包含头文件和源文件?? 如果是大型汇编程序 我想分 例如:TEST1.ASM TEST2.ASM TEST3.ASM ... 是不是需要定义什么的?要怎么定义?希望详细点 谢谢各位!!!!

汇编程序不能包含头文件,所有程序应该都在一个程序里面。
汇编只能引用函数
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-10-31
在Keil中可以包含*.*文件,使用时在程序开头部分使用 #include ”***.*** “,被包含的文件不能有END 。被包含的不限后缀,应该是汇编代码就可以包含,一般是*.inc或*.asm追问

还是看不明白,能不能再说明白一点。 我是笨鸟

追答

你可以上机实验啊!我给你个上机实验的程序吧!!这个程序基本没有什么意义,但是可以编译通过!!你如果有实验的程序,可以尝试将LCALL部分子程序单独分出来试试看!!
主程序“main.asm”:
#include "fun1.inc"
#include "fun2.asm"
ORG 0000H
LJMP start
ORG 000BH
LJMP toret
start:
MOV SP, #60H
MOV P2, #00H
MOV P1, #0FFH
SETB 20H ;动态变化设初值
toret:
LJMP fun1
END
子程序“fun1.inc”:
fun1:

MOV P2, #00H
MOV P1, #0FFH
SETB 20H ;动态变化设初值

LJMP fun2
子程序“fun2.asm”:
fun2:

MOV P2, #00H
MOV P1, #0FFH
SETB 20H ;动态变化设初值

追问

是不是这样?但汇编出错了!! 不知道怎么搞??

追答

你不用再将要包含的文件加入到项目组中了,只要文件夹设置好,自动分到main.asm级别下了!

追问

我实在不知道怎么搞? 你能不能写一个程序 发一下给我? 342058816@qq.com 非常感谢你!

追答

发过去了,你看看吧!!

追问

收到了 那个fun1.inc 是什么东西来的? 要来定义什么东西的? 我用仿真 一步一步好像调不到 fun1 或 fun2 不知道要怎样?

追答

我写的程序是没什么意义的,只是表示keil可以包含头文件!
你可以将toret:的内容和start:的内容调换,就能执行到fun1,和fun2了!
你在fun1:语句前加上ORG 010BH语句。
在fun2:语句上边一行加上ORG 020BH语句。修改后如下:
ORG 010BH
fun1:

ORG 020BH
fun2:
然后,将start:修改为:
start:
LJMP fun1
然后,将fun2修改为:
ORG 020BH
fun2:

MOV P2, #00H
MOV P1, #0FFH
SETB 20H ;动态变化设初值

LJMP start
你再运行试试看!

追问

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!! 还是搞不了!!!! 跳不了

追答

我再给你发一个改过的,你试试看!

来自:求助得到的回答本回答被提问者采纳
第1个回答  推荐于2016-10-31
好像不能,暂时还没看到这样做。在大型的汇编程序,尝试用宏定义一个程序块。总体汇编在编写大程序时,是够累人的。没有C语言方便,不能模块华编程。追问

但我只会 汇编程序啊!

第2个回答  2018-07-17
$INCLUDE (REG_MA805.H) 相当于c语言中的#include <meg_ma805.h>.
汇编中很对寄存器会重定义,你把头文件注释掉一些就行了。

51单片机汇编中能否象C51那样包含头文件和源文件?
汇编程序不能包含头文件,所有程序应该都在一个程序里面。汇编只能引用函数

C51语言中为什么需要包含头文件
C51常用头文件在KEIL 中,对于单片机所使用的头文件,除了reg51 reg52以外,还有一些从各芯片制商的官网下载与reg51,reg52功能类似的头文件,需了解透外,还要对各类型单片机均可通用且相当有用的的头文件,做相应的了解。因为,内部所包含的函数与宏定义,可以及大的方便我们编写应用程序。1字符函数 ctype.h 1 extern ...

Keil C51与汇编的区别是什么
C51可以用标准C语言(以及一定的扩展)来书写源程序,所以具有更好的通用性、可读性和可维护性。缺点是有时候无法精准地进行细微操作,执行效率也会为了“通用性”而做出一定(某些情况下,巨大)的牺牲。汇编语言直接用指令助记符书写,更接近于机器语言,对程序的控制更精细、代码效率更高。缺点是对于不...

C51单片机与MCS51单片机一样吗
都是51系列的单片机,严格意义上都应该叫MCS51,至于C51一般应该是指51单片机的C语言编译环境。

单片机C51编程中头文件#include"89c51\/io,h"和#include <reg51.h...
include"89c51\/io,h" 是不是写错了?应该是#include"89c51\/io.h" 吧 两个写法当然不一样,区别在于""和<>,<>表示头文件在编译器的安装目录底下,一般都是编译器自带的头文件;""表示头文件在当前工程的目录底下,一般都是自己写的头文件 ...

单片机C51这个错在哪
以下是单片机实践团为您解答:1)请下载:C51FPS.LIB放到,目录:c:\\keil\\c51\\lib即可。2)问题分析:你包含了头文件stdio.h,里面有些实体是在这个C51FPS.LIB中的,我猜测的。3)为什么这么说呢,你的keil版本太老了(而且组件不全),一看就知道,建议使新版本的避免不必要的麻烦。4)还要请参考...

给51单片机编程用的C51与C语言有什么区别?
其实区别不是太多。C语言中的所有运算符,在C51中都可以用。但是C51也有特有运算符,如sbit,还有特殊的寄存器名等可以直接写。C语言中没有相关的内容。

keilC51 汇编时寄存器在哪里定义
keilC51 汇编编写程序时,寄存器是不用自己定义的,可以直接使用;C语言编写程序的时候,要把头文件包括进来如:#include<reg51.h>,头文件里定义了寄存器……

51单片机一般都用什么型号的?
你应该多看年关书就知道了。目前的51单片机的指令只能做加减神除...但是你也知道,再难的运算也是以这四个为基础的,只要你软件写的不错arctg运算也不是难事(好像在C51中的头文件中有这个了,你可以直接调用他的函数就行)AT89S52也是使用的C51的内核。比标准的8051多出了些功能,比如支持ISP,具有...

51单片机如何创建工程
在创建工程的过程中,您需要指定一个文件夹来保存源代码、头文件等。在弹出的新对话框中选择"CreateanewfolderinProjectFolder",并输入文件夹的名称。然后,在"StartupFile"中选择单片机启动时会加载的代码文件。点击"Add",选择需要添加的源文件和头文件,然后再次点击"Add"。完成上述步骤后,点击"OK"...

相似回答