C51语言C51语言混合编程
C51编译器能高效地将C语言源程序编译,生成高效简洁的代码,通常情况下C语言就能满足编程需求。然而,在某些特定情况下,为了提高编程的直观性和特殊地址处理,汇编语言是必要的补充。在某些场合,甚至需要从汇编语言中调用C语言,这就涉及到混合编程的关键点:参数传递和函数返回值的处理。
在C语言程序与汇编语言程序的交互中,比如下面的子程序调用:
PUBLIC AD;入口地址
SEG_AD SEGMENT CODE;程序段
RSEG SEG_AD
USING 0
AD: MOV R6,#00
MOV R7,#00
SETB P1.1
ACALL DELAY
CLR P1.1
ACALL DELAY
MOV R0,#10
RR0: SETB P1.2
NOP
CLR P1.2
DJNZ R0,RR0
ACALL DELAY
MOV 30H,R6;A/D转换的高位保存在R6中
ACALL CIR
MOV R6,30H
SETB P1.2
NOP
CLR P1.2
MOV 30H,R6
ACALL CIR
MOV R6,30H
MOV R0,#8;A/D转换的低位保存在R7中
RR2: SETB P1.2
NOP
CLR P1.2
MOV 30H,R7
ACALL CIR
MOV R7,30H
DJNZ R0,RR2
RET
CIR: CLR C
MOV C,P1.0
MOV A,30H
RLC A
MOV 30H,A
RET
在这个例子中,函数的返回值是一个无符号整型,规定高位必须存于R6,低位在R7,以确保数据传递的准确性。此外,调用时务必注意寄存器的使用,如需在C语言中调用汇编语言子程序AD(),必须遵循这些规则。
c51与汇编语言的特点各有哪些?怎样实现两者的优势互补
C51属于间接面向机器的中级语言,同样具有独特的特点,生成的机器代码相对简洁、占ROM空间稍大、执行效率可以接受,适用于一些对时序要求不是特别精确的场合,如各种控制程序、显示程序、通信程序、测量程序等等。C51语言程序直观、结构性好、很容易维护和移植,编程效率非常高。怎样实现两者的优势互补呢?其实...
什么是keil c51
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些...
keil c51 汇编程序调试有的指令不能执行
C语言会被优化掉一些代码,汇编没有用过,但我判断不大可能,汇编好像是没有优化处理的。你光标在MOV R0,#00H的上一行是PC值是多少?跳过不跳过时相同吗,如果相同不可跳过,PC值怎么会突变的?如果不同就是被优化了,你调出Disassemble窗口就知道有没有被优化掉了。看不到图。我是说MOV R0,#...
51单片机C语言开发与实例的目录
第1章 MCS-51单片机与C语言1.1 MCS-51单片机的特点1.1.1 MCS-51单片机简介1.1.2 MCS-51单片机的内部结构1.1.3 MCS-51单片机的存储器组织1.2 汇编语言1.3 C语言1.4 单片机汇编语言与C语言程序设计对照1.5 汇编语言和C语言混合编程1.5.1 在C51中嵌入汇编1.5.2 C程序中调用...
不学汇编可以学底层吗
越来越多的低层开发人员开始使用高级语言,例如C、C++、C51。相较于汇编语言,这些高级语言实现循环和分支等结构的程序更加简单易懂。尽管汇编语言在编写输入输出接口程序方面具有优势,但其他场合则更适合使用C语言,即进行混合编程。我意识到学习汇编语言的重要性在于理解微机底层的工作机制,这同样适用于...
单片机应用及C51程序设计图书目录
第5章:C51语言入门,从标准C语言到C51的转换和特性介绍。第6章:库函数与头文件的使用,讲解如何有效地利用C51库函数进行程序编写。第7章:预处理和编译控制,深入解析C51的编译预处理和控制语句的运用。第8章:混合编程,探讨C51与其他语言的混合编程策略。第9章:RTX51实时操作系统,介绍如何在51...
单片机初学者该看什么书
王云 51单片机C语言程序设计教程,这本不错,王云的书+视频+开发板,完美配套,学起着就顺心多了,少走很多弯路。可以先去看看视频视频链接
C51嵌入汇编,KEIL4经过一些设置后,编译输出*** FATAL ERROR L218: NOT...
keil4是有ARM版和51版之分的,你安装的是ARM版的吧,不能编译51单片机的。
单片机应用及C51程序设计的内容简介
全书共分4篇。第1篇介绍51单片机的背景知识、典型芯片、开发环境和软硬件工具;第2篇介绍C51程序设计(包括混合编程和实时操作系统支持下的多任务编程)、库函数\/头文件和程序的编译处理;第3篇为μ Vision的典型操作和程序调试;第4篇为C51程序设计的实践项目和程序实例。《单片机应用及C51程序设计(第2...
使用单片机开发产品时用C语言多吗
因为汇编可以帮助理解硬件,有助于理解优化C语言程序,另外汇编对一些实时性高的场合(如中断服务程序,DSP数据处理程序)和底层硬件的应用场合(如keil C51、ARM的启动程序)都需要汇编来编写。但总体上来讲,用单片机开发产品的时候绝大多数还是用C语言。建议在掌握汇编的基础上使用C开发产品。