Keil C51 intrinsic function library and usage instructions

Publisher:以泉换泉Latest update time:2016-09-20 Source: eefocusKeywords:keil  C51 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
Intrinsic routines are routines that insert fixed code directly into the current line at compile time without using ACALL and LCALL.

To achieve (no stack operation?), can greatly improve the access efficiency of the function.


Function prototype
extern void _nop_ (void);
extern bit _testbit_ (bit);
extern unsigned char _cror_ (unsigned char, unsigned char);
extern unsigned int _iror_ (unsigned int, unsigned char);
extern unsigned long _lror_ (unsigned long, unsigned char) );
extern unsigned char _crol_ (unsigned char, unsigned char);
extern unsigned int _irol_ (unsigned int, unsigned char);
extern unsigned long _lrol_ (unsigned long, unsigned char);
extern unsigned char _chkfloat_(float);
header file
#include

illustrate

extern void _nop_ (void);
Generates a nop instruction

extern bit_testbit_ (bit);
generates a JBC instruction, returns 1 if the bit is set, otherwise 0; can only be used for directly addressed bit variables, not for expressions

Among

extern unsigned char _cror_ (unsigned char val, unsigned char n);
(unsigned char)val right shift n bits

extern unsigned int _iror_ (unsigned int val, unsigned char n));
(unsigned int)val right shift n bits

extern unsigned long _lror_ (unsigned long val, unsigned char n));
(unsigned long)val right shift n bits

extern unsigned char _crol_ (unsigned char val, unsigned char n));
(unsigned char)val left shift n bits

extern unsigned int _irol_ (unsigned int val, unsigned char n));
(unsigned int)val left shift n bits

extern unsigned long _lrol_ (unsigned long val, unsigned char n));
(unsigned long)val left shift n bits

extern unsigned char _chkfloat_(float);
Test and return the status of float
The following is from the help document of keil C51
0 Standard floating-point numbers
1 Floating-point value 0
2 +INF (positive overflow)
3 -INF (negative overflow)
4 NaN (Not a Number) error status


References
Li Jun et al. 51 Series MCU Advanced Example Development Guide. Beijing-Beijing University of Aeronautics and Astronautics Press 2004 
Keil Software, Inc. C51 User's Guide

Keywords:keil  C51 Reference address:Keil C51 intrinsic function library and usage instructions

Previous article:Design of LED display screen control circuit based on single chip microcomputer
Next article:Using a single-chip microcomputer to realize an electronic clock (assembly)

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号