|  |  |  | 
| __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); |