From b2f26407c2f75777d6014c92ecae6a6dfd86d647 Mon Sep 17 00:00:00 2001 From: j8takagi Date: Fri, 9 Aug 2013 07:57:22 +0900 Subject: [PATCH] =?utf8?q?CASL2=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9?= =?utf8?q?=E3=83=AA=E3=81=AEabs=E3=81=AB=E3=82=B3=E3=83=A1=E3=83=B3?= =?utf8?q?=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- as/casl2lib/abs.casl | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/as/casl2lib/abs.casl b/as/casl2lib/abs.casl index be0b922..6f03a67 100644 --- a/as/casl2lib/abs.casl +++ b/as/casl2lib/abs.casl @@ -1,16 +1,16 @@ ;;; GR1を符号付き整数とみなし、絶対値に変換 -;;; 入力 GR1:-32768から32767の整数 -;;; 出力 GR1:入力された整数の絶対値 -;;; OF:入力されたGR1が-32768の場合、1 -;;; SF:入力されたGR1が負数(-32767〜-1)の場合、1 +;;; 入力 GR1: -32768から32767の整数 +;;; 出力 GR1: 入力された整数の絶対値 +;;; OF: 入力されたGR1が-32768の場合、1 +;;; SF: 入力されたGR1が負数(-32767〜-1)の場合、1 ABS START - AND GR1,GR1 - JPL FIN - JZE FIN - XOR GR1,ALLON - ADDA GR1,ONE - JOV FIN - CPL GR1,ALLON + AND GR1,GR1 ; GR1が0以上の場合は、FINへジャンプ + JPL FIN ; ↓ + JZE FIN ; ↓ + XOR GR1,ALLON ; GR1のビットを反転 + ADDA GR1,ONE ; GR1に1を追加 + JOV FIN ; 足し算でオーバーフローの場合は、OF:1を保持してFINへジャンプ + CPL GR1,ALLON ; SF:1を設定 FIN RET ONE DC 1 ALLON DC #FFFF -- 2.18.0