日立MB-S1に関する情報

メモリ空間1
ルーチン番号$19

機能

実数の除算を行います。

解説

メモリ上に格納されている実数データを被除数、FACCに格納されている実数データを除数として除算を行い、その結果をFACCに格納します。
もし、除数が0(ゼロ)で、演算した場合は「Division By Zero」のエラー処理へ実行が移ります。
単精度または倍精度型実数の区別は、FACCを管理するシステム・レジスタをチェックして行います。
また、もしFACCとメモリ上の変数の形が違っていても、そのまま演算をするので、結果は保証されません。
FACC=(メモリ上のデータ)÷(FACC)

入力情報

  • AccB:被除数が格納されている空間番号
  • X:被除数が格納されているメモリ空間上のアドレス
  • FACC:除数(単精度または倍精度型実数)

出力情報

  • FACC:商(単精度または倍精度型実数)

サンプル・プログラム

内容

50を被除数、2を除数として単精度型実数の除算を行ない、その結果を画面に表示します。
 0 C000                     ORG  $C000
 1           C000   UFDIV   EQU  *          --SAMPLE OF "UFDIV" ROUTINE--
 2 C000   20 07             BRA  EXEC
 3 C002      8648   XDATA   FDB  $8648      SINGLE PRECISION DATA
 4 C004      0000           FDB  $0000      ( = 50)
 5 C006      0002   FACDT   FDB  2
 6 C008      0F     MAPNO   FCB  $0F        MAP NO.(EXEC)
 7           C009   EXEC    EQU  *          --- 50 / 2 ---
 8 C009   EC 8CFA           LDD  FACDT,PCR  D:2
 9                  *                       - FACC(SINGLE)<--ACCD(VARI.) -
10 C00C 103F                SWI2            CALL "UMOVFD" ROUTINE
11 C00E      41             FCB  $41
12 C00F      1F             FCB  $1F
13 C010   E6 8CF5           LDB  MAPNO,PCR  B:MAP NO
14 C013   30 8CEC           LEAX XDATA,PCR  X:TOP ADDR OF (X) DATA
15                  *                       --- FACC = [X] / FACC ---
16 C016 103F                SWI2            CALL "UFDIV" ROUTINE
17 C018      41             FCB  $41
18 C019      19             FCB  $19
19                  *                       - ACCD(VARI.)<--FACC(SINGLE) -
20 C01A 103F                SWI2            CALL "UMOVDF" ROUTINE
21 C01C      41             FCB  $41
22 C01D      20             FCB  $20
23 C01E   3F                SWI
24                          END

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます