From: j8takagi <j8takagi@nifty.com>
Date: Sat, 6 Feb 2010 04:55:35 +0000 (+0900)
Subject: コマンド動作検証用のCASL2プログラム整理を開始
X-Git-Tag: v0.1~47^2~22
X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=632231943932361e8c8618283f7871ff1df04aa6;p=YACASL2.git

コマンド動作検証用のCASL2プログラム整理を開始
---

diff --git a/as/CMD/ADDA/adda0_0.casl b/as/CMD/ADDA/adda0_0.casl
new file mode 100644
index 0000000..ec6f2f8
--- /dev/null
+++ b/as/CMD/ADDA/adda0_0.casl
@@ -0,0 +1,7 @@
+MAIN    START
+BEGIN   LAD     GR1,A
+        ADDA    GR1,B
+        RET
+A       DC      3
+B       DC      1
+        END
diff --git a/as/CMD/ADDA/adda0_ov0.casl b/as/CMD/ADDA/adda0_ov0.casl
new file mode 100644
index 0000000..d0f5163
--- /dev/null
+++ b/as/CMD/ADDA/adda0_ov0.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        LD      GR1,A
+        ADDA    GR1,B
+        RET
+A       DC      32767
+B       DC      10
+        END
diff --git a/as/CMD/ADDA/adda0_ov1.casl b/as/CMD/ADDA/adda0_ov1.casl
new file mode 100644
index 0000000..b3a940e
--- /dev/null
+++ b/as/CMD/ADDA/adda0_ov1.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        LD      GR1,A
+        ADDA    GR1,B
+        RET
+A       DC      #8001           ; -32767
+B       DC      #FFF6           ; -10
+        END
diff --git a/as/CMD/ADDA/adda0_s0.casl b/as/CMD/ADDA/adda0_s0.casl
new file mode 100644
index 0000000..3770d34
--- /dev/null
+++ b/as/CMD/ADDA/adda0_s0.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        LD      GR1,A
+        ADDA    GR1,B
+        RET
+A       DC      10
+B       DC      #FFEC           ; -20
+        END
diff --git a/as/CMD/ADDA/adda0_s1.casl b/as/CMD/ADDA/adda0_s1.casl
new file mode 100644
index 0000000..3b8fd4d
--- /dev/null
+++ b/as/CMD/ADDA/adda0_s1.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        LD      GR1,A
+        ADDA    GR1,B
+        RET
+A       DC      -10
+B       DC      20
+        END
diff --git a/as/CMD/adda1.casl b/as/CMD/ADDA/adda1_0.casl
similarity index 100%
rename from as/CMD/adda1.casl
rename to as/CMD/ADDA/adda1_0.casl
diff --git a/as/CMD/ADDA/adda1_ov0.casl b/as/CMD/ADDA/adda1_ov0.casl
new file mode 100644
index 0000000..1a38af5
--- /dev/null
+++ b/as/CMD/ADDA/adda1_ov0.casl
@@ -0,0 +1,8 @@
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        ADDA    GR1,GR2
+        RET
+A       DC      32767
+B       DC      10
+        END
diff --git a/as/CMD/ADDA/adda1_ov1.casl b/as/CMD/ADDA/adda1_ov1.casl
new file mode 100644
index 0000000..326a3d1
--- /dev/null
+++ b/as/CMD/ADDA/adda1_ov1.casl
@@ -0,0 +1,8 @@
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        ADDA    GR1,GR2
+        RET
+A       DC      -32767
+B       DC      -10
+        END
diff --git a/as/CMD/ADDA/adda1_s0.casl b/as/CMD/ADDA/adda1_s0.casl
new file mode 100644
index 0000000..054f189
--- /dev/null
+++ b/as/CMD/ADDA/adda1_s0.casl
@@ -0,0 +1,8 @@
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        ADDA    GR1,GR2
+        RET
+A       DC      10
+B       DC      #FFEC           ; -20
+        END
diff --git a/as/CMD/ADDA/adda1_s1.casl b/as/CMD/ADDA/adda1_s1.casl
new file mode 100644
index 0000000..9f28bc1
--- /dev/null
+++ b/as/CMD/ADDA/adda1_s1.casl
@@ -0,0 +1,8 @@
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        ADDA    GR1,GR2
+        RET
+A       DC      -10
+B       DC      20
+        END
diff --git a/as/CMD/ADDL/addl.casl b/as/CMD/ADDL/addl.casl
new file mode 100644
index 0000000..6c69581
--- /dev/null
+++ b/as/CMD/ADDL/addl.casl
@@ -0,0 +1,8 @@
+MAIN    START
+BEGIN   LD      GR1,A
+        LD      GR2,B
+        ADDA    GR1,GR2
+        RET
+A       DC      3
+B       DC      1
+        END
diff --git a/as/CMD/ADDL/addl0.casl b/as/CMD/ADDL/addl0.casl
new file mode 100644
index 0000000..5e2924c
--- /dev/null
+++ b/as/CMD/ADDL/addl0.casl
@@ -0,0 +1,7 @@
+MAIN    START
+BEGIN   LAD     GR1,A
+        ADDL    GR1,B
+        RET
+A       DC      3
+B       DC      1
+        END
diff --git a/as/CMD/ADDL/addl0_ov0.casl b/as/CMD/ADDL/addl0_ov0.casl
new file mode 100644
index 0000000..2c48a47
--- /dev/null
+++ b/as/CMD/ADDL/addl0_ov0.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        LD      GR1,A
+        ADDL    GR1,B
+        RET
+A       DC      32767
+B       DC      10
+        END
diff --git a/as/CMD/ADDL/addl0_ov1.casl b/as/CMD/ADDL/addl0_ov1.casl
new file mode 100644
index 0000000..4ef996f
--- /dev/null
+++ b/as/CMD/ADDL/addl0_ov1.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        LD      GR1,A
+        ADDL    GR1,B
+        RET
+A       DC      #8001           ; -32767
+B       DC      #FFF6           ; -10
+        END
diff --git a/as/CMD/ADDL/addl0_s0.casl b/as/CMD/ADDL/addl0_s0.casl
new file mode 100644
index 0000000..215236d
--- /dev/null
+++ b/as/CMD/ADDL/addl0_s0.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        LD      GR1,A
+        ADDL    GR1,B
+        RET
+A       DC      10
+B       DC      #FFEC           ; 65516
+        END
diff --git a/as/CMD/ADDL/addl1_ov0.casl b/as/CMD/ADDL/addl1_ov0.casl
new file mode 100644
index 0000000..1a38af5
--- /dev/null
+++ b/as/CMD/ADDL/addl1_ov0.casl
@@ -0,0 +1,8 @@
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        ADDA    GR1,GR2
+        RET
+A       DC      32767
+B       DC      10
+        END
diff --git a/as/CMD/ADDL/addl1_ov1.casl b/as/CMD/ADDL/addl1_ov1.casl
new file mode 100644
index 0000000..326a3d1
--- /dev/null
+++ b/as/CMD/ADDL/addl1_ov1.casl
@@ -0,0 +1,8 @@
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        ADDA    GR1,GR2
+        RET
+A       DC      -32767
+B       DC      -10
+        END
diff --git a/as/CMD/ADDL/addl1_s0.casl b/as/CMD/ADDL/addl1_s0.casl
new file mode 100644
index 0000000..34da997
--- /dev/null
+++ b/as/CMD/ADDL/addl1_s0.casl
@@ -0,0 +1,8 @@
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        ADDL    GR1,GR2
+        RET
+A       DC      10
+B       DC      #FFEC           ; 65516
+        END
diff --git a/as/CMD/AND/and0.casl b/as/CMD/AND/and0.casl
new file mode 100644
index 0000000..c6169ec
--- /dev/null
+++ b/as/CMD/AND/and0.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        LD      GR1,A
+        AND     GR1,B
+        RET
+A       DC      #3000
+B       DC      #4FFF
+        END
diff --git a/as/CMD/AND/and1.casl b/as/CMD/AND/and1.casl
new file mode 100644
index 0000000..d41a1d8
--- /dev/null
+++ b/as/CMD/AND/and1.casl
@@ -0,0 +1,8 @@
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        AND     GR1,GR2
+        RET
+A       DC      #3000
+B       DC      #4FFF
+        END
diff --git a/as/CMD/call0.casl b/as/CMD/CALL/call0.casl
similarity index 100%
rename from as/CMD/call0.casl
rename to as/CMD/CALL/call0.casl
diff --git a/as/CMD/call1.casl b/as/CMD/CALL/call1.casl
similarity index 100%
rename from as/CMD/call1.casl
rename to as/CMD/CALL/call1.casl
diff --git a/as/CMD/call2.casl b/as/CMD/CALL/call2.casl
similarity index 100%
rename from as/CMD/call2.casl
rename to as/CMD/CALL/call2.casl
diff --git a/as/CMD/cpa1.casl b/as/CMD/CPA/cpa1.casl
similarity index 100%
rename from as/CMD/cpa1.casl
rename to as/CMD/CPA/cpa1.casl
diff --git a/as/CMD/cpl1.casl b/as/CMD/CPL/cpl1.casl
similarity index 100%
rename from as/CMD/cpl1.casl
rename to as/CMD/CPL/cpl1.casl
diff --git a/as/CMD/cpl2.casl b/as/CMD/CPL/cpl2.casl
similarity index 100%
rename from as/CMD/cpl2.casl
rename to as/CMD/CPL/cpl2.casl
diff --git a/as/CMD/cpl3.casl b/as/CMD/CPL/cpl3.casl
similarity index 100%
rename from as/CMD/cpl3.casl
rename to as/CMD/CPL/cpl3.casl
diff --git a/as/CMD/dc_overflow.casl b/as/CMD/DC/dc_overflow.casl
similarity index 100%
rename from as/CMD/dc_overflow.casl
rename to as/CMD/DC/dc_overflow.casl
diff --git a/as/CMD/dc_spc.casl b/as/CMD/DC/dc_spc.casl
similarity index 100%
rename from as/CMD/dc_spc.casl
rename to as/CMD/DC/dc_spc.casl
diff --git a/as/CMD/ds_0.casl b/as/CMD/DS/ds_0.casl
similarity index 100%
rename from as/CMD/ds_0.casl
rename to as/CMD/DS/ds_0.casl
diff --git a/as/CMD/lad0.casl b/as/CMD/LAD/lad0.casl
similarity index 100%
rename from as/CMD/lad0.casl
rename to as/CMD/LAD/lad0.casl
diff --git a/as/CMD/lad1.casl b/as/CMD/LAD/lad1.casl
similarity index 100%
rename from as/CMD/lad1.casl
rename to as/CMD/LAD/lad1.casl
diff --git a/as/CMD/lad2.casl b/as/CMD/LAD/lad2.casl
similarity index 100%
rename from as/CMD/lad2.casl
rename to as/CMD/LAD/lad2.casl
diff --git a/as/CMD/lad3.casl b/as/CMD/LAD/lad3.casl
similarity index 100%
rename from as/CMD/lad3.casl
rename to as/CMD/LAD/lad3.casl
diff --git a/as/CMD/lad4.casl b/as/CMD/LAD/lad4.casl
similarity index 100%
rename from as/CMD/lad4.casl
rename to as/CMD/LAD/lad4.casl
diff --git a/as/CMD/ld0.casl b/as/CMD/LD/ld0.casl
similarity index 100%
rename from as/CMD/ld0.casl
rename to as/CMD/LD/ld0.casl
diff --git a/as/CMD/ld1.casl b/as/CMD/LD/ld1.casl
similarity index 100%
rename from as/CMD/ld1.casl
rename to as/CMD/LD/ld1.casl
diff --git a/as/CMD/ld2.casl b/as/CMD/LD/ld2.casl
similarity index 100%
rename from as/CMD/ld2.casl
rename to as/CMD/LD/ld2.casl
diff --git a/as/CMD/ld3.casl b/as/CMD/LD/ld3.casl
similarity index 100%
rename from as/CMD/ld3.casl
rename to as/CMD/LD/ld3.casl
diff --git a/as/CMD/ld4.casl b/as/CMD/LD/ld4.casl
similarity index 100%
rename from as/CMD/ld4.casl
rename to as/CMD/LD/ld4.casl
diff --git a/as/CMD/ld5.casl b/as/CMD/LD/ld5.casl
similarity index 100%
rename from as/CMD/ld5.casl
rename to as/CMD/LD/ld5.casl
diff --git a/as/CMD/ld_loop.casl b/as/CMD/LD/ld_loop.casl
similarity index 100%
rename from as/CMD/ld_loop.casl
rename to as/CMD/LD/ld_loop.casl
diff --git a/as/CMD/nop.casl b/as/CMD/NOP/nop.casl
similarity index 100%
rename from as/CMD/nop.casl
rename to as/CMD/NOP/nop.casl
diff --git a/as/CMD/out0.casl b/as/CMD/OUT/out0.casl
similarity index 100%
rename from as/CMD/out0.casl
rename to as/CMD/OUT/out0.casl
diff --git a/as/CMD/out1.casl b/as/CMD/OUT/out1.casl
similarity index 100%
rename from as/CMD/out1.casl
rename to as/CMD/OUT/out1.casl
diff --git a/as/CMD/pushpop.casl b/as/CMD/PUSH/pushpop.casl
similarity index 100%
rename from as/CMD/pushpop.casl
rename to as/CMD/PUSH/pushpop.casl
diff --git a/as/CMD/sla2.casl b/as/CMD/SLA/sla2.casl
similarity index 100%
rename from as/CMD/sla2.casl
rename to as/CMD/SLA/sla2.casl
diff --git a/as/CMD/sla3.casl b/as/CMD/SLA/sla3.casl
similarity index 100%
rename from as/CMD/sla3.casl
rename to as/CMD/SLA/sla3.casl
diff --git a/as/CMD/sll2.casl b/as/CMD/SLA/sll2.casl
similarity index 100%
rename from as/CMD/sll2.casl
rename to as/CMD/SLA/sll2.casl
diff --git a/as/CMD/sll3.casl b/as/CMD/SLA/sll3.casl
similarity index 100%
rename from as/CMD/sll3.casl
rename to as/CMD/SLA/sll3.casl
diff --git a/as/CMD/sra2.casl b/as/CMD/SRA/sra2.casl
similarity index 100%
rename from as/CMD/sra2.casl
rename to as/CMD/SRA/sra2.casl
diff --git a/as/CMD/sra3.casl b/as/CMD/SRA/sra3.casl
similarity index 100%
rename from as/CMD/sra3.casl
rename to as/CMD/SRA/sra3.casl
diff --git a/as/CMD/sra4.casl b/as/CMD/SRA/sra4.casl
similarity index 100%
rename from as/CMD/sra4.casl
rename to as/CMD/SRA/sra4.casl
diff --git a/as/CMD/st0.casl b/as/CMD/ST/st0.casl
similarity index 100%
rename from as/CMD/st0.casl
rename to as/CMD/ST/st0.casl
diff --git a/as/CMD/st1.casl b/as/CMD/ST/st1.casl
similarity index 100%
rename from as/CMD/st1.casl
rename to as/CMD/ST/st1.casl
diff --git a/as/CMD/svc2.casl b/as/CMD/SVC/svc2.casl
similarity index 100%
rename from as/CMD/svc2.casl
rename to as/CMD/SVC/svc2.casl
diff --git a/as/CMD/XOR/literal_spc.casl b/as/CMD/XOR/literal_spc.casl
new file mode 100644
index 0000000..7c98d7b
--- /dev/null
+++ b/as/CMD/XOR/literal_spc.casl
@@ -0,0 +1,9 @@
+; リテラルに「=' '」を指定
+MAIN    START
+        LD      GR1,=' '
+        ST      GR1,BUF
+        OUT     BUF,LEN
+        RET
+BUF     DS      1
+LEN     DC      1
+        END
diff --git a/as/CMD/xor0.casl b/as/CMD/XOR/xor0.casl
similarity index 100%
rename from as/CMD/xor0.casl
rename to as/CMD/XOR/xor0.casl
diff --git a/as/CMD/xor1.casl b/as/CMD/XOR/xor1.casl
similarity index 100%
rename from as/CMD/xor1.casl
rename to as/CMD/XOR/xor1.casl
diff --git a/as/CMD/xor3.casl b/as/CMD/XOR/xor3.casl
similarity index 100%
rename from as/CMD/xor3.casl
rename to as/CMD/XOR/xor3.casl
diff --git a/as/CMD/xor4.casl b/as/CMD/XOR/xor4.casl
similarity index 100%
rename from as/CMD/xor4.casl
rename to as/CMD/XOR/xor4.casl
diff --git a/as/CMD/xor5.casl b/as/CMD/XOR/xor5.casl
similarity index 100%
rename from as/CMD/xor5.casl
rename to as/CMD/XOR/xor5.casl
diff --git a/as/CMD/adda0.casl b/as/CMD/adda0.casl
deleted file mode 100644
index 8e068bc..0000000
--- a/as/CMD/adda0.casl
+++ /dev/null
@@ -1,6 +0,0 @@
-MAIN    START
-BEGIN   LAD     GR1,3
-        ADDA    GR1,A
-        RET
-A       DC      1
-        END
diff --git a/as/CMD/adda_overflow.casl b/as/CMD/adda_overflow.casl
deleted file mode 100644
index 478cd3a..0000000
--- a/as/CMD/adda_overflow.casl
+++ /dev/null
@@ -1,6 +0,0 @@
-MAIN    START   BEGIN
-BEGIN   LAD     GR1,32766
-        ADDA    GR1,A
-        RET
-A       DC      29
-        END
diff --git a/as/CMD/addl.casl b/as/CMD/addl.casl
deleted file mode 100644
index d496648..0000000
--- a/as/CMD/addl.casl
+++ /dev/null
@@ -1,9 +0,0 @@
-MAIN    START   BEGIN
-BEGIN   LD  GR0,A
-        ADDL    GR0,B
-        ST  GR0,C
-        RET
-A   DC  32766
-B   DC  29
-C   DS  1
-        END
diff --git a/as/CMD/addl_overflow.casl b/as/CMD/addl_overflow.casl
deleted file mode 100644
index 5a6f7c9..0000000
--- a/as/CMD/addl_overflow.casl
+++ /dev/null
@@ -1,11 +0,0 @@
-MAIN	START	BEGIN
-BEGIN	LD	GR1,A
-	ADDL	GR1,B
-	ADDL	GR1,C
-    ADDL	GR1,D
-	RET
-A	DC	32765
-B	DC	4
-C	DC	32764
-D	DC	7
-	END
diff --git a/as/CMD/and0.casl b/as/CMD/and0.casl
deleted file mode 100644
index 99ca479..0000000
--- a/as/CMD/and0.casl
+++ /dev/null
@@ -1,6 +0,0 @@
-MAIN    START
-BEGIN   LAD     GR1,#8001
-        LAD     GR2,#3521
-        AND     GR1,GR2
-        RET
-        END
diff --git a/as/CMD/and1.casl b/as/CMD/and1.casl
deleted file mode 100644
index 99b3203..0000000
--- a/as/CMD/and1.casl
+++ /dev/null
@@ -1,6 +0,0 @@
-MAIN    START
-BEGIN   LAD     GR0,#3444
-        AND     GR0,A
-        RET
-A       DC      #00DD
-        END
diff --git a/as/CMD/and2.casl b/as/CMD/and2.casl
deleted file mode 100644
index 65b8b8a..0000000
--- a/as/CMD/and2.casl
+++ /dev/null
@@ -1,5 +0,0 @@
-MAIN    START
-BEGIN   LAD     GR0,#3444
-        AND     GR0,=#00DD
-        RET
-        END
diff --git a/as/CMD/and3.casl b/as/CMD/and3.casl
deleted file mode 100644
index 2e6cf33..0000000
--- a/as/CMD/and3.casl
+++ /dev/null
@@ -1,5 +0,0 @@
-MAIN    START
-BEGIN   LAD     GR0,#0460
-        AND     GR0,=#00FF
-        RET
-        END
diff --git a/as/CMD/literal_spc.casl b/as/CMD/literal_spc.casl
deleted file mode 100644
index 3c034d4..0000000
--- a/as/CMD/literal_spc.casl
+++ /dev/null
@@ -1,9 +0,0 @@
-; リテラルに「=' '」を指定した場合のテスト
-MAIN    START
-        LD  GR1,=' '
-        ST  GR1,BUF      
-        OUT BUF,LEN
-        RET
-BUF		DS	1
-LEN		DC	1
-        END
diff --git a/as/CMD/literalstr.casl b/as/CMD/literalstr.casl
index 0fa3fd4..7a352de 100644
--- a/as/CMD/literalstr.casl
+++ b/as/CMD/literalstr.casl
@@ -2,12 +2,12 @@ MAIN    START
         LAD     GR1,='a'
         LAD     GR2,10
 LOOP    CPA     GR2,=0
-        JZE     LEND
-        JMI     LEND
+        JZE     FIN
+        JMI     FIN
         LD      GR3,0,GR1
         ADDA    GR1,=1
         SUBA    GR2,=1
         JUMP    LOOP
-LEND    RET
+FIN     RET
 LEN     DC      5
         END
diff --git a/as/hello.casl b/as/hello.casl
index 191f75a..e02055c 100644
--- a/as/hello.casl
+++ b/as/hello.casl
@@ -1,6 +1,6 @@
-MAIN     START
-         OUT    BUF,LEN
-         RET
-BUF      DC     'Hello, World!'
-LEN      DC     13
-         END
+MAIN    START
+        OUT     OBUF,LEN
+        RET
+OBUF    DC      'Hello, World!'
+LEN     DC      13
+        END
diff --git a/as/macro/in/in.casl b/as/macro/in/in.casl
new file mode 100644
index 0000000..de3509d
--- /dev/null
+++ b/as/macro/in/in.casl
@@ -0,0 +1,8 @@
+;;; CASL IIマクロ命令「IN IBUF LEN」で生成される命令群
+        PUSH    0,GR1
+        PUSH    0,GR2
+        LAD     GR1,IBUF
+        LAD     GR2,LEN
+        SVC     1
+        POP     GR2
+        POP     GR1
diff --git a/as/macro/in/intest0.casl b/as/macro/in/intest0.casl
new file mode 100644
index 0000000..43a89e0
--- /dev/null
+++ b/as/macro/in/intest0.casl
@@ -0,0 +1,7 @@
+MAIN    START
+        IN      IBUF,LEN
+        OUT     IBUF,LEN
+        RET
+IBUF    DS      100
+LEN     DC      1
+        END
diff --git a/as/macro/in/intest1.casl b/as/macro/in/intest1.casl
new file mode 100644
index 0000000..2877bc8
--- /dev/null
+++ b/as/macro/in/intest1.casl
@@ -0,0 +1,14 @@
+MAIN    START
+        PUSH    0,GR1
+        PUSH    0,GR2
+        LAD     GR1,IBUF
+        LAD     GR2,LEN
+        SVC     1
+        POP     GR2
+        POP     GR1
+        IN      IBUF,LEN
+        OUT     IBUF,LEN
+        RET
+IBUF    DS      100
+LEN     DC      1
+        END
diff --git a/as/macro/in/str.txt b/as/macro/in/str.txt
new file mode 100644
index 0000000..6097ccb
--- /dev/null
+++ b/as/macro/in/str.txt
@@ -0,0 +1 @@
+1234567890abcdefghijkLMNOPQRST
diff --git a/as/macro/out/hello0.casl b/as/macro/out/hello0.casl
new file mode 100644
index 0000000..e02055c
--- /dev/null
+++ b/as/macro/out/hello0.casl
@@ -0,0 +1,6 @@
+MAIN    START
+        OUT     OBUF,LEN
+        RET
+OBUF    DC      'Hello, World!'
+LEN     DC      13
+        END
diff --git a/as/CMD/svc2_out.casl b/as/macro/out/hello1.casl
similarity index 57%
rename from as/CMD/svc2_out.casl
rename to as/macro/out/hello1.casl
index 5902866..a697251 100644
--- a/as/CMD/svc2_out.casl
+++ b/as/macro/out/hello1.casl
@@ -1,16 +1,15 @@
-;;; 「OUT」と同等のプログラム
-OTEST   START
+MAIN    START
         PUSH    0,GR1
         PUSH    0,GR2
         LAD     GR1,OBUF
-        LD      GR2,LEN
+        LAD     GR2,LEN
         SVC     2
         LAD     GR1,=#A
-        LAD     GR2,1
+        LAD     GR2,=1
         SVC     2
         POP     GR2
         POP     GR1
         RET
-OBUF    DC      'abcd'
-LEN     DC      4
+OBUF    DC      'Hello, World!'
+LEN     DC      13
         END
diff --git a/as/macro/out/out.casl b/as/macro/out/out.casl
new file mode 100644
index 0000000..6bdf9cd
--- /dev/null
+++ b/as/macro/out/out.casl
@@ -0,0 +1,11 @@
+;;; CASL IIマクロ命令「OUT OBUF LEN」で生成される命令群
+        PUSH    0,GR1
+        PUSH    0,GR2
+        LAD     GR1,OBUF
+        LAD     GR2,LEN
+        SVC     2
+        LAD     GR1,=#A
+        LAD     GR2,=1
+        SVC     2
+        POP     GR2
+        POP     GR1
diff --git a/test/integration/Makefile b/test/integration/Makefile
index e440002..38422a0 100644
--- a/test/integration/Makefile
+++ b/test/integration/Makefile
@@ -1,7 +1,7 @@
 YACASL2DIR=../..
 TESTGROUPS = casl2 comet2 dumpword
-.PHONY: all clean
-all:
+.PHONY: check clean
+check:
 	@for target in $(TESTGROUPS); do $(MAKE) -sC $$target; done
 clean:
 	@for target in $(TESTGROUPS); do $(MAKE) -sC $$target clean; done
diff --git a/test/integration/casl2/adda0/0.txt b/test/integration/casl2/cmd_adda0/0.txt
similarity index 100%
rename from test/integration/casl2/adda0/0.txt
rename to test/integration/casl2/cmd_adda0/0.txt
diff --git a/test/integration/casl2/adda0/Makefile b/test/integration/casl2/cmd_adda0/Makefile
similarity index 100%
rename from test/integration/casl2/adda0/Makefile
rename to test/integration/casl2/cmd_adda0/Makefile
diff --git a/test/integration/casl2/adda1/0.txt b/test/integration/casl2/cmd_adda1/0.txt
similarity index 100%
rename from test/integration/casl2/adda1/0.txt
rename to test/integration/casl2/cmd_adda1/0.txt
diff --git a/test/integration/casl2/adda1/Makefile b/test/integration/casl2/cmd_adda1/Makefile
similarity index 100%
rename from test/integration/casl2/adda1/Makefile
rename to test/integration/casl2/cmd_adda1/Makefile
diff --git a/test/integration/casl2/adda_overflow/0.txt b/test/integration/casl2/cmd_adda_overflow/0.txt
similarity index 100%
rename from test/integration/casl2/adda_overflow/0.txt
rename to test/integration/casl2/cmd_adda_overflow/0.txt
diff --git a/test/integration/casl2/adda_overflow/Makefile b/test/integration/casl2/cmd_adda_overflow/Makefile
similarity index 100%
rename from test/integration/casl2/adda_overflow/Makefile
rename to test/integration/casl2/cmd_adda_overflow/Makefile
diff --git a/test/integration/casl2/addl/0.txt b/test/integration/casl2/cmd_addl/0.txt
similarity index 100%
rename from test/integration/casl2/addl/0.txt
rename to test/integration/casl2/cmd_addl/0.txt
diff --git a/test/integration/casl2/addl/Makefile b/test/integration/casl2/cmd_addl/Makefile
similarity index 100%
rename from test/integration/casl2/addl/Makefile
rename to test/integration/casl2/cmd_addl/Makefile
diff --git a/test/integration/casl2/addl_overflow/0.txt b/test/integration/casl2/cmd_addl_overflow/0.txt
similarity index 100%
rename from test/integration/casl2/addl_overflow/0.txt
rename to test/integration/casl2/cmd_addl_overflow/0.txt
diff --git a/test/integration/casl2/addl_overflow/Makefile b/test/integration/casl2/cmd_addl_overflow/Makefile
similarity index 100%
rename from test/integration/casl2/addl_overflow/Makefile
rename to test/integration/casl2/cmd_addl_overflow/Makefile
diff --git a/test/integration/casl2/and0/0.txt b/test/integration/casl2/cmd_and0/0.txt
similarity index 100%
rename from test/integration/casl2/and0/0.txt
rename to test/integration/casl2/cmd_and0/0.txt
diff --git a/test/integration/casl2/and0/Makefile b/test/integration/casl2/cmd_and0/Makefile
similarity index 100%
rename from test/integration/casl2/and0/Makefile
rename to test/integration/casl2/cmd_and0/Makefile
diff --git a/test/integration/casl2/and1/0.txt b/test/integration/casl2/cmd_and1/0.txt
similarity index 100%
rename from test/integration/casl2/and1/0.txt
rename to test/integration/casl2/cmd_and1/0.txt
diff --git a/test/integration/casl2/and1/Makefile b/test/integration/casl2/cmd_and1/Makefile
similarity index 100%
rename from test/integration/casl2/and1/Makefile
rename to test/integration/casl2/cmd_and1/Makefile
diff --git a/test/integration/casl2/and2/0.txt b/test/integration/casl2/cmd_and2/0.txt
similarity index 100%
rename from test/integration/casl2/and2/0.txt
rename to test/integration/casl2/cmd_and2/0.txt
diff --git a/test/integration/casl2/and2/Makefile b/test/integration/casl2/cmd_and2/Makefile
similarity index 100%
rename from test/integration/casl2/and2/Makefile
rename to test/integration/casl2/cmd_and2/Makefile
diff --git a/test/integration/casl2/and3/0.txt b/test/integration/casl2/cmd_and3/0.txt
similarity index 100%
rename from test/integration/casl2/and3/0.txt
rename to test/integration/casl2/cmd_and3/0.txt
diff --git a/test/integration/casl2/and3/Makefile b/test/integration/casl2/cmd_and3/Makefile
similarity index 100%
rename from test/integration/casl2/and3/Makefile
rename to test/integration/casl2/cmd_and3/Makefile
diff --git a/test/integration/casl2/call0/0.txt b/test/integration/casl2/cmd_call0/0.txt
similarity index 100%
rename from test/integration/casl2/call0/0.txt
rename to test/integration/casl2/cmd_call0/0.txt
diff --git a/test/integration/casl2/call0/Makefile b/test/integration/casl2/cmd_call0/Makefile
similarity index 100%
rename from test/integration/casl2/call0/Makefile
rename to test/integration/casl2/cmd_call0/Makefile
diff --git a/test/integration/casl2/call1/0.txt b/test/integration/casl2/cmd_call1/0.txt
similarity index 100%
rename from test/integration/casl2/call1/0.txt
rename to test/integration/casl2/cmd_call1/0.txt
diff --git a/test/integration/casl2/call1/Makefile b/test/integration/casl2/cmd_call1/Makefile
similarity index 100%
rename from test/integration/casl2/call1/Makefile
rename to test/integration/casl2/cmd_call1/Makefile
diff --git a/test/integration/casl2/call2/0.txt b/test/integration/casl2/cmd_call2/0.txt
similarity index 100%
rename from test/integration/casl2/call2/0.txt
rename to test/integration/casl2/cmd_call2/0.txt
diff --git a/test/integration/casl2/call2/Makefile b/test/integration/casl2/cmd_call2/Makefile
similarity index 100%
rename from test/integration/casl2/call2/Makefile
rename to test/integration/casl2/cmd_call2/Makefile
diff --git a/test/integration/casl2/cpa1/0.txt b/test/integration/casl2/cmd_cpa1/0.txt
similarity index 100%
rename from test/integration/casl2/cpa1/0.txt
rename to test/integration/casl2/cmd_cpa1/0.txt
diff --git a/test/integration/casl2/cpa1/Makefile b/test/integration/casl2/cmd_cpa1/Makefile
similarity index 100%
rename from test/integration/casl2/cpa1/Makefile
rename to test/integration/casl2/cmd_cpa1/Makefile
diff --git a/test/integration/casl2/dc_overflow/0.txt b/test/integration/casl2/cmd_dc_overflow/0.txt
similarity index 100%
rename from test/integration/casl2/dc_overflow/0.txt
rename to test/integration/casl2/cmd_dc_overflow/0.txt
diff --git a/test/integration/casl2/dc_overflow/Makefile b/test/integration/casl2/cmd_dc_overflow/Makefile
similarity index 100%
rename from test/integration/casl2/dc_overflow/Makefile
rename to test/integration/casl2/cmd_dc_overflow/Makefile
diff --git a/test/integration/casl2/dc_spc/0.txt b/test/integration/casl2/cmd_dc_spc/0.txt
similarity index 100%
rename from test/integration/casl2/dc_spc/0.txt
rename to test/integration/casl2/cmd_dc_spc/0.txt
diff --git a/test/integration/casl2/dc_spc/Makefile b/test/integration/casl2/cmd_dc_spc/Makefile
similarity index 100%
rename from test/integration/casl2/dc_spc/Makefile
rename to test/integration/casl2/cmd_dc_spc/Makefile
diff --git a/test/integration/casl2/ds_0/0.txt b/test/integration/casl2/cmd_ds_0/0.txt
similarity index 100%
rename from test/integration/casl2/ds_0/0.txt
rename to test/integration/casl2/cmd_ds_0/0.txt
diff --git a/test/integration/casl2/ds_0/Makefile b/test/integration/casl2/cmd_ds_0/Makefile
similarity index 100%
rename from test/integration/casl2/ds_0/Makefile
rename to test/integration/casl2/cmd_ds_0/Makefile
diff --git a/test/integration/casl2/lad0/0.txt b/test/integration/casl2/cmd_lad0/0.txt
similarity index 100%
rename from test/integration/casl2/lad0/0.txt
rename to test/integration/casl2/cmd_lad0/0.txt
diff --git a/test/integration/casl2/lad0/Makefile b/test/integration/casl2/cmd_lad0/Makefile
similarity index 100%
rename from test/integration/casl2/lad0/Makefile
rename to test/integration/casl2/cmd_lad0/Makefile
diff --git a/test/integration/casl2/lad1/0.txt b/test/integration/casl2/cmd_lad1/0.txt
similarity index 100%
rename from test/integration/casl2/lad1/0.txt
rename to test/integration/casl2/cmd_lad1/0.txt
diff --git a/test/integration/casl2/lad1/Makefile b/test/integration/casl2/cmd_lad1/Makefile
similarity index 100%
rename from test/integration/casl2/lad1/Makefile
rename to test/integration/casl2/cmd_lad1/Makefile
diff --git a/test/integration/casl2/lad2/0.txt b/test/integration/casl2/cmd_lad2/0.txt
similarity index 100%
rename from test/integration/casl2/lad2/0.txt
rename to test/integration/casl2/cmd_lad2/0.txt
diff --git a/test/integration/casl2/lad2/Makefile b/test/integration/casl2/cmd_lad2/Makefile
similarity index 100%
rename from test/integration/casl2/lad2/Makefile
rename to test/integration/casl2/cmd_lad2/Makefile
diff --git a/test/integration/casl2/lad3/0.txt b/test/integration/casl2/cmd_lad3/0.txt
similarity index 100%
rename from test/integration/casl2/lad3/0.txt
rename to test/integration/casl2/cmd_lad3/0.txt
diff --git a/test/integration/casl2/lad3/Makefile b/test/integration/casl2/cmd_lad3/Makefile
similarity index 100%
rename from test/integration/casl2/lad3/Makefile
rename to test/integration/casl2/cmd_lad3/Makefile
diff --git a/test/integration/casl2/ld0/0.txt b/test/integration/casl2/cmd_ld0/0.txt
similarity index 100%
rename from test/integration/casl2/ld0/0.txt
rename to test/integration/casl2/cmd_ld0/0.txt
diff --git a/test/integration/casl2/ld0/Makefile b/test/integration/casl2/cmd_ld0/Makefile
similarity index 100%
rename from test/integration/casl2/ld0/Makefile
rename to test/integration/casl2/cmd_ld0/Makefile
diff --git a/test/integration/casl2/ld1/0.txt b/test/integration/casl2/cmd_ld1/0.txt
similarity index 100%
rename from test/integration/casl2/ld1/0.txt
rename to test/integration/casl2/cmd_ld1/0.txt
diff --git a/test/integration/casl2/ld1/Makefile b/test/integration/casl2/cmd_ld1/Makefile
similarity index 100%
rename from test/integration/casl2/ld1/Makefile
rename to test/integration/casl2/cmd_ld1/Makefile
diff --git a/test/integration/casl2/ld2/0.txt b/test/integration/casl2/cmd_ld2/0.txt
similarity index 100%
rename from test/integration/casl2/ld2/0.txt
rename to test/integration/casl2/cmd_ld2/0.txt
diff --git a/test/integration/casl2/ld2/Makefile b/test/integration/casl2/cmd_ld2/Makefile
similarity index 100%
rename from test/integration/casl2/ld2/Makefile
rename to test/integration/casl2/cmd_ld2/Makefile
diff --git a/test/integration/casl2/ld3/0.txt b/test/integration/casl2/cmd_ld3/0.txt
similarity index 100%
rename from test/integration/casl2/ld3/0.txt
rename to test/integration/casl2/cmd_ld3/0.txt
diff --git a/test/integration/casl2/ld3/Makefile b/test/integration/casl2/cmd_ld3/Makefile
similarity index 100%
rename from test/integration/casl2/ld3/Makefile
rename to test/integration/casl2/cmd_ld3/Makefile
diff --git a/test/integration/casl2/ld4/0.txt b/test/integration/casl2/cmd_ld4/0.txt
similarity index 100%
rename from test/integration/casl2/ld4/0.txt
rename to test/integration/casl2/cmd_ld4/0.txt
diff --git a/test/integration/casl2/ld4/Makefile b/test/integration/casl2/cmd_ld4/Makefile
similarity index 100%
rename from test/integration/casl2/ld4/Makefile
rename to test/integration/casl2/cmd_ld4/Makefile
diff --git a/test/integration/casl2/ld5/0.txt b/test/integration/casl2/cmd_ld5/0.txt
similarity index 100%
rename from test/integration/casl2/ld5/0.txt
rename to test/integration/casl2/cmd_ld5/0.txt
diff --git a/test/integration/casl2/ld5/Makefile b/test/integration/casl2/cmd_ld5/Makefile
similarity index 100%
rename from test/integration/casl2/ld5/Makefile
rename to test/integration/casl2/cmd_ld5/Makefile
diff --git a/test/integration/casl2/ld_loop/0.txt b/test/integration/casl2/cmd_ld_loop/0.txt
similarity index 100%
rename from test/integration/casl2/ld_loop/0.txt
rename to test/integration/casl2/cmd_ld_loop/0.txt
diff --git a/test/integration/casl2/ld_loop/Makefile b/test/integration/casl2/cmd_ld_loop/Makefile
similarity index 100%
rename from test/integration/casl2/ld_loop/Makefile
rename to test/integration/casl2/cmd_ld_loop/Makefile
diff --git a/test/integration/casl2/literal_spc/0.txt b/test/integration/casl2/cmd_literal_spc/0.txt
similarity index 100%
rename from test/integration/casl2/literal_spc/0.txt
rename to test/integration/casl2/cmd_literal_spc/0.txt
diff --git a/test/integration/casl2/literal_spc/Makefile b/test/integration/casl2/cmd_literal_spc/Makefile
similarity index 100%
rename from test/integration/casl2/literal_spc/Makefile
rename to test/integration/casl2/cmd_literal_spc/Makefile
diff --git a/test/integration/casl2/literalstr/0.txt b/test/integration/casl2/cmd_literalstr/0.txt
similarity index 100%
rename from test/integration/casl2/literalstr/0.txt
rename to test/integration/casl2/cmd_literalstr/0.txt
diff --git a/test/integration/casl2/literalstr/Makefile b/test/integration/casl2/cmd_literalstr/Makefile
similarity index 100%
rename from test/integration/casl2/literalstr/Makefile
rename to test/integration/casl2/cmd_literalstr/Makefile
diff --git a/test/integration/casl2/out0/0.txt b/test/integration/casl2/cmd_out0/0.txt
similarity index 100%
rename from test/integration/casl2/out0/0.txt
rename to test/integration/casl2/cmd_out0/0.txt
diff --git a/test/integration/casl2/out0/Makefile b/test/integration/casl2/cmd_out0/Makefile
similarity index 100%
rename from test/integration/casl2/out0/Makefile
rename to test/integration/casl2/cmd_out0/Makefile
diff --git a/test/integration/casl2/out1/0.txt b/test/integration/casl2/cmd_out1/0.txt
similarity index 100%
rename from test/integration/casl2/out1/0.txt
rename to test/integration/casl2/cmd_out1/0.txt
diff --git a/test/integration/casl2/out1/Makefile b/test/integration/casl2/cmd_out1/Makefile
similarity index 100%
rename from test/integration/casl2/out1/Makefile
rename to test/integration/casl2/cmd_out1/Makefile
diff --git a/test/integration/casl2/pushpop/0.txt b/test/integration/casl2/cmd_pushpop/0.txt
similarity index 100%
rename from test/integration/casl2/pushpop/0.txt
rename to test/integration/casl2/cmd_pushpop/0.txt
diff --git a/test/integration/casl2/pushpop/Makefile b/test/integration/casl2/cmd_pushpop/Makefile
similarity index 100%
rename from test/integration/casl2/pushpop/Makefile
rename to test/integration/casl2/cmd_pushpop/Makefile
diff --git a/test/integration/casl2/sla2/0.txt b/test/integration/casl2/cmd_sla2/0.txt
similarity index 100%
rename from test/integration/casl2/sla2/0.txt
rename to test/integration/casl2/cmd_sla2/0.txt
diff --git a/test/integration/casl2/sla2/Makefile b/test/integration/casl2/cmd_sla2/Makefile
similarity index 100%
rename from test/integration/casl2/sla2/Makefile
rename to test/integration/casl2/cmd_sla2/Makefile
diff --git a/test/integration/casl2/sra2/0.txt b/test/integration/casl2/cmd_sra2/0.txt
similarity index 100%
rename from test/integration/casl2/sra2/0.txt
rename to test/integration/casl2/cmd_sra2/0.txt
diff --git a/test/integration/casl2/sra2/Makefile b/test/integration/casl2/cmd_sra2/Makefile
similarity index 100%
rename from test/integration/casl2/sra2/Makefile
rename to test/integration/casl2/cmd_sra2/Makefile
diff --git a/test/integration/casl2/sra3/0.txt b/test/integration/casl2/cmd_sra3/0.txt
similarity index 100%
rename from test/integration/casl2/sra3/0.txt
rename to test/integration/casl2/cmd_sra3/0.txt
diff --git a/test/integration/casl2/sra3/Makefile b/test/integration/casl2/cmd_sra3/Makefile
similarity index 100%
rename from test/integration/casl2/sra3/Makefile
rename to test/integration/casl2/cmd_sra3/Makefile
diff --git a/test/integration/casl2/sra4/0.txt b/test/integration/casl2/cmd_sra4/0.txt
similarity index 100%
rename from test/integration/casl2/sra4/0.txt
rename to test/integration/casl2/cmd_sra4/0.txt
diff --git a/test/integration/casl2/sra4/Makefile b/test/integration/casl2/cmd_sra4/Makefile
similarity index 100%
rename from test/integration/casl2/sra4/Makefile
rename to test/integration/casl2/cmd_sra4/Makefile
diff --git a/test/integration/casl2/st0/0.txt b/test/integration/casl2/cmd_st0/0.txt
similarity index 100%
rename from test/integration/casl2/st0/0.txt
rename to test/integration/casl2/cmd_st0/0.txt
diff --git a/test/integration/casl2/st0/Makefile b/test/integration/casl2/cmd_st0/Makefile
similarity index 100%
rename from test/integration/casl2/st0/Makefile
rename to test/integration/casl2/cmd_st0/Makefile
diff --git a/test/integration/casl2/st1/0.txt b/test/integration/casl2/cmd_st1/0.txt
similarity index 100%
rename from test/integration/casl2/st1/0.txt
rename to test/integration/casl2/cmd_st1/0.txt
diff --git a/test/integration/casl2/st1/Makefile b/test/integration/casl2/cmd_st1/Makefile
similarity index 100%
rename from test/integration/casl2/st1/Makefile
rename to test/integration/casl2/cmd_st1/Makefile
diff --git a/test/integration/casl2/svc2/0.txt b/test/integration/casl2/cmd_svc2/0.txt
similarity index 100%
rename from test/integration/casl2/svc2/0.txt
rename to test/integration/casl2/cmd_svc2/0.txt
diff --git a/test/integration/casl2/svc2/Makefile b/test/integration/casl2/cmd_svc2/Makefile
similarity index 100%
rename from test/integration/casl2/svc2/Makefile
rename to test/integration/casl2/cmd_svc2/Makefile
diff --git a/test/integration/casl2/xor0/0.txt b/test/integration/casl2/cmd_xor0/0.txt
similarity index 100%
rename from test/integration/casl2/xor0/0.txt
rename to test/integration/casl2/cmd_xor0/0.txt
diff --git a/test/integration/casl2/xor0/Makefile b/test/integration/casl2/cmd_xor0/Makefile
similarity index 100%
rename from test/integration/casl2/xor0/Makefile
rename to test/integration/casl2/cmd_xor0/Makefile
diff --git a/test/integration/casl2/xor1/0.txt b/test/integration/casl2/cmd_xor1/0.txt
similarity index 100%
rename from test/integration/casl2/xor1/0.txt
rename to test/integration/casl2/cmd_xor1/0.txt
diff --git a/test/integration/casl2/xor1/Makefile b/test/integration/casl2/cmd_xor1/Makefile
similarity index 100%
rename from test/integration/casl2/xor1/Makefile
rename to test/integration/casl2/cmd_xor1/Makefile
diff --git a/test/integration/casl2/xor3/0.txt b/test/integration/casl2/cmd_xor3/0.txt
similarity index 100%
rename from test/integration/casl2/xor3/0.txt
rename to test/integration/casl2/cmd_xor3/0.txt
diff --git a/test/integration/casl2/xor3/Makefile b/test/integration/casl2/cmd_xor3/Makefile
similarity index 100%
rename from test/integration/casl2/xor3/Makefile
rename to test/integration/casl2/cmd_xor3/Makefile
diff --git a/test/integration/casl2/xor4/0.txt b/test/integration/casl2/cmd_xor4/0.txt
similarity index 100%
rename from test/integration/casl2/xor4/0.txt
rename to test/integration/casl2/cmd_xor4/0.txt
diff --git a/test/integration/casl2/xor4/Makefile b/test/integration/casl2/cmd_xor4/Makefile
similarity index 100%
rename from test/integration/casl2/xor4/Makefile
rename to test/integration/casl2/cmd_xor4/Makefile
diff --git a/test/integration/casl2/xor5/0.txt b/test/integration/casl2/cmd_xor5/0.txt
similarity index 100%
rename from test/integration/casl2/xor5/0.txt
rename to test/integration/casl2/cmd_xor5/0.txt
diff --git a/test/integration/casl2/xor5/Makefile b/test/integration/casl2/cmd_xor5/Makefile
similarity index 100%
rename from test/integration/casl2/xor5/Makefile
rename to test/integration/casl2/cmd_xor5/Makefile
diff --git a/test/integration/casl2/hello/0.txt b/test/integration/casl2/hello/0.txt
index a6e674e..865a5fe 100644
--- a/test/integration/casl2/hello/0.txt
+++ b/test/integration/casl2/hello/0.txt
@@ -1,21 +1,21 @@
 ../../../../casl2 -sla ../../../../as/hello.casl
 
 Assemble ../../../../as/hello.casl (0)
-../../../../as/hello.casl:    1:MAIN     START
-../../../../as/hello.casl:    2:         OUT    BUF,LEN
-../../../../as/hello.casl:    3:         RET
-../../../../as/hello.casl:    4:BUF      DC     'Hello, World!'
-../../../../as/hello.casl:    5:LEN      DC     13
-../../../../as/hello.casl:    6:         END
+../../../../as/hello.casl:    1:MAIN    START
+../../../../as/hello.casl:    2:        OUT     OBUF,LEN
+../../../../as/hello.casl:    3:        RET
+../../../../as/hello.casl:    4:OBUF    DC      'Hello, World!'
+../../../../as/hello.casl:    5:LEN     DC      13
+../../../../as/hello.casl:    6:        END
 
 Label::::
 MAIN.LEN ---> #0020
 MAIN ---> #0000
-MAIN.BUF ---> #0013
+MAIN.OBUF ---> #0013
 
 Assemble ../../../../as/hello.casl (1)
-../../../../as/hello.casl:    1:MAIN     START
-../../../../as/hello.casl:    2:         OUT    BUF,LEN
+../../../../as/hello.casl:    1:MAIN    START
+../../../../as/hello.casl:    2:        OUT     OBUF,LEN
 	#0000	#7001
 	#0001	#0000
 	#0002	#7002
@@ -35,9 +35,9 @@ Assemble ../../../../as/hello.casl (1)
 	#000F	#0002
 	#0010	#7120
 	#0011	#7110
-../../../../as/hello.casl:    3:         RET
+../../../../as/hello.casl:    3:        RET
 	#0012	#8100
-../../../../as/hello.casl:    4:BUF      DC     'Hello, World!'
+../../../../as/hello.casl:    4:OBUF    DC      'Hello, World!'
 	#0013	#0048
 	#0014	#0065
 	#0015	#006C
@@ -51,7 +51,7 @@ Assemble ../../../../as/hello.casl (1)
 	#001D	#006C
 	#001E	#0064
 	#001F	#0021
-../../../../as/hello.casl:    5:LEN      DC     13
+../../../../as/hello.casl:    5:LEN     DC      13
 	#0020	#000D
-../../../../as/hello.casl:    6:         END
+../../../../as/hello.casl:    6:        END
 Hello, World!
diff --git a/test/integration/casl2/svc2_out/0.txt b/test/integration/casl2/misc_out_hello/0.txt
similarity index 87%
rename from test/integration/casl2/svc2_out/0.txt
rename to test/integration/casl2/misc_out_hello/0.txt
index 3957e4f..9feb20a 100644
--- a/test/integration/casl2/svc2_out/0.txt
+++ b/test/integration/casl2/misc_out_hello/0.txt
@@ -1,70 +1,77 @@
-../../../../casl2 -slatd ../../../../as/CMD/svc2_out.casl
+../../../../casl2 -slatd ../../../../as/MISC/out/hello1.casl
 
-Assemble ../../../../as/CMD/svc2_out.casl (0)
-../../../../as/CMD/svc2_out.casl:    1:;;; 「OUT」と同等のプログラム
-../../../../as/CMD/svc2_out.casl:    2:OTEST   START
-../../../../as/CMD/svc2_out.casl:    3:        PUSH    0,GR1
-../../../../as/CMD/svc2_out.casl:    4:        PUSH    0,GR2
-../../../../as/CMD/svc2_out.casl:    5:        LAD     GR1,OBUF
-../../../../as/CMD/svc2_out.casl:    6:        LD      GR2,LEN
-../../../../as/CMD/svc2_out.casl:    7:        SVC     2
-../../../../as/CMD/svc2_out.casl:    8:        LAD     GR1,=#A
-../../../../as/CMD/svc2_out.casl:    9:        LAD     GR2,1
-../../../../as/CMD/svc2_out.casl:   10:        SVC     2
-../../../../as/CMD/svc2_out.casl:   11:        POP     GR2
-../../../../as/CMD/svc2_out.casl:   12:        POP     GR1
-../../../../as/CMD/svc2_out.casl:   13:        RET
-../../../../as/CMD/svc2_out.casl:   14:OBUF    DC      'abcd'
-../../../../as/CMD/svc2_out.casl:   15:LEN     DC      4
-../../../../as/CMD/svc2_out.casl:   16:        END
+Assemble ../../../../as/MISC/out/hello1.casl (0)
+../../../../as/MISC/out/hello1.casl:    1:MAIN    START
+../../../../as/MISC/out/hello1.casl:    2:        PUSH    0,GR1
+../../../../as/MISC/out/hello1.casl:    3:        PUSH    0,GR2
+../../../../as/MISC/out/hello1.casl:    4:        LAD     GR1,OBUF
+../../../../as/MISC/out/hello1.casl:    5:        LD      GR2,LEN
+../../../../as/MISC/out/hello1.casl:    6:        SVC     2
+../../../../as/MISC/out/hello1.casl:    7:        LAD     GR1,=#A
+../../../../as/MISC/out/hello1.casl:    8:        LAD     GR2,1
+../../../../as/MISC/out/hello1.casl:    9:        SVC     2
+../../../../as/MISC/out/hello1.casl:   10:        POP     GR2
+../../../../as/MISC/out/hello1.casl:   11:        POP     GR1
+../../../../as/MISC/out/hello1.casl:   12:        RET
+../../../../as/MISC/out/hello1.casl:   13:OBUF    DC      'Hello, World!'
+../../../../as/MISC/out/hello1.casl:   14:LEN     DC      13
+../../../../as/MISC/out/hello1.casl:   15:        END
 
 Label::::
-OTEST ---> #0000
-OTEST.OBUF ---> #0013
-OTEST.LEN ---> #0017
+MAIN.LEN ---> #0020
+MAIN ---> #0000
+MAIN.OBUF ---> #0013
 
-Assemble ../../../../as/CMD/svc2_out.casl (1)
-../../../../as/CMD/svc2_out.casl:    1:;;; 「OUT」と同等のプログラム
-../../../../as/CMD/svc2_out.casl:    2:OTEST   START
-../../../../as/CMD/svc2_out.casl:    3:        PUSH    0,GR1
+Assemble ../../../../as/MISC/out/hello1.casl (1)
+../../../../as/MISC/out/hello1.casl:    1:MAIN    START
+../../../../as/MISC/out/hello1.casl:    2:        PUSH    0,GR1
 	#0000	#7001
 	#0001	#0000
-../../../../as/CMD/svc2_out.casl:    4:        PUSH    0,GR2
+../../../../as/MISC/out/hello1.casl:    3:        PUSH    0,GR2
 	#0002	#7002
 	#0003	#0000
-../../../../as/CMD/svc2_out.casl:    5:        LAD     GR1,OBUF
+../../../../as/MISC/out/hello1.casl:    4:        LAD     GR1,OBUF
 	#0004	#1210
 	#0005	#0013
-../../../../as/CMD/svc2_out.casl:    6:        LD      GR2,LEN
+../../../../as/MISC/out/hello1.casl:    5:        LD      GR2,LEN
 	#0006	#1020
-	#0007	#0017
-../../../../as/CMD/svc2_out.casl:    7:        SVC     2
+	#0007	#0020
+../../../../as/MISC/out/hello1.casl:    6:        SVC     2
 	#0008	#F000
 	#0009	#0002
-../../../../as/CMD/svc2_out.casl:    8:        LAD     GR1,=#A
-	#0018	#000A
+../../../../as/MISC/out/hello1.casl:    7:        LAD     GR1,=#A
+	#0021	#000A
 	#000A	#1210
-	#000B	#0018
-../../../../as/CMD/svc2_out.casl:    9:        LAD     GR2,1
+	#000B	#0021
+../../../../as/MISC/out/hello1.casl:    8:        LAD     GR2,1
 	#000C	#1220
 	#000D	#0001
-../../../../as/CMD/svc2_out.casl:   10:        SVC     2
+../../../../as/MISC/out/hello1.casl:    9:        SVC     2
 	#000E	#F000
 	#000F	#0002
-../../../../as/CMD/svc2_out.casl:   11:        POP     GR2
+../../../../as/MISC/out/hello1.casl:   10:        POP     GR2
 	#0010	#7120
-../../../../as/CMD/svc2_out.casl:   12:        POP     GR1
+../../../../as/MISC/out/hello1.casl:   11:        POP     GR1
 	#0011	#7110
-../../../../as/CMD/svc2_out.casl:   13:        RET
+../../../../as/MISC/out/hello1.casl:   12:        RET
 	#0012	#8100
-../../../../as/CMD/svc2_out.casl:   14:OBUF    DC      'abcd'
-	#0013	#0061
-	#0014	#0062
-	#0015	#0063
-	#0016	#0064
-../../../../as/CMD/svc2_out.casl:   15:LEN     DC      4
-	#0017	#0004
-../../../../as/CMD/svc2_out.casl:   16:        END
+../../../../as/MISC/out/hello1.casl:   13:OBUF    DC      'Hello, World!'
+	#0013	#0048
+	#0014	#0065
+	#0015	#006C
+	#0016	#006C
+	#0017	#006F
+	#0018	#002C
+	#0019	#0020
+	#001A	#0057
+	#001B	#006F
+	#001C	#0072
+	#001D	#006C
+	#001E	#0064
+	#001F	#0021
+../../../../as/MISC/out/hello1.casl:   14:LEN     DC      13
+	#0020	#000D
+../../../../as/MISC/out/hello1.casl:   15:        END
 
 Executing machine codes
 #0000: Register::::
@@ -81,9 +88,9 @@ Executing machine codes
 #0000: FR (OF SF ZF): 000
 #0000: Memory::::
 #0000: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#0000: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#0000: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#0000: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#0000: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#0000: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#0000: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0000: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0000: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0000: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -128,9 +135,9 @@ Executing machine codes
 #0002: FR (OF SF ZF): 000
 #0002: Memory::::
 #0002: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#0002: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#0002: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#0002: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#0002: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#0002: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#0002: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0002: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0002: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0002: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -175,9 +182,9 @@ Executing machine codes
 #0004: FR (OF SF ZF): 000
 #0004: Memory::::
 #0004: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#0004: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#0004: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#0004: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#0004: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#0004: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#0004: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0004: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0004: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0004: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -222,9 +229,9 @@ Executing machine codes
 #0006: FR (OF SF ZF): 000
 #0006: Memory::::
 #0006: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#0006: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#0006: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#0006: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#0006: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#0006: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#0006: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0006: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0006: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0006: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -258,7 +265,7 @@ Executing machine codes
 #0008: Register::::
 #0008: GR0:      0 = #0000 = 0000000000000000
 #0008: GR1:     19 = #0013 = 0000000000010011
-#0008: GR2:      4 = #0004 = 0000000000000100
+#0008: GR2:     13 = #000D = 0000000000001101
 #0008: GR3:      0 = #0000 = 0000000000000000
 #0008: GR4:      0 = #0000 = 0000000000000000
 #0008: GR5:      0 = #0000 = 0000000000000000
@@ -269,9 +276,9 @@ Executing machine codes
 #0008: FR (OF SF ZF): 000
 #0008: Memory::::
 #0008: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#0008: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#0008: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#0008: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#0008: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#0008: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#0008: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0008: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0008: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0008: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -302,10 +309,10 @@ Executing machine codes
 #0008: 01E0: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0008: 01F0: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 
-abcd#000A: Register::::
+Hello, World!#000A: Register::::
 #000A: GR0:      0 = #0000 = 0000000000000000
 #000A: GR1:     19 = #0013 = 0000000000010011
-#000A: GR2:      4 = #0004 = 0000000000000100
+#000A: GR2:     13 = #000D = 0000000000001101
 #000A: GR3:      0 = #0000 = 0000000000000000
 #000A: GR4:      0 = #0000 = 0000000000000000
 #000A: GR5:      0 = #0000 = 0000000000000000
@@ -316,9 +323,9 @@ abcd#000A: Register::::
 #000A: FR (OF SF ZF): 000
 #000A: Memory::::
 #000A: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#000A: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#000A: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#000A: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#000A: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#000A: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#000A: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000A: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000A: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000A: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -351,8 +358,8 @@ abcd#000A: Register::::
 
 #000C: Register::::
 #000C: GR0:      0 = #0000 = 0000000000000000
-#000C: GR1:     24 = #0018 = 0000000000011000
-#000C: GR2:      4 = #0004 = 0000000000000100
+#000C: GR1:     33 = #0021 = 0000000000100001 = '!'
+#000C: GR2:     13 = #000D = 0000000000001101
 #000C: GR3:      0 = #0000 = 0000000000000000
 #000C: GR4:      0 = #0000 = 0000000000000000
 #000C: GR5:      0 = #0000 = 0000000000000000
@@ -363,9 +370,9 @@ abcd#000A: Register::::
 #000C: FR (OF SF ZF): 000
 #000C: Memory::::
 #000C: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#000C: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#000C: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#000C: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#000C: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#000C: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#000C: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000C: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000C: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000C: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -398,7 +405,7 @@ abcd#000A: Register::::
 
 #000E: Register::::
 #000E: GR0:      0 = #0000 = 0000000000000000
-#000E: GR1:     24 = #0018 = 0000000000011000
+#000E: GR1:     33 = #0021 = 0000000000100001 = '!'
 #000E: GR2:      1 = #0001 = 0000000000000001
 #000E: GR3:      0 = #0000 = 0000000000000000
 #000E: GR4:      0 = #0000 = 0000000000000000
@@ -410,9 +417,9 @@ abcd#000A: Register::::
 #000E: FR (OF SF ZF): 000
 #000E: Memory::::
 #000E: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#000E: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#000E: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#000E: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#000E: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#000E: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#000E: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000E: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000E: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #000E: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -446,7 +453,7 @@ abcd#000A: Register::::
 
 #0010: Register::::
 #0010: GR0:      0 = #0000 = 0000000000000000
-#0010: GR1:     24 = #0018 = 0000000000011000
+#0010: GR1:     33 = #0021 = 0000000000100001 = '!'
 #0010: GR2:      1 = #0001 = 0000000000000001
 #0010: GR3:      0 = #0000 = 0000000000000000
 #0010: GR4:      0 = #0000 = 0000000000000000
@@ -458,9 +465,9 @@ abcd#000A: Register::::
 #0010: FR (OF SF ZF): 000
 #0010: Memory::::
 #0010: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#0010: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#0010: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#0010: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#0010: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#0010: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#0010: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0010: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0010: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0010: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -493,7 +500,7 @@ abcd#000A: Register::::
 
 #0011: Register::::
 #0011: GR0:      0 = #0000 = 0000000000000000
-#0011: GR1:     24 = #0018 = 0000000000011000
+#0011: GR1:     33 = #0021 = 0000000000100001 = '!'
 #0011: GR2:      0 = #0000 = 0000000000000000
 #0011: GR3:      0 = #0000 = 0000000000000000
 #0011: GR4:      0 = #0000 = 0000000000000000
@@ -505,9 +512,9 @@ abcd#000A: Register::::
 #0011: FR (OF SF ZF): 000
 #0011: Memory::::
 #0011: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#0011: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#0011: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#0011: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#0011: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#0011: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#0011: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0011: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0011: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0011: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@@ -552,9 +559,9 @@ abcd#000A: Register::::
 #0012: FR (OF SF ZF): 000
 #0012: Memory::::
 #0012: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
-#0012: 0000: 7001 0000 7002 0000 1210 0013 1020 0017 F000 0002 1210 0018 1220 0001 F000 0002
-#0012: 0010: 7120 7110 8100 0061 0062 0063 0064 0004 000A 0000 0000 0000 0000 0000 0000 0000
-#0012: 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+#0012: 0000: 7001 0000 7002 0000 1210 0013 1020 0020 F000 0002 1210 0021 1220 0001 F000 0002
+#0012: 0010: 7120 7110 8100 0048 0065 006C 006C 006F 002C 0020 0057 006F 0072 006C 0064 0021
+#0012: 0020: 000D 000A 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0012: 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0012: 0040: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 #0012: 0050: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
diff --git a/test/integration/casl2/misc_out_hello/Makefile b/test/integration/casl2/misc_out_hello/Makefile
new file mode 100644
index 0000000..ea9a465
--- /dev/null
+++ b/test/integration/casl2/misc_out_hello/Makefile
@@ -0,0 +1,6 @@
+include ../CMD.mk    # YACASL2DIR, CASL2
+CASL2FLAG = -slatd
+ASDIR = $(YACASL2DIR)/as/MISC/out
+ASFILE = $(ASDIR)/hello1.casl
+CMD = $(CASL2) $(CASL2FLAG) $(ASFILE)
+include ../TEST.mk
diff --git a/test/integration/casl2/svc2_out/Makefile b/test/integration/casl2/svc2_out/Makefile
deleted file mode 100644
index 7a21994..0000000
--- a/test/integration/casl2/svc2_out/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-include ../CMD.mk    # YACASL2DIR, CASL2
-CASL2FLAG = -slatd
-ASDIR = $(YACASL2DIR)/as/CMD
-ASFILE = $(ASDIR)/svc2_out.casl
-CMD = $(CASL2) $(CASL2FLAG) $(ASFILE) $(IN)
-include ../TEST.mk
diff --git a/test/integration/comet2/abs_call/a.o b/test/integration/comet2/abs_call/a.o
index 2a88aaf..b41f977 100644
Binary files a/test/integration/comet2/abs_call/a.o and b/test/integration/comet2/abs_call/a.o differ
diff --git a/test/integration/comet2/binout/a.o b/test/integration/comet2/binout/a.o
index b633913..75825e3 100644
Binary files a/test/integration/comet2/binout/a.o and b/test/integration/comet2/binout/a.o differ
diff --git a/test/integration/comet2/count_call/a.o b/test/integration/comet2/count_call/a.o
index a29205e..f505120 100644
Binary files a/test/integration/comet2/count_call/a.o and b/test/integration/comet2/count_call/a.o differ
diff --git a/test/integration/comet2/dc_spc/a.o b/test/integration/comet2/dc_spc/a.o
index 81edc79..9f3f1a1 100644
Binary files a/test/integration/comet2/dc_spc/a.o and b/test/integration/comet2/dc_spc/a.o differ
diff --git a/test/integration/comet2/divl0_call/a.o b/test/integration/comet2/divl0_call/a.o
index 8998484..0a40dc8 100644
Binary files a/test/integration/comet2/divl0_call/a.o and b/test/integration/comet2/divl0_call/a.o differ
diff --git a/test/integration/comet2/divl1_call/a.o b/test/integration/comet2/divl1_call/a.o
index 72c2f64..3086e52 100644
Binary files a/test/integration/comet2/divl1_call/a.o and b/test/integration/comet2/divl1_call/a.o differ
diff --git a/test/integration/comet2/fib_outl/a.o b/test/integration/comet2/fib_outl/a.o
index 0d35469..f39c158 100644
Binary files a/test/integration/comet2/fib_outl/a.o and b/test/integration/comet2/fib_outl/a.o differ
diff --git a/test/integration/comet2/floatedit/a.o b/test/integration/comet2/floatedit/a.o
index 2fa6432..729f4bd 100644
Binary files a/test/integration/comet2/floatedit/a.o and b/test/integration/comet2/floatedit/a.o differ
diff --git a/test/integration/comet2/hanoi/a.o b/test/integration/comet2/hanoi/a.o
index eef0eb6..c41baca 100644
Binary files a/test/integration/comet2/hanoi/a.o and b/test/integration/comet2/hanoi/a.o differ
diff --git a/test/integration/comet2/hello/a.o b/test/integration/comet2/hello/a.o
index 39f258b..ada8b01 100644
Binary files a/test/integration/comet2/hello/a.o and b/test/integration/comet2/hello/a.o differ
diff --git a/test/integration/comet2/iotest/a.o b/test/integration/comet2/iotest/a.o
index 982f352..6426b88 100644
Binary files a/test/integration/comet2/iotest/a.o and b/test/integration/comet2/iotest/a.o differ
diff --git a/test/integration/comet2/literal_spc/a.o b/test/integration/comet2/literal_spc/a.o
index d436e7b..808cfde 100644
Binary files a/test/integration/comet2/literal_spc/a.o and b/test/integration/comet2/literal_spc/a.o differ
diff --git a/test/integration/comet2/minim_call/a.o b/test/integration/comet2/minim_call/a.o
index 8faf784..e5e473c 100644
Binary files a/test/integration/comet2/minim_call/a.o and b/test/integration/comet2/minim_call/a.o differ
diff --git a/test/integration/comet2/svc2_out/0.txt b/test/integration/comet2/misc_out_hello1/0.txt
similarity index 63%
rename from test/integration/comet2/svc2_out/0.txt
rename to test/integration/comet2/misc_out_hello1/0.txt
index 33b36a3..dc0423c 100644
--- a/test/integration/comet2/svc2_out/0.txt
+++ b/test/integration/comet2/misc_out_hello1/0.txt
@@ -1,2 +1,2 @@
 ../../../../comet2 a.o
-abcd
+Hello, World!
\ No newline at end of file
diff --git a/test/integration/comet2/misc_out_hello1/Makefile b/test/integration/comet2/misc_out_hello1/Makefile
new file mode 100644
index 0000000..da52ddf
--- /dev/null
+++ b/test/integration/comet2/misc_out_hello1/Makefile
@@ -0,0 +1,4 @@
+include ../CMD.mk    # YACASL2DIR, CASL2
+ASDIR = $(YACASL2DIR)/as/MISC/out
+ASFILE = $(ASDIR)/hello1.casl
+include ../TEST.mk
diff --git a/test/integration/comet2/misc_out_hello1/a.o b/test/integration/comet2/misc_out_hello1/a.o
new file mode 100644
index 0000000..31e75bb
Binary files /dev/null and b/test/integration/comet2/misc_out_hello1/a.o differ
diff --git a/test/integration/comet2/mula0_call/a.o b/test/integration/comet2/mula0_call/a.o
index 2f211fb..bb277ff 100644
Binary files a/test/integration/comet2/mula0_call/a.o and b/test/integration/comet2/mula0_call/a.o differ
diff --git a/test/integration/comet2/mula1_call/a.o b/test/integration/comet2/mula1_call/a.o
index fc49ccc..c4afdf4 100644
Binary files a/test/integration/comet2/mula1_call/a.o and b/test/integration/comet2/mula1_call/a.o differ
diff --git a/test/integration/comet2/mula2_call/a.o b/test/integration/comet2/mula2_call/a.o
index cc874b1..a40f6d8 100644
Binary files a/test/integration/comet2/mula2_call/a.o and b/test/integration/comet2/mula2_call/a.o differ
diff --git a/test/integration/comet2/mull0_call/a.o b/test/integration/comet2/mull0_call/a.o
index e3b258f..31a2e6d 100644
Binary files a/test/integration/comet2/mull0_call/a.o and b/test/integration/comet2/mull0_call/a.o differ
diff --git a/test/integration/comet2/mull1_call/a.o b/test/integration/comet2/mull1_call/a.o
index ce01c57..1c9b35c 100644
Binary files a/test/integration/comet2/mull1_call/a.o and b/test/integration/comet2/mull1_call/a.o differ
diff --git a/test/integration/comet2/out0/a.o b/test/integration/comet2/out0/a.o
index d626f59..f9896ef 100644
Binary files a/test/integration/comet2/out0/a.o and b/test/integration/comet2/out0/a.o differ
diff --git a/test/integration/comet2/out1/a.o b/test/integration/comet2/out1/a.o
index cb2b4f4..cc5ccc3 100644
Binary files a/test/integration/comet2/out1/a.o and b/test/integration/comet2/out1/a.o differ
diff --git a/test/integration/comet2/outa_call/a.o b/test/integration/comet2/outa_call/a.o
index e1706f3..dbb9e19 100644
Binary files a/test/integration/comet2/outa_call/a.o and b/test/integration/comet2/outa_call/a.o differ
diff --git a/test/integration/comet2/outb_call/a.o b/test/integration/comet2/outb_call/a.o
index 880c11d..54d70fd 100644
Binary files a/test/integration/comet2/outb_call/a.o and b/test/integration/comet2/outb_call/a.o differ
diff --git a/test/integration/comet2/outd_q15_call/a.o b/test/integration/comet2/outd_q15_call/a.o
index ff602eb..1073218 100644
Binary files a/test/integration/comet2/outd_q15_call/a.o and b/test/integration/comet2/outd_q15_call/a.o differ
diff --git a/test/integration/comet2/outl_call/a.o b/test/integration/comet2/outl_call/a.o
index 005a726..b154827 100644
Binary files a/test/integration/comet2/outl_call/a.o and b/test/integration/comet2/outl_call/a.o differ
diff --git a/test/integration/comet2/ptn1/a.o b/test/integration/comet2/ptn1/a.o
index 3c9e9da..8c6ee51 100644
Binary files a/test/integration/comet2/ptn1/a.o and b/test/integration/comet2/ptn1/a.o differ
diff --git a/test/integration/comet2/ptn2/a.o b/test/integration/comet2/ptn2/a.o
index e0a752f..97abaff 100644
Binary files a/test/integration/comet2/ptn2/a.o and b/test/integration/comet2/ptn2/a.o differ
diff --git a/test/integration/comet2/ptn3/a.o b/test/integration/comet2/ptn3/a.o
index b0b6d2a..06d8dc4 100644
Binary files a/test/integration/comet2/ptn3/a.o and b/test/integration/comet2/ptn3/a.o differ
diff --git a/test/integration/comet2/ptn4/a.o b/test/integration/comet2/ptn4/a.o
index 66676e2..5399c9d 100644
Binary files a/test/integration/comet2/ptn4/a.o and b/test/integration/comet2/ptn4/a.o differ
diff --git a/test/integration/comet2/rev_call/a.o b/test/integration/comet2/rev_call/a.o
index b9045f0..690255c 100644
Binary files a/test/integration/comet2/rev_call/a.o and b/test/integration/comet2/rev_call/a.o differ
diff --git a/test/integration/comet2/sum_call/a.o b/test/integration/comet2/sum_call/a.o
index fd98187..8a36ef2 100644
Binary files a/test/integration/comet2/sum_call/a.o and b/test/integration/comet2/sum_call/a.o differ
diff --git a/test/integration/comet2/summary/a.o b/test/integration/comet2/summary/a.o
index 926003a..ba11c73 100644
Binary files a/test/integration/comet2/summary/a.o and b/test/integration/comet2/summary/a.o differ
diff --git a/test/integration/comet2/svc2_out/Makefile b/test/integration/comet2/svc2_out/Makefile
deleted file mode 100644
index ecef17b..0000000
--- a/test/integration/comet2/svc2_out/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../CMD.mk    # YACASL2DIR, CASL2
-ASDIR = $(YACASL2DIR)/as/CMD
-ASFILE = $(ASDIR)/svc2_out.casl
-include ../TEST.mk
diff --git a/test/integration/comet2/svc2_out/a.o b/test/integration/comet2/svc2_out/a.o
deleted file mode 100644
index 2cd91af..0000000
Binary files a/test/integration/comet2/svc2_out/a.o and /dev/null differ
diff --git a/test/unit/TEST.mk b/test/unit/TEST.mk
index 7e49c83..4d473e9 100644
--- a/test/unit/TEST.mk
+++ b/test/unit/TEST.mk
@@ -11,9 +11,9 @@ SRCDIR = ../../../src
 INCLUDE = ../../../include
 CC = gcc
 CFLAGS = -g -Wall -I $(INCLUDE)
-COMMONSRC = $(SRCDIR)/word.c $(SRCDIR)/struct.c $(SRCDIR)/hash.c $(SRCDIR)/cmd.c $(SRCDIR)/cerr.c
-ASSRC = $(SRCDIR)/assemble.c $(SRCDIR)/token.c $(SRCDIR)/label.c $(SRCDIR)/macro.c
-EXECSRC = $(SRCDIR)/exec.c $(SRCDIR)/dump.c
+COMMONSRC = $(SRCDIR)/word.o $(SRCDIR)/struct.o $(SRCDIR)/hash.o $(SRCDIR)/cmd.o $(SRCDIR)/cerr.o
+ASSRC = $(SRCDIR)/assemble.o $(SRCDIR)/token.o $(SRCDIR)/label.o $(SRCDIR)/macro.o
+EXECSRC = $(SRCDIR)/exec.o $(SRCDIR)/dump.o
 
 ifeq "$(UCLASS)" "AS"
   SRC = $(COMMONSRC) $(ASSRC)
@@ -33,6 +33,7 @@ clean:
 cleanall: clean
 	@rm -f 0.txt
 a.out: $(SRC) $(TESTSRCFILE)
+	@make -C $(SRCDIR)
 	@gcc $(CFLAGS) $(SRC) $(TESTSRCFILE)
 0.txt 1.txt: a.out
 	@./a.out >$@ 2>&1
diff --git a/test/unit/print_cmdtype_code/print_cmdtype_code.c b/test/unit/print_cmdtype_code/print_cmdtype_code.c
index 9410051..35dba2c 100644
--- a/test/unit/print_cmdtype_code/print_cmdtype_code.c
+++ b/test/unit/print_cmdtype_code/print_cmdtype_code.c
@@ -11,3 +11,39 @@ int main(){
     }
     return 0;
 }
+
+/* エラー番号とエラーメッセージ */
+CERRARRAY cerr[] = {
+    { 101, "label already defined" },
+    { 102, "label table is full" },
+    { 103, "label not found" },
+    { 104, "label length is too long" },
+    { 105, "no command in the line" },
+    { 106, "operand count mismatch" },
+    { 107, "no label in START" },
+    { 108, "not command of operand \"r\"" },
+    { 109, "not command of operand \"r1,r2\"" },
+    { 110, "not command of operand \"r,adr[,x]\"" },
+    { 111, "not command of operand \"adr[,x]\"" },
+    { 112, "not command of no operand" },
+    { 113, "command not defined" },
+    { 114, "not integer" },
+    { 115, "not hex" },
+    { 116, "out of hex range" },
+    { 117, "operand is too many" },
+    { 118, "operand length is too long" },
+    { 119, "out of COMET II memory" },
+    { 120, "GR0 in operand x" },
+    { 121, "cannot get operand token" },
+    { 122, "cannot create hash table" },
+    { 123, "illegal string" },
+    { 124, "more than one character in literal" },
+    { 201, "execute - out of COMET II memory" },
+    { 202, "SVC input - out of Input memory" },
+    { 203, "SVC output - out of COMET II memory" },
+    { 204, "Program Register (PR) - out of COMET II memory" },
+    { 205, "Stack Pointer (SP) - cannot allocate stack buffer" },
+    { 206, "Address - out of COMET II memory" },
+    { 207, "Stack Pointer (SP) - out of COMET II memory" },
+    { 0, NULL },
+};
diff --git a/test/unit/print_code_type/print_code_type.c b/test/unit/print_code_type/print_code_type.c
index e6a96db..7a925ff 100644
--- a/test/unit/print_code_type/print_code_type.c
+++ b/test/unit/print_code_type/print_code_type.c
@@ -1,5 +1,8 @@
 #include "casl2.h"
-int main(){
+#include "cerr.h"
+
+int main()
+{
     puts("== CODE_TYPE TABLE ==");
     create_code_type();
     print_code_type();
@@ -11,3 +14,39 @@ int main(){
     }
     return 0;
 }
+
+/* エラー番号とエラーメッセージ */
+CERRARRAY cerr[] = {
+    { 101, "label already defined" },
+    { 102, "label table is full" },
+    { 103, "label not found" },
+    { 104, "label length is too long" },
+    { 105, "no command in the line" },
+    { 106, "operand count mismatch" },
+    { 107, "no label in START" },
+    { 108, "not command of operand \"r\"" },
+    { 109, "not command of operand \"r1,r2\"" },
+    { 110, "not command of operand \"r,adr[,x]\"" },
+    { 111, "not command of operand \"adr[,x]\"" },
+    { 112, "not command of no operand" },
+    { 113, "command not defined" },
+    { 114, "not integer" },
+    { 115, "not hex" },
+    { 116, "out of hex range" },
+    { 117, "operand is too many" },
+    { 118, "operand length is too long" },
+    { 119, "out of COMET II memory" },
+    { 120, "GR0 in operand x" },
+    { 121, "cannot get operand token" },
+    { 122, "cannot create hash table" },
+    { 123, "illegal string" },
+    { 124, "more than one character in literal" },
+    { 201, "execute - out of COMET II memory" },
+    { 202, "SVC input - out of Input memory" },
+    { 203, "SVC output - out of COMET II memory" },
+    { 204, "Program Register (PR) - out of COMET II memory" },
+    { 205, "Stack Pointer (SP) - cannot allocate stack buffer" },
+    { 206, "Address - out of COMET II memory" },
+    { 207, "Stack Pointer (SP) - out of COMET II memory" },
+    { 0, NULL },
+};