projects
/
YACASL2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ae7aaf8
)
CASL2ライブラリのabsにコメントを追加
author
j8takagi
<j8takagi@nifty.com>
Thu, 8 Aug 2013 22:57:22 +0000
(07:57 +0900)
committer
j8takagi
<j8takagi@nifty.com>
Thu, 8 Aug 2013 22:57:22 +0000
(07:57 +0900)
as/casl2lib/abs.casl
patch
|
blob
|
history
diff --git
a/as/casl2lib/abs.casl
b/as/casl2lib/abs.casl
index
be0b922
..
6f03a67
100644
(file)
--- a/
as/casl2lib/abs.casl
+++ b/
as/casl2lib/abs.casl
@@
-1,16
+1,16
@@
;;; GR1を符号付き整数とみなし、絶対値に変換
;;; 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
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
FIN RET
ONE DC 1
ALLON DC #FFFF