countersince January 6, 2001X68000 LIBRARYEnglish
更新日: 2024 年 6 月 27 日
X68000 LIBRARY > 資料室 > FE ファンクションコールリファレンス > L > __LMOD

__LMOD

FE ファンクションコール名

__LMOD

FE ファンクションコール番号

$FE02

機能

32bit 符号あり整数剰余算

入力

d0.l:32bit 符号あり整数。被除数 x

d1.l:32bit 符号あり整数。除数 y

出力

d0.l:32bit 符号あり整数。余り x%y。余りの符号は被除数の符号と同じ。ゼロ除算のとき不定

フラグ

cs= エラーあり。cs,eq,vc= ゼロ除算(0%0 を含む)。オーバーフローすることはない

解説

バグ

FLOAT2.X 2.02/2.03 と FLOAT3.X 2.03 は 0%0 のとき C フラグをセットしない

X-BASIC で「print 0 mod 0」が「0による除算が行われました」ではなく「0」になる

FLOAT4.X 1.02 は -$80000000%-$00000001 が -$00000001 になる

X-BASIC で「print &H80000000 mod -1」が「0」ではなく「-1」になる

メモ

Z フラグと V フラグの変化は CZ-6BP1 のマニュアルに書かれていないが X-BASIC が使っている

FLOAT2.X 2.02/2.03 と FLOAT3.X 2.03 はゼロ除算(0%0 を含まない)のとき Z フラグをセット、V フラグをクリアする

FLOAT4.X 1.02 はゼロ除算(0%0 を含む)のとき Z フラグと V フラグをクリアする

X-BASIC で「print 1 mod 0」や「print 0 mod 0」が「0による除算が行われました」ではなく「アンダーフローしました」になる