C51中intrins_h头文件解释分析
文章目录
- 摘要
- 源代码
- 说明
- 举个栗子
摘要
这是关于C51中使用循环移位等函数的头文件定义的分析
源代码
/*--------------------------------------------------------------------------
INTRINS.H
Intrinsic functions for C51.
Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __INTRINS_H__ //条件编译,未定义则编译,到#endif之间都是程序段
#define __INTRINS_H__ //使别的条件编译知道__INTRINS_H__已经定义//空操作(相当于8051 NOP 指令PC=PC+1)
//NOP
extern void _nop_(void); //测试并清零位(相当于8051 JBC 指令)
//JBC bit, rel
//若(bit) = 1, 则PC ← (PC)+3+rel, bit←0
//若(bit) = 0, 则PC ← (PC)+3
extern bit _testbit_(bit); //字符 循环 右移,低位补高位
extern unsigned char _cror_(unsigned char, unsigned char); //整数 循环 右移,低位补高位
extern unsigned int _iror_(unsigned int, unsigned char); //长整数 循环 右移,低位补高位
//RR A
extern unsigned long _lror_(unsigned long, unsigned char); //字符 循环 左移,高位补低位
extern unsigned char _crol_(unsigned char, unsigned char); //整数 循环 左移, 高位补低位
extern unsigned int _irol_(unsigned int, unsigned char); //长整数 循环 左移, 高位补低位
//RL A
extern unsigned long _lrol_(unsigned long, unsigned char); //测试并返回源点数状态,就是汇编中的子函数�
extern unsigned char _chkfloat_(float); //特殊功能寄存器 入栈
extern void _push_(unsigned char _sfr); //特殊功能寄存器 出栈
extern void _pop_(unsigned char _sfr); #endif
说明
- extern作用是声明这是外部函数,定义是在别的地方进行的。
- 或者说这是C语言嵌入汇编语言中声明引用了汇编语言子程序;
举个栗子
//举个例子
#include
#include#define uint unsigned int
#define uchar unsigned charvoid delay(uchar);uchar temp;void main()
{temp = 0xfe;while(1){P1 = temp;delay(100);temp = _crol_(temp,1);}
}void delay(uchar time)
{uchar i,j;for(i = time;i > 0;--i)for(j = 110;j > 0;--j);
}
C51中intrins_h头文件解释分析相关推荐
- c++中algorithm头文件、STL库简介及使用说明
c++中algorithm头文件.STL库简介及使用说明 c++中algorithm头文件是STL的算法部分,里边定义了各种算法,比如sort之类的.加上algorithm就可以使用stl库里的各种算 ...
- C语言编程中关于头文件使用问题
目录 1 头文件引用方式 2 头文件书写格式 2.1 条件编译 2.1.1 #ifdef... #else... #endif命令 2.1.2 #if defined... #else... #end ...
- C++:include:理解 C++ 中的头文件和源文件的作用
关于头文件和源文件我们主要围绕: C++编译模式, 声明和定义区别, 符号只能被定义一次, 符号被定义在多个源文件,但是一个源文件只能定义一次 这四个方面来分析论述 1:C++ 编译模式 在一个C++ ...
- C++ 笔记(25)— 理解 C++ 中的头文件和源文件的作用
1. C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件: .cpp 文件,被称作 C++ 源文件,里面放的都是 C++ 的源代码 .h 文件,被称作 C++ 头文件,里面放的也是 C++ ...
- Linux中常用头文件的作用--转
http://blog.sina.com.cn/s/blog_5c93b2ab0100q62k.html 1. Linux中一些头文件的作用: <assert.h>:ANSI C.提供断言 ...
- 为什么应该用模块取代C/C++中的头文件?
摘要:本文整理自Apple C++工程师Doug Gregor的演讲Slide,他表示希望使用模块(Module)这一概念替代C/C++中的头文件,现已被C++标准化委员会任命为Module研究组的主 ...
- ADS中startup.s文件启动分析
映像文件分析,ADS 中startup.s 文件启动分析,学嵌入式开发ADS 必看 2010-04-17 10:21 声明: 我也是转来的,不是原创,由于别人是网易的日志,不能直接转,所以-- 感谢原 ...
- 【C++】C++中的头文件(.h)—详解(2)
接上... [fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 头文件中写些什么 在上篇博客中写到头文件本身不参与编译,但是它们被包含到源文件中 ...
- 【C++】C++中的头文件(.h)—详解(1)
[fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 前言 之前写过一篇<C++中头文件的使用>,那篇文章主要讲述C++中头文件的使用 ...
最新文章
- NVIDIA DPU架构
- 看看人家那后端API接口写得,那叫一个巴适~,再看看我的,像坨屎!
- 数据结构与算法之快速排序
- Ajax ToolKit --- ModelPopupExtender应用经验二则
- python周末吃什么_中午不知道吃什么?用Python爬取美团外卖评论帮你选餐!
- 战地2服务器怎么虚拟人数,战地2怎么修改作战人数?
- python中for循环是可以带else的
- 6010dn 华为 组网 胖ap_1、认识胖瘦AP以及组网场景
- 全面的framebuffer详解一
- Oracle ORA-01555(快照过旧)
- 9种排序算法 3_希尔排序
- 旅游后台管理系列——SSM框架Web表现层
- 大神论坛 利用活跃变量分析来去掉vmp的大部分垃圾指令
- scrapy mysql 豆瓣_Python爬虫之Scrapy+Mysql+Mongodb爬豆瓣top250电影
- 足球大数据分析大小球胜平负的技巧与实例附分析软件
- f_sync解决fatfs文件掉电数据丢失问题
- 人工智能训练师数加加标注培训系统正式上线
- 网站发送邮箱验证实现找回密码
- Apache Kafka实战读书笔记(推荐指数:☆☆☆☆☆)
- 圆周率java程序_Java小程序计算圆周率代码
热门文章
- Java第三十三天,IO操作(续集),字符转换流
- JVM 垃圾回收详解
- python获取目标时间距离现在多长时间(‘2020-5-30 23:40:00‘)
- Oracle EBS Interface/API(35) -创建供应商地点API
- java中什么路径_Java中的路径问题
- 51地图 点击时取经纬度
- 基于区块链技术的信息服务新架构探讨
- 在中国,混哪个“圈子”最有“钱”途?
- 文科高中毕业学计算机技术,一位高中生的困惑:成绩好的学理科,成绩差的学文科?...
- 阿里云轻量应用服务器开启minecraft基岩版服务器(bedrock)