日立MB-S1に関する情報

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

機能

実数の除算を行います。

解説

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

入力情報

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

出力情報

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

サンプル・プログラム

内容

40を被除数、2を除数として、単精度型実数の除算を行ない、その結果を整数に変換しAccDに格納します。
 0                          ORG  $C000
 1           C000   UFDIVT  EQU  *          --SAMPLE OF "UFDIVT" ROUTINE--
 2 C000   20 07             BRA  EXEC
 3 C002      8200   XDATA   FDB  $8200      SINGLE PRECISION DATA
 4 C004      0000           FDB  $0000      ( = 2)
 5 C006      0028   FACDT   FDB  40
 6 C008      0F     MAPNO   FCB  $0F        MAP NO.(EXEC)
 7           C009   EXEC    EQU  *          --- 40 / 2 ---
 8 C009   EC 8CFA           LDD  FACDT,PCR  D:40
 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 = FAXX / [X] ---
16 C016 103F                SWI2            CALL "UFDIVT" ROUTINE
17 C018      41             FCB  $41
18 C019      18             FCB  $18
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

実行結果

プログラムを実行し、計算結果がAccDに格納されていることを確認します。
Ready
EXEC &HC000
S=E1A6(F16B)CC=80(****)A=00 B=14 DP=00 X=EF56 Y=C000 U=0002 PC=C01E(3F69BEF010)
*

コメントをかく


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

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

どなたでも編集できます