在C51單片機編程中,,頭文件INTRINS.H的函數(shù)使用起來,,就會讓你像在用匯編時一樣簡便.
內(nèi)部函數(shù) 描述
_crol_ 字符循環(huán)左移
_cror_
字符循環(huán)右移
_irol_
整數(shù)循環(huán)左移
_iror_
整數(shù)循環(huán)右移
_lrol_
長整數(shù)循環(huán)左移
_lror_
長整數(shù)循環(huán)右移
_nop_
空操作8051
NOP 指令
_testbit_ 測試并清零位8051 JBC 指令
函數(shù)名:
_crol_,_irol_,,_lrol_
原 型: unsigned char
_crol_(unsigned char val,unsigned char n);
unsigned int _irol_(unsigned int val,unsigned char
n);
unsigned int _lrol_(unsigned int val,unsigned
char n);
舉例:
_crol_,_cror_:將char型變量循環(huán)向左(右)移動指定位數(shù)后返回
_testbit_: 相當于JBC bitvar測試該位變量并跳轉(zhuǎn)同時清除,。
_chkfloat_: 測試并返回源點數(shù)狀態(tài)。
就是匯編中的子函數(shù),。
_crol_,_cror_:如國二進制數(shù)為01010101 那么_crol_(1)
左移1位后將高位補低位,。
結(jié)果10101010。
功 能:_crol_,,_irol_,,_lrol_以位形式將val 左移n
位,該函數(shù)與8051“RLA”指令相關(guān),,上面幾個函數(shù)不同于參數(shù)類型,。
例:
#include <intrins.h>
main()
{
unsigned int y;
C-5 1
程序設計 37
y=0x00ff;
y=_irol_(y,4);
}
函數(shù)名:
_cror_,_iror_,,_lror_
原 型: unsigned char
_cror_(unsigned char val,unsigned char n);
unsigned int _iror_(unsigned int val,unsigned char
n);
unsigned int _lror_(unsigned int val,unsigned
char n);
功 能:_cror_,,_iror_,_lror_以位形式將val 右移n
位,,該函數(shù)與8051“RRA”指令相關(guān),,上面幾個函數(shù)不同于參數(shù)類型。
例:
#include <intrins.h>
main()
{
unsigned int y;
y=0x0ff00;
y=_iror_(y,4);
}
函數(shù)名: _nop_
原 型: void _nop_(void);
功 能:_nop_產(chǎn)生一個NOP 指令,該函數(shù)可用作C 程序的時間比較,。C51
編譯器在_nop_函數(shù)工作期間不產(chǎn)生函數(shù)調(diào)用,,即在程序中直接執(zhí)行了NOP 指令。
例:
P()=1;
_nop_();
P()=0;
函數(shù)名: _testbit_
原 型:bit _testbit_(bit x);
功 能:_testbit_產(chǎn)生一個JBC
指令,,該函數(shù)測試一個位,,當置位時返回1,否則返回0,。如果該位置為1,,則將該位復位為0,。8051 的JBC
指令即用作此目的。_testbit_只能用于可直接尋址的位,;在表達式中使用是不允許的,。
在C51單片機編程中,頭文件INTRINS.H的函數(shù)使用起來,,就會讓你像在用匯編時一樣簡便.
內(nèi)部函數(shù) 描述
_crol_ 字符循環(huán)左移
_cror_
字符循環(huán)右移
_irol_
整數(shù)循環(huán)左移
_iror_
整數(shù)循環(huán)右移
_lrol_
長整數(shù)循環(huán)左移
_lror_
長整數(shù)循環(huán)右移
_nop_
空操作8051
NOP 指令
_testbit_ 測試并清零位8051 JBC 指令
函數(shù)名:
_crol_,,_irol_,_lrol_
原 型: unsigned char
_crol_(unsigned char val,unsigned char n);
unsigned int _irol_(unsigned int val,unsigned char
n);
unsigned int _lrol_(unsigned int val,unsigned
char n);
舉例:
_crol_,_cror_:將char型變量循環(huán)向左(右)移動指定位數(shù)后返回
_testbit_: 相當于JBC bitvar測試該位變量并跳轉(zhuǎn)同時清除,。
_chkfloat_: 測試并返回源點數(shù)狀態(tài),。
就是匯編中的子函數(shù)。
_crol_,_cror_:如國二進制數(shù)為01010101 那么_crol_(1)
左移1位后將高位補低位,。
結(jié)果10101010,。
功 能:_crol_,_irol_,,_lrol_以位形式將val 左移n
位,,該函數(shù)與8051“RLA”指令相關(guān),上面幾個函數(shù)不同于參數(shù)類型,。
例:
#include <intrins.h>
main()
{
unsigned int y;
C-5 1
程序設計 37
y=0x00ff;
y=_irol_(y,4);
}
函數(shù)名:
_cror_,,_iror_,_lror_
原 型: unsigned char
_cror_(unsigned char val,unsigned char n);
unsigned int _iror_(unsigned int val,unsigned char
n);
unsigned int _lror_(unsigned int val,unsigned
char n);
功 能:_cror_,,_iror_,,_lror_以位形式將val 右移n
位,該函數(shù)與8051“RRA”指令相關(guān),,上面幾個函數(shù)不同于參數(shù)類型,。
例:
#include <intrins.h>
main()
{
unsigned int y;
y=0x0ff00;
y=_iror_(y,4);
}
函數(shù)名: _nop_
原 型: void _nop_(void);
功 能:_nop_產(chǎn)生一個NOP 指令,該函數(shù)可用作C 程序的時間比較。C51
編譯器在_nop_函數(shù)工作期間不產(chǎn)生函數(shù)調(diào)用,,即在程序中直接執(zhí)行了NOP 指令,。
例:
P()=1;
_nop_();
P()=0;
函數(shù)名: _testbit_
原 型:bit _testbit_(bit x);
功 能:_testbit_產(chǎn)生一個JBC
指令,該函數(shù)測試一個位,,當置位時返回1,,否則返回0。如果該位置為1,,則將該位復位為0。8051 的JBC
指令即用作此目的,。_testbit_只能用于可直接尋址的位,;在表達式中使用是不允許的。