| 
 | 
 | 
 | 
__DI 
 | 
 
DI命令を出力します。 
 | 
void __DI(void); 
 | 
__EI 
 | 
 
EI命令を出力します。 
 | 
void __EI(void); 
 | 
__halt 
 | 
 
HALT命令を出力します。 
 | 
void __halt(void); 
 | 
__stop 
 | 
 
STOP命令を出力します。 
 | 
void __stop(void); 
 | 
__brk 
 | 
 
BRK命令を出力します。 
 | 
void __brk(void); 
 | 
__nop 
 | 
 
NOP命令を出力します。 
 | 
void __nop(void); 
 | 
__rolb 
 | 
 
xを8ビット幅でy回左ローテートします。 
ビット幅を越えるローテート数指定時の動作は未定義です。 
ローテート数がビット幅を越える可能性がある場合は,ビット幅でマスクしてください。 
 | 
unsigned char __rolb(unsigned char x, unsigned char y); 
 | 
__rorb 
 | 
 
xを8ビット幅でy回右ローテートします。 
ビット幅を越えるローテート数指定時の動作は未定義です。 
ローテート数がビット幅を越える可能性がある場合は,ビット幅でマスクしてください。 
 | 
unsigned char __rorb(unsigned char x, unsigned char y); 
 | 
__rolw 
 | 
 
xを16ビット幅でy回左ローテートします。 
ビット幅を越えるローテート数指定時の動作は未定義です。 
ローテート数がビット幅を越える可能性がある場合は,ビット幅でマスクしてください。 
 | 
unsigned int __rolw(unsigned int x, unsigned char y); 
 | 
__rorw 
 | 
 
xを16ビット幅でy回右ローテートします。 
ビット幅を越えるローテート数指定時の動作は未定義です。 
ローテート数がビット幅を越える可能性がある場合は,ビット幅でマスクしてください。 
 | 
unsigned int __rorw(unsigned int x, unsigned char y); 
 | 
__mulu 
 | 
 
(unsigned int)x * (unsigned int)yの符号なし乗算を行い,16ビットの演算結果を返します。 
 | 
unsigned int __mulu(unsigned char x, unsigned char y); 
 | 
__mului 
 | 
 
(unsigned long)x * (unsigned long)yの符号なし乗算を行い,32ビットの演算結果を返します。 
 | 
unsigned long __mului(unsigned int x, unsigned int y); 
 | 
__mulsi 
 | 
 
(signed long)x * (signed long)yの符号付き乗算を行い,32ビットの演算結果を返します。 
 | 
signed long __mulsi(signed int x, signed int y); 
 | 
__mulul 
 | 
 
(unsigned long long)x * (unsigned long long)yの符号なし乗算を行い,64ビットの演算結果を返します。-lang=cかつ-strict_std オプション指定時は組み込み関数として定義されません。 
 | 
unsigned long long __mulul(unsigned long x, unsigned long y); 
 | 
__mulsl 
 | 
 
(signed long long)x * (signed long long)yの符号付き乗算を行い,64ビットの演算結果を返します。-lang=cかつ-strict_std オプション指定時は組み込み関数として定義されません。 
 | 
signed long long __mulsl(signed long x, signed long y); 
 | 
__divui 
 | 
 
xとyの符号なし除算を行い,16ビットの演算結果を返します。 
除数yが0の場合は0xFFFFを返します。 
 | 
unsigned int __divui(unsigned int x, unsigned char y); 
 | 
__divul 
 | 
 
xとyの符号なし除算を行い,32ビットの演算結果を返します。 
除数yが0の場合は0xFFFFFFFFを返します。 
 | 
unsigned long __divul(unsigned long x, unsigned int y); 
 | 
__remui 
 | 
 
xとyの符号なし剰余算を行い,8ビットの演算結果を返します。 
除数yが0の場合は被除数xの下位8ビットを返します。 
 | 
unsigned char __remui(unsigned int x, unsigned char y); 
 | 
__remul 
 | 
 
xとyの符号なし剰余算を行い,16ビットの演算結果を返します。 
除数yが0の場合は被除数xの下位16ビットを返します。 
 | 
unsigned int __remul(unsigned long x, unsigned int y); 
 | 
__macui 
 | 
 
(unsigned long) x * (unsigned long) y + z の符号なし積和演算を行い,32ビットの演算結果を返します。 
 | 
unsigned long __macui(unsigned int x, unsigned int y, unsigned long z); 
 | 
__macsi 
 | 
 
(signed long) x * (signed long) y + z の符号付き積和演算を行い,32ビットの演算結果を返します。 
 | 
signed long __macsi(signed int x, signed int y, signed long z); 
 | 
__get_psw 
 | 
 
PSWの内容を返します。 
 | 
unsigned char   __get_psw(void); 
 | 
__set_psw 
 | 
 
PSWにxを設定します。 
 | 
void __set_psw(unsigned char x); 
 | 
__set1 
 | 
 
set1命令を使用し,xが指すアドレスのビットyを1にセットします。 
ビットyは0から7までの定数のみ指定可能とし,それ以外はコンパイルエラーとします。 
 | 
void __set1(unsigned char __near *x, unsigned char y); 
 | 
__clr1 
 | 
 
clr1命令を使用し,xが指すアドレスのビットyを0にクリアします。 
ビットyは0から7までの定数のみ指定可能とし,それ以外はコンパイルエラーとします。 
 | 
void __clr1(unsigned char __near *x, unsigned char y); 
 | 
__not1 
 | 
 
not1命令(saddr領域ならxor命令)を使用し,xが指すアドレスのビットyを反転します。 
ビットyは0から7までの定数のみ指定可能とし,それ以外はコンパイルエラーとします。 
 | 
void __not1(unsigned char __near *x, unsigned char y); 
 |