From: j8takagi Date: Mon, 25 Jan 2010 15:19:36 +0000 (+0900) Subject: ソースコード表示時の行数表示形式を調整 X-Git-Tag: v0.1~79 X-Git-Url: https://j8takagi.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01f07a603481e84701561afb82dc78e3fa83af21;p=YACASL2.git ソースコード表示時の行数表示形式を調整 --- diff --git a/src/assemble.c b/src/assemble.c index 25762c3..74a6a75 100644 --- a/src/assemble.c +++ b/src/assemble.c @@ -452,7 +452,7 @@ bool assemble(const char *file, PASS pass) } lineno++; if((pass == FIRST && srcmode == true) || (pass == SECOND && asdetailmode == true)) { - fprintf(stdout, "%s:%d:%s", file, lineno, line); + fprintf(stdout, "%s:%5d:%s", file, lineno, line); } if((cmdl = linetok(line)) != NULL) { if(pass == FIRST && cmdl->label != NULL) { diff --git a/test/integration/casl2/abs_call/0.txt b/test/integration/casl2/abs_call/0.txt index 30f6615..8375a64 100644 --- a/test/integration/casl2/abs_call/0.txt +++ b/test/integration/casl2/abs_call/0.txt @@ -1,156 +1,156 @@ ../../../../casl2 -sla ../../../../as/FUNC/abs_call.casl ../../../../as/FUNC/abs.casl ../../../../as/FUNC/outa.casl Assemble ../../../../as/FUNC/abs_call.casl (0) -../../../../as/FUNC/abs_call.casl:1:;;; ABSを呼び出す -../../../../as/FUNC/abs_call.casl:2:;;; casl2 abs_call.casl abs.casl outa.casl -../../../../as/FUNC/abs_call.casl:3:MAIN START -../../../../as/FUNC/abs_call.casl:4: LAD GR2,0 -../../../../as/FUNC/abs_call.casl:5:MLOOP CPA GR2,MLEN -../../../../as/FUNC/abs_call.casl:6: JZE MFIN -../../../../as/FUNC/abs_call.casl:7: LD GR1,MVAL,GR2 -../../../../as/FUNC/abs_call.casl:8: CALL ABS -../../../../as/FUNC/abs_call.casl:9: CALL OUTA -../../../../as/FUNC/abs_call.casl:10: LAD GR2,1,GR2 -../../../../as/FUNC/abs_call.casl:11: JUMP MLOOP -../../../../as/FUNC/abs_call.casl:12:MFIN RET -../../../../as/FUNC/abs_call.casl:13:MVAL DC 12,-12,1,-1,32767,-32767,0,-32768 -../../../../as/FUNC/abs_call.casl:14:MLEN DC 8 -../../../../as/FUNC/abs_call.casl:15: END +../../../../as/FUNC/abs_call.casl: 1:;;; ABSを呼び出す +../../../../as/FUNC/abs_call.casl: 2:;;; casl2 abs_call.casl abs.casl outa.casl +../../../../as/FUNC/abs_call.casl: 3:MAIN START +../../../../as/FUNC/abs_call.casl: 4: LAD GR2,0 +../../../../as/FUNC/abs_call.casl: 5:MLOOP CPA GR2,MLEN +../../../../as/FUNC/abs_call.casl: 6: JZE MFIN +../../../../as/FUNC/abs_call.casl: 7: LD GR1,MVAL,GR2 +../../../../as/FUNC/abs_call.casl: 8: CALL ABS +../../../../as/FUNC/abs_call.casl: 9: CALL OUTA +../../../../as/FUNC/abs_call.casl: 10: LAD GR2,1,GR2 +../../../../as/FUNC/abs_call.casl: 11: JUMP MLOOP +../../../../as/FUNC/abs_call.casl: 12:MFIN RET +../../../../as/FUNC/abs_call.casl: 13:MVAL DC 12,-12,1,-1,32767,-32767,0,-32768 +../../../../as/FUNC/abs_call.casl: 14:MLEN DC 8 +../../../../as/FUNC/abs_call.casl: 15: END Assemble ../../../../as/FUNC/abs.casl (0) -../../../../as/FUNC/abs.casl:1:;;; GR1を絶対値に変換する -../../../../as/FUNC/abs.casl:2:ABS START -../../../../as/FUNC/abs.casl:3: AND GR1,GR1 -../../../../as/FUNC/abs.casl:4: JPL ABSFIN -../../../../as/FUNC/abs.casl:5: JZE ABSFIN -../../../../as/FUNC/abs.casl:6: XOR GR1,=#FFFF -../../../../as/FUNC/abs.casl:7: LAD GR1,1,GR1 -../../../../as/FUNC/abs.casl:8:ABSFIN RET -../../../../as/FUNC/abs.casl:9: END +../../../../as/FUNC/abs.casl: 1:;;; GR1を絶対値に変換する +../../../../as/FUNC/abs.casl: 2:ABS START +../../../../as/FUNC/abs.casl: 3: AND GR1,GR1 +../../../../as/FUNC/abs.casl: 4: JPL ABSFIN +../../../../as/FUNC/abs.casl: 5: JZE ABSFIN +../../../../as/FUNC/abs.casl: 6: XOR GR1,=#FFFF +../../../../as/FUNC/abs.casl: 7: LAD GR1,1,GR1 +../../../../as/FUNC/abs.casl: 8:ABSFIN RET +../../../../as/FUNC/abs.casl: 9: END Assemble ../../../../as/FUNC/outa.casl (0) -../../../../as/FUNC/outa.casl:1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 -../../../../as/FUNC/outa.casl:2:OUTA START -../../../../as/FUNC/outa.casl:3: RPUSH -../../../../as/FUNC/outa.casl:4: LAD GR2,10 ; GR2に10進数の「10」を格納。 -../../../../as/FUNC/outa.casl:5: LAD GR0,0 ; GR0 <- 0 -../../../../as/FUNC/outa.casl:6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 -../../../../as/FUNC/outa.casl:7: ST GR0,LEN ; LENの初期化 -../../../../as/FUNC/outa.casl:8: AND GR1,GR1 ; GR1をテスト -../../../../as/FUNC/outa.casl:9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ -../../../../as/FUNC/outa.casl:10: JPL STI ; GR1が正数の場合、STIにジャンプ -../../../../as/FUNC/outa.casl:11: LAD GR4,1 ; GR1が負数の場合、GR4をオン -../../../../as/FUNC/outa.casl:12: CALL OABS ; GR1を正数に変換 -../../../../as/FUNC/outa.casl:13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 -../../../../as/FUNC/outa.casl:14: JMI STLST ; ↓ -../../../../as/FUNC/outa.casl:15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 -../../../../as/FUNC/outa.casl:16: LD GR1,GR3 ; GR1にGR3をコピー -../../../../as/FUNC/outa.casl:17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 -../../../../as/FUNC/outa.casl:18: CALL STSTR ; GR1をSTR領域に格納 -../../../../as/FUNC/outa.casl:19: LD GR1,GR0 ; GR0をGR1にコピー -../../../../as/FUNC/outa.casl:20: JUMP STI ; ループ終端 -../../../../as/FUNC/outa.casl:21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 -../../../../as/FUNC/outa.casl:22: CALL STSTR ; GR1をSTR領域に格納 -../../../../as/FUNC/outa.casl:23: AND GR4,GR4 ; 正数の場合 -../../../../as/FUNC/outa.casl:24: JZE PRT ; ↓ -../../../../as/FUNC/outa.casl:25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 -../../../../as/FUNC/outa.casl:26: CALL STSTR ; ↓ -../../../../as/FUNC/outa.casl:27: JUMP PRT ; PRTにジャンプ -../../../../as/FUNC/outa.casl:28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 -../../../../as/FUNC/outa.casl:29: CALL STSTR ; ↓ -../../../../as/FUNC/outa.casl:30:PRT LD GR2,LEN ; GR2にLENの値を格納 -../../../../as/FUNC/outa.casl:31: LAD GR1,STR ; GR1に文字列のアドレスを格納 -../../../../as/FUNC/outa.casl:32: CALL REV ; 文字列を逆順に並べ替え -../../../../as/FUNC/outa.casl:33: OUT STR,LEN ; 文字列を出力 -../../../../as/FUNC/outa.casl:34: RPOP -../../../../as/FUNC/outa.casl:35: RET -../../../../as/FUNC/outa.casl:36:STR DS 17 -../../../../as/FUNC/outa.casl:37:LEN DS 1 -../../../../as/FUNC/outa.casl:38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' -../../../../as/FUNC/outa.casl:39: END -../../../../as/FUNC/outa.casl:40:;; GR1をSTR領域に格納し、LENをインクリメント -../../../../as/FUNC/outa.casl:41:STSTR START -../../../../as/FUNC/outa.casl:42: PUSH 0,GR1 -../../../../as/FUNC/outa.casl:43: PUSH 0,GR2 -../../../../as/FUNC/outa.casl:44: LD GR2,LEN ; GR2にLENの値をロード -../../../../as/FUNC/outa.casl:45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 -../../../../as/FUNC/outa.casl:46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 -../../../../as/FUNC/outa.casl:47: ST GR2,LEN ; LENにGR2を格納 -../../../../as/FUNC/outa.casl:48: POP GR2 -../../../../as/FUNC/outa.casl:49: POP GR1 -../../../../as/FUNC/outa.casl:50: RET -../../../../as/FUNC/outa.casl:51: END -../../../../as/FUNC/outa.casl:52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する -../../../../as/FUNC/outa.casl:53:;;; 0〜65535の範囲の数値を扱う -../../../../as/FUNC/outa.casl:54:ODIVL START -../../../../as/FUNC/outa.casl:55: PUSH 0,GR1 -../../../../as/FUNC/outa.casl:56: PUSH 0,GR2 -../../../../as/FUNC/outa.casl:57: PUSH 0,GR4 -../../../../as/FUNC/outa.casl:58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ -../../../../as/FUNC/outa.casl:59: JZE ODFIN ; ↓ -../../../../as/FUNC/outa.casl:60: ST GR2,ODY ; ODYにGR2の初期値を保存 -../../../../as/FUNC/outa.casl:61: LAD GR0,0 ; GR0の初期化 -../../../../as/FUNC/outa.casl:62: LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:63: LAD GR4,1 ; GR4の初期化。対象ビットを表す -../../../../as/FUNC/outa.casl:64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 -../../../../as/FUNC/outa.casl:65: JPL ODLOOP ; ↓ -../../../../as/FUNC/outa.casl:66: SLL GR4,1 ; GR4を1回左シフト -../../../../as/FUNC/outa.casl:67: SLL GR2,1 ; GR2を1回左シフト -../../../../as/FUNC/outa.casl:68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ -../../../../as/FUNC/outa.casl:69: JUMP ODSL ; ループ終端 -../../../../as/FUNC/outa.casl:70:ODYOV SRL GR2,1 -../../../../as/FUNC/outa.casl:71: LAD GR2,#8000,GR2 -../../../../as/FUNC/outa.casl:72: SRL GR4,1 -../../../../as/FUNC/outa.casl:73: JUMP ODLPIN -../../../../as/FUNC/outa.casl:74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト -../../../../as/FUNC/outa.casl:75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:76: SRL GR2,1 ; GR2を1回右シフト -../../../../as/FUNC/outa.casl:77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:78: JMI ODFIN ; ↓ -../../../../as/FUNC/outa.casl:79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ -../../../../as/FUNC/outa.casl:80: JMI ODLOOP ; ↓ -../../../../as/FUNC/outa.casl:81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 -../../../../as/FUNC/outa.casl:82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 -../../../../as/FUNC/outa.casl:83: JUMP ODLOOP ; ループ終端 -../../../../as/FUNC/outa.casl:84:ODFIN LD GR3,GR1 -../../../../as/FUNC/outa.casl:85: POP GR4 -../../../../as/FUNC/outa.casl:86: POP GR2 -../../../../as/FUNC/outa.casl:87: POP GR1 -../../../../as/FUNC/outa.casl:88: RET -../../../../as/FUNC/outa.casl:89:ODY DS 1 -../../../../as/FUNC/outa.casl:90: END -../../../../as/FUNC/outa.casl:91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える -../../../../as/FUNC/outa.casl:92:;; 例: 12345 -> 54321、54321- -> -12345 -../../../../as/FUNC/outa.casl:93:REV START -../../../../as/FUNC/outa.casl:94: RPUSH -../../../../as/FUNC/outa.casl:95: LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:97: JZE RNEXT ; ↓ -../../../../as/FUNC/outa.casl:98: LD GR4,GR1 ; GR4にGR1の値をコピー -../../../../as/FUNC/outa.casl:99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 -../../../../as/FUNC/outa.casl:100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 -../../../../as/FUNC/outa.casl:101: PUSH 0,GR5 ; GR5をプッシュ -../../../../as/FUNC/outa.casl:102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 -../../../../as/FUNC/outa.casl:103: JUMP RPU ; ループ終端 -../../../../as/FUNC/outa.casl:104:RNEXT LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:106: JZE RFIN ; ↓ -../../../../as/FUNC/outa.casl:107: POP GR5 ; GR5にポップ -../../../../as/FUNC/outa.casl:108: LD GR4,GR1 ; GR4にGR1の値をコピー -../../../../as/FUNC/outa.casl:109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 -../../../../as/FUNC/outa.casl:110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 -../../../../as/FUNC/outa.casl:111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 -../../../../as/FUNC/outa.casl:112: JUMP RPO ; ループ終端 -../../../../as/FUNC/outa.casl:113:RFIN RPOP -../../../../as/FUNC/outa.casl:114: RET -../../../../as/FUNC/outa.casl:115: END -../../../../as/FUNC/outa.casl:116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 -../../../../as/FUNC/outa.casl:117:;; 例: -10 -> 10, -20 -> 20 -../../../../as/FUNC/outa.casl:118:OABS START -../../../../as/FUNC/outa.casl:119: XOR GR1,=#FFFF ; GR1の値を反転 -../../../../as/FUNC/outa.casl:120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 -../../../../as/FUNC/outa.casl:121: RET -../../../../as/FUNC/outa.casl:122: END +../../../../as/FUNC/outa.casl: 1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 +../../../../as/FUNC/outa.casl: 2:OUTA START +../../../../as/FUNC/outa.casl: 3: RPUSH +../../../../as/FUNC/outa.casl: 4: LAD GR2,10 ; GR2に10進数の「10」を格納。 +../../../../as/FUNC/outa.casl: 5: LAD GR0,0 ; GR0 <- 0 +../../../../as/FUNC/outa.casl: 6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 +../../../../as/FUNC/outa.casl: 7: ST GR0,LEN ; LENの初期化 +../../../../as/FUNC/outa.casl: 8: AND GR1,GR1 ; GR1をテスト +../../../../as/FUNC/outa.casl: 9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ +../../../../as/FUNC/outa.casl: 10: JPL STI ; GR1が正数の場合、STIにジャンプ +../../../../as/FUNC/outa.casl: 11: LAD GR4,1 ; GR1が負数の場合、GR4をオン +../../../../as/FUNC/outa.casl: 12: CALL OABS ; GR1を正数に変換 +../../../../as/FUNC/outa.casl: 13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 +../../../../as/FUNC/outa.casl: 14: JMI STLST ; ↓ +../../../../as/FUNC/outa.casl: 15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 +../../../../as/FUNC/outa.casl: 16: LD GR1,GR3 ; GR1にGR3をコピー +../../../../as/FUNC/outa.casl: 17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 18: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 19: LD GR1,GR0 ; GR0をGR1にコピー +../../../../as/FUNC/outa.casl: 20: JUMP STI ; ループ終端 +../../../../as/FUNC/outa.casl: 21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 22: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 23: AND GR4,GR4 ; 正数の場合 +../../../../as/FUNC/outa.casl: 24: JZE PRT ; ↓ +../../../../as/FUNC/outa.casl: 25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 26: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 27: JUMP PRT ; PRTにジャンプ +../../../../as/FUNC/outa.casl: 28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 29: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 30:PRT LD GR2,LEN ; GR2にLENの値を格納 +../../../../as/FUNC/outa.casl: 31: LAD GR1,STR ; GR1に文字列のアドレスを格納 +../../../../as/FUNC/outa.casl: 32: CALL REV ; 文字列を逆順に並べ替え +../../../../as/FUNC/outa.casl: 33: OUT STR,LEN ; 文字列を出力 +../../../../as/FUNC/outa.casl: 34: RPOP +../../../../as/FUNC/outa.casl: 35: RET +../../../../as/FUNC/outa.casl: 36:STR DS 17 +../../../../as/FUNC/outa.casl: 37:LEN DS 1 +../../../../as/FUNC/outa.casl: 38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' +../../../../as/FUNC/outa.casl: 39: END +../../../../as/FUNC/outa.casl: 40:;; GR1をSTR領域に格納し、LENをインクリメント +../../../../as/FUNC/outa.casl: 41:STSTR START +../../../../as/FUNC/outa.casl: 42: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 43: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 44: LD GR2,LEN ; GR2にLENの値をロード +../../../../as/FUNC/outa.casl: 45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 +../../../../as/FUNC/outa.casl: 46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 +../../../../as/FUNC/outa.casl: 47: ST GR2,LEN ; LENにGR2を格納 +../../../../as/FUNC/outa.casl: 48: POP GR2 +../../../../as/FUNC/outa.casl: 49: POP GR1 +../../../../as/FUNC/outa.casl: 50: RET +../../../../as/FUNC/outa.casl: 51: END +../../../../as/FUNC/outa.casl: 52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する +../../../../as/FUNC/outa.casl: 53:;;; 0〜65535の範囲の数値を扱う +../../../../as/FUNC/outa.casl: 54:ODIVL START +../../../../as/FUNC/outa.casl: 55: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 56: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 57: PUSH 0,GR4 +../../../../as/FUNC/outa.casl: 58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ +../../../../as/FUNC/outa.casl: 59: JZE ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 60: ST GR2,ODY ; ODYにGR2の初期値を保存 +../../../../as/FUNC/outa.casl: 61: LAD GR0,0 ; GR0の初期化 +../../../../as/FUNC/outa.casl: 62: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 63: LAD GR4,1 ; GR4の初期化。対象ビットを表す +../../../../as/FUNC/outa.casl: 64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 +../../../../as/FUNC/outa.casl: 65: JPL ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 66: SLL GR4,1 ; GR4を1回左シフト +../../../../as/FUNC/outa.casl: 67: SLL GR2,1 ; GR2を1回左シフト +../../../../as/FUNC/outa.casl: 68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ +../../../../as/FUNC/outa.casl: 69: JUMP ODSL ; ループ終端 +../../../../as/FUNC/outa.casl: 70:ODYOV SRL GR2,1 +../../../../as/FUNC/outa.casl: 71: LAD GR2,#8000,GR2 +../../../../as/FUNC/outa.casl: 72: SRL GR4,1 +../../../../as/FUNC/outa.casl: 73: JUMP ODLPIN +../../../../as/FUNC/outa.casl: 74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト +../../../../as/FUNC/outa.casl: 75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 76: SRL GR2,1 ; GR2を1回右シフト +../../../../as/FUNC/outa.casl: 77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 78: JMI ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ +../../../../as/FUNC/outa.casl: 80: JMI ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 +../../../../as/FUNC/outa.casl: 82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 +../../../../as/FUNC/outa.casl: 83: JUMP ODLOOP ; ループ終端 +../../../../as/FUNC/outa.casl: 84:ODFIN LD GR3,GR1 +../../../../as/FUNC/outa.casl: 85: POP GR4 +../../../../as/FUNC/outa.casl: 86: POP GR2 +../../../../as/FUNC/outa.casl: 87: POP GR1 +../../../../as/FUNC/outa.casl: 88: RET +../../../../as/FUNC/outa.casl: 89:ODY DS 1 +../../../../as/FUNC/outa.casl: 90: END +../../../../as/FUNC/outa.casl: 91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える +../../../../as/FUNC/outa.casl: 92:;; 例: 12345 -> 54321、54321- -> -12345 +../../../../as/FUNC/outa.casl: 93:REV START +../../../../as/FUNC/outa.casl: 94: RPUSH +../../../../as/FUNC/outa.casl: 95: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 97: JZE RNEXT ; ↓ +../../../../as/FUNC/outa.casl: 98: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 +../../../../as/FUNC/outa.casl: 101: PUSH 0,GR5 ; GR5をプッシュ +../../../../as/FUNC/outa.casl: 102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 103: JUMP RPU ; ループ終端 +../../../../as/FUNC/outa.casl: 104:RNEXT LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 106: JZE RFIN ; ↓ +../../../../as/FUNC/outa.casl: 107: POP GR5 ; GR5にポップ +../../../../as/FUNC/outa.casl: 108: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 +../../../../as/FUNC/outa.casl: 111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 112: JUMP RPO ; ループ終端 +../../../../as/FUNC/outa.casl: 113:RFIN RPOP +../../../../as/FUNC/outa.casl: 114: RET +../../../../as/FUNC/outa.casl: 115: END +../../../../as/FUNC/outa.casl: 116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 +../../../../as/FUNC/outa.casl: 117:;; 例: -10 -> 10, -20 -> 20 +../../../../as/FUNC/outa.casl: 118:OABS START +../../../../as/FUNC/outa.casl: 119: XOR GR1,=#FFFF ; GR1の値を反転 +../../../../as/FUNC/outa.casl: 120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 +../../../../as/FUNC/outa.casl: 121: RET +../../../../as/FUNC/outa.casl: 122: END Label:::: OUTA.STI ---> #0043 @@ -184,36 +184,36 @@ ODIVL.ODLOOP ---> #00EA ODIVL.ODLPIN ---> #00F7 Assemble ../../../../as/FUNC/abs_call.casl (1) -../../../../as/FUNC/abs_call.casl:1:;;; ABSを呼び出す -../../../../as/FUNC/abs_call.casl:2:;;; casl2 abs_call.casl abs.casl outa.casl -../../../../as/FUNC/abs_call.casl:3:MAIN START -../../../../as/FUNC/abs_call.casl:4: LAD GR2,0 +../../../../as/FUNC/abs_call.casl: 1:;;; ABSを呼び出す +../../../../as/FUNC/abs_call.casl: 2:;;; casl2 abs_call.casl abs.casl outa.casl +../../../../as/FUNC/abs_call.casl: 3:MAIN START +../../../../as/FUNC/abs_call.casl: 4: LAD GR2,0 #0000 #1220 #0001 #0000 -../../../../as/FUNC/abs_call.casl:5:MLOOP CPA GR2,MLEN +../../../../as/FUNC/abs_call.casl: 5:MLOOP CPA GR2,MLEN #0002 #4020 #0003 #0019 -../../../../as/FUNC/abs_call.casl:6: JZE MFIN +../../../../as/FUNC/abs_call.casl: 6: JZE MFIN #0004 #6300 #0005 #0010 -../../../../as/FUNC/abs_call.casl:7: LD GR1,MVAL,GR2 +../../../../as/FUNC/abs_call.casl: 7: LD GR1,MVAL,GR2 #0006 #1012 #0007 #0011 -../../../../as/FUNC/abs_call.casl:8: CALL ABS +../../../../as/FUNC/abs_call.casl: 8: CALL ABS #0008 #8000 #0009 #001A -../../../../as/FUNC/abs_call.casl:9: CALL OUTA +../../../../as/FUNC/abs_call.casl: 9: CALL OUTA #000A #8000 #000B #0024 -../../../../as/FUNC/abs_call.casl:10: LAD GR2,1,GR2 +../../../../as/FUNC/abs_call.casl: 10: LAD GR2,1,GR2 #000C #1222 #000D #0001 -../../../../as/FUNC/abs_call.casl:11: JUMP MLOOP +../../../../as/FUNC/abs_call.casl: 11: JUMP MLOOP #000E #6400 #000F #0002 -../../../../as/FUNC/abs_call.casl:12:MFIN RET +../../../../as/FUNC/abs_call.casl: 12:MFIN RET #0010 #8100 -../../../../as/FUNC/abs_call.casl:13:MVAL DC 12,-12,1,-1,32767,-32767,0,-32768 +../../../../as/FUNC/abs_call.casl: 13:MVAL DC 12,-12,1,-1,32767,-32767,0,-32768 #0011 #000C #0012 #FFF4 #0013 #0001 @@ -222,36 +222,36 @@ Assemble ../../../../as/FUNC/abs_call.casl (1) #0016 #8001 #0017 #0000 #0018 #8000 -../../../../as/FUNC/abs_call.casl:14:MLEN DC 8 +../../../../as/FUNC/abs_call.casl: 14:MLEN DC 8 #0019 #0008 -../../../../as/FUNC/abs_call.casl:15: END +../../../../as/FUNC/abs_call.casl: 15: END Assemble ../../../../as/FUNC/abs.casl (1) -../../../../as/FUNC/abs.casl:1:;;; GR1を絶対値に変換する -../../../../as/FUNC/abs.casl:2:ABS START -../../../../as/FUNC/abs.casl:3: AND GR1,GR1 +../../../../as/FUNC/abs.casl: 1:;;; GR1を絶対値に変換する +../../../../as/FUNC/abs.casl: 2:ABS START +../../../../as/FUNC/abs.casl: 3: AND GR1,GR1 #001A #3411 -../../../../as/FUNC/abs.casl:4: JPL ABSFIN +../../../../as/FUNC/abs.casl: 4: JPL ABSFIN #001B #6500 #001C #0023 -../../../../as/FUNC/abs.casl:5: JZE ABSFIN +../../../../as/FUNC/abs.casl: 5: JZE ABSFIN #001D #6300 #001E #0023 -../../../../as/FUNC/abs.casl:6: XOR GR1,=#FFFF +../../../../as/FUNC/abs.casl: 6: XOR GR1,=#FFFF #0139 #FFFF #001F #3210 #0020 #0139 -../../../../as/FUNC/abs.casl:7: LAD GR1,1,GR1 +../../../../as/FUNC/abs.casl: 7: LAD GR1,1,GR1 #0021 #1211 #0022 #0001 -../../../../as/FUNC/abs.casl:8:ABSFIN RET +../../../../as/FUNC/abs.casl: 8:ABSFIN RET #0023 #8100 -../../../../as/FUNC/abs.casl:9: END +../../../../as/FUNC/abs.casl: 9: END Assemble ../../../../as/FUNC/outa.casl (1) -../../../../as/FUNC/outa.casl:1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 -../../../../as/FUNC/outa.casl:2:OUTA START -../../../../as/FUNC/outa.casl:3: RPUSH +../../../../as/FUNC/outa.casl: 1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 +../../../../as/FUNC/outa.casl: 2:OUTA START +../../../../as/FUNC/outa.casl: 3: RPUSH #0024 #7001 #0025 #0000 #0026 #7002 @@ -266,90 +266,90 @@ Assemble ../../../../as/FUNC/outa.casl (1) #002F #0000 #0030 #7007 #0031 #0000 -../../../../as/FUNC/outa.casl:4: LAD GR2,10 ; GR2に10進数の「10」を格納。 +../../../../as/FUNC/outa.casl: 4: LAD GR2,10 ; GR2に10進数の「10」を格納。 #0032 #1220 #0033 #000A -../../../../as/FUNC/outa.casl:5: LAD GR0,0 ; GR0 <- 0 +../../../../as/FUNC/outa.casl: 5: LAD GR0,0 ; GR0 <- 0 #0034 #1200 #0035 #0000 -../../../../as/FUNC/outa.casl:6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 +../../../../as/FUNC/outa.casl: 6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 #0036 #1240 #0037 #0000 -../../../../as/FUNC/outa.casl:7: ST GR0,LEN ; LENの初期化 +../../../../as/FUNC/outa.casl: 7: ST GR0,LEN ; LENの初期化 #0038 #1100 #0039 #0092 -../../../../as/FUNC/outa.casl:8: AND GR1,GR1 ; GR1をテスト +../../../../as/FUNC/outa.casl: 8: AND GR1,GR1 ; GR1をテスト #003A #3411 -../../../../as/FUNC/outa.casl:9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ +../../../../as/FUNC/outa.casl: 9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ #003B #6300 #003C #005D -../../../../as/FUNC/outa.casl:10: JPL STI ; GR1が正数の場合、STIにジャンプ +../../../../as/FUNC/outa.casl: 10: JPL STI ; GR1が正数の場合、STIにジャンプ #003D #6500 #003E #0043 -../../../../as/FUNC/outa.casl:11: LAD GR4,1 ; GR1が負数の場合、GR4をオン +../../../../as/FUNC/outa.casl: 11: LAD GR4,1 ; GR1が負数の場合、GR4をオン #003F #1240 #0040 #0001 -../../../../as/FUNC/outa.casl:12: CALL OABS ; GR1を正数に変換 +../../../../as/FUNC/outa.casl: 12: CALL OABS ; GR1を正数に変換 #0041 #8000 #0042 #0134 -../../../../as/FUNC/outa.casl:13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 +../../../../as/FUNC/outa.casl: 13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 #0043 #4512 -../../../../as/FUNC/outa.casl:14: JMI STLST ; ↓ +../../../../as/FUNC/outa.casl: 14: JMI STLST ; ↓ #0044 #6100 #0045 #0050 -../../../../as/FUNC/outa.casl:15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 +../../../../as/FUNC/outa.casl: 15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 #0046 #8000 #0047 #00C6 -../../../../as/FUNC/outa.casl:16: LD GR1,GR3 ; GR1にGR3をコピー +../../../../as/FUNC/outa.casl: 16: LD GR1,GR3 ; GR1にGR3をコピー #0048 #1413 -../../../../as/FUNC/outa.casl:17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 #0049 #1011 #004A #0093 -../../../../as/FUNC/outa.casl:18: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 18: CALL STSTR ; GR1をSTR領域に格納 #004B #8000 #004C #00B7 -../../../../as/FUNC/outa.casl:19: LD GR1,GR0 ; GR0をGR1にコピー +../../../../as/FUNC/outa.casl: 19: LD GR1,GR0 ; GR0をGR1にコピー #004D #1410 -../../../../as/FUNC/outa.casl:20: JUMP STI ; ループ終端 +../../../../as/FUNC/outa.casl: 20: JUMP STI ; ループ終端 #004E #6400 #004F #0043 -../../../../as/FUNC/outa.casl:21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 #0050 #1011 #0051 #0093 -../../../../as/FUNC/outa.casl:22: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 22: CALL STSTR ; GR1をSTR領域に格納 #0052 #8000 #0053 #00B7 -../../../../as/FUNC/outa.casl:23: AND GR4,GR4 ; 正数の場合 +../../../../as/FUNC/outa.casl: 23: AND GR4,GR4 ; 正数の場合 #0054 #3444 -../../../../as/FUNC/outa.casl:24: JZE PRT ; ↓ +../../../../as/FUNC/outa.casl: 24: JZE PRT ; ↓ #0055 #6300 #0056 #0061 -../../../../as/FUNC/outa.casl:25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 #013A #002D #0057 #1010 #0058 #013A -../../../../as/FUNC/outa.casl:26: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 26: CALL STSTR ; ↓ #0059 #8000 #005A #00B7 -../../../../as/FUNC/outa.casl:27: JUMP PRT ; PRTにジャンプ +../../../../as/FUNC/outa.casl: 27: JUMP PRT ; PRTにジャンプ #005B #6400 #005C #0061 -../../../../as/FUNC/outa.casl:28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 #005D #1010 #005E #0093 -../../../../as/FUNC/outa.casl:29: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 29: CALL STSTR ; ↓ #005F #8000 #0060 #00B7 -../../../../as/FUNC/outa.casl:30:PRT LD GR2,LEN ; GR2にLENの値を格納 +../../../../as/FUNC/outa.casl: 30:PRT LD GR2,LEN ; GR2にLENの値を格納 #0061 #1020 #0062 #0092 -../../../../as/FUNC/outa.casl:31: LAD GR1,STR ; GR1に文字列のアドレスを格納 +../../../../as/FUNC/outa.casl: 31: LAD GR1,STR ; GR1に文字列のアドレスを格納 #0063 #1210 #0064 #0081 -../../../../as/FUNC/outa.casl:32: CALL REV ; 文字列を逆順に並べ替え +../../../../as/FUNC/outa.casl: 32: CALL REV ; 文字列を逆順に並べ替え #0065 #8000 #0066 #0101 -../../../../as/FUNC/outa.casl:33: OUT STR,LEN ; 文字列を出力 +../../../../as/FUNC/outa.casl: 33: OUT STR,LEN ; 文字列を出力 #0067 #7001 #0068 #0000 #0069 #7002 @@ -369,7 +369,7 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0076 #0002 #0077 #7120 #0078 #7110 -../../../../as/FUNC/outa.casl:34: RPOP +../../../../as/FUNC/outa.casl: 34: RPOP #0079 #7170 #007A #7160 #007B #7150 @@ -377,9 +377,9 @@ Assemble ../../../../as/FUNC/outa.casl (1) #007D #7130 #007E #7120 #007F #7110 -../../../../as/FUNC/outa.casl:35: RET +../../../../as/FUNC/outa.casl: 35: RET #0080 #8100 -../../../../as/FUNC/outa.casl:36:STR DS 17 +../../../../as/FUNC/outa.casl: 36:STR DS 17 #0081 #0000 #0082 #0000 #0083 #0000 @@ -397,9 +397,9 @@ Assemble ../../../../as/FUNC/outa.casl (1) #008F #0000 #0090 #0000 #0091 #0000 -../../../../as/FUNC/outa.casl:37:LEN DS 1 +../../../../as/FUNC/outa.casl: 37:LEN DS 1 #0092 #0000 -../../../../as/FUNC/outa.casl:38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' +../../../../as/FUNC/outa.casl: 38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' #0093 #0030 #0094 #0031 #0095 #0032 @@ -436,136 +436,136 @@ Assemble ../../../../as/FUNC/outa.casl (1) #00B4 #0058 #00B5 #0059 #00B6 #005A -../../../../as/FUNC/outa.casl:39: END -../../../../as/FUNC/outa.casl:40:;; GR1をSTR領域に格納し、LENをインクリメント -../../../../as/FUNC/outa.casl:41:STSTR START -../../../../as/FUNC/outa.casl:42: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 39: END +../../../../as/FUNC/outa.casl: 40:;; GR1をSTR領域に格納し、LENをインクリメント +../../../../as/FUNC/outa.casl: 41:STSTR START +../../../../as/FUNC/outa.casl: 42: PUSH 0,GR1 #00B7 #7001 #00B8 #0000 -../../../../as/FUNC/outa.casl:43: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 43: PUSH 0,GR2 #00B9 #7002 #00BA #0000 -../../../../as/FUNC/outa.casl:44: LD GR2,LEN ; GR2にLENの値をロード +../../../../as/FUNC/outa.casl: 44: LD GR2,LEN ; GR2にLENの値をロード #00BB #1020 #00BC #0092 -../../../../as/FUNC/outa.casl:45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 +../../../../as/FUNC/outa.casl: 45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 #00BD #1112 #00BE #0081 -../../../../as/FUNC/outa.casl:46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 +../../../../as/FUNC/outa.casl: 46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 #00BF #1222 #00C0 #0001 -../../../../as/FUNC/outa.casl:47: ST GR2,LEN ; LENにGR2を格納 +../../../../as/FUNC/outa.casl: 47: ST GR2,LEN ; LENにGR2を格納 #00C1 #1120 #00C2 #0092 -../../../../as/FUNC/outa.casl:48: POP GR2 +../../../../as/FUNC/outa.casl: 48: POP GR2 #00C3 #7120 -../../../../as/FUNC/outa.casl:49: POP GR1 +../../../../as/FUNC/outa.casl: 49: POP GR1 #00C4 #7110 -../../../../as/FUNC/outa.casl:50: RET +../../../../as/FUNC/outa.casl: 50: RET #00C5 #8100 -../../../../as/FUNC/outa.casl:51: END -../../../../as/FUNC/outa.casl:52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する -../../../../as/FUNC/outa.casl:53:;;; 0〜65535の範囲の数値を扱う -../../../../as/FUNC/outa.casl:54:ODIVL START -../../../../as/FUNC/outa.casl:55: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 51: END +../../../../as/FUNC/outa.casl: 52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する +../../../../as/FUNC/outa.casl: 53:;;; 0〜65535の範囲の数値を扱う +../../../../as/FUNC/outa.casl: 54:ODIVL START +../../../../as/FUNC/outa.casl: 55: PUSH 0,GR1 #00C6 #7001 #00C7 #0000 -../../../../as/FUNC/outa.casl:56: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 56: PUSH 0,GR2 #00C8 #7002 #00C9 #0000 -../../../../as/FUNC/outa.casl:57: PUSH 0,GR4 +../../../../as/FUNC/outa.casl: 57: PUSH 0,GR4 #00CA #7004 #00CB #0000 -../../../../as/FUNC/outa.casl:58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ +../../../../as/FUNC/outa.casl: 58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ #00CC #3422 -../../../../as/FUNC/outa.casl:59: JZE ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 59: JZE ODFIN ; ↓ #00CD #6300 #00CE #00FB -../../../../as/FUNC/outa.casl:60: ST GR2,ODY ; ODYにGR2の初期値を保存 +../../../../as/FUNC/outa.casl: 60: ST GR2,ODY ; ODYにGR2の初期値を保存 #00CF #1120 #00D0 #0100 -../../../../as/FUNC/outa.casl:61: LAD GR0,0 ; GR0の初期化 +../../../../as/FUNC/outa.casl: 61: LAD GR0,0 ; GR0の初期化 #00D1 #1200 #00D2 #0000 -../../../../as/FUNC/outa.casl:62: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 62: LAD GR3,0 ; GR3の初期化 #00D3 #1230 #00D4 #0000 -../../../../as/FUNC/outa.casl:63: LAD GR4,1 ; GR4の初期化。対象ビットを表す +../../../../as/FUNC/outa.casl: 63: LAD GR4,1 ; GR4の初期化。対象ビットを表す #00D5 #1240 #00D6 #0001 -../../../../as/FUNC/outa.casl:64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 +../../../../as/FUNC/outa.casl: 64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 #00D7 #4521 -../../../../as/FUNC/outa.casl:65: JPL ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 65: JPL ODLOOP ; ↓ #00D8 #6500 #00D9 #00EA -../../../../as/FUNC/outa.casl:66: SLL GR4,1 ; GR4を1回左シフト +../../../../as/FUNC/outa.casl: 66: SLL GR4,1 ; GR4を1回左シフト #00DA #5240 #00DB #0001 -../../../../as/FUNC/outa.casl:67: SLL GR2,1 ; GR2を1回左シフト +../../../../as/FUNC/outa.casl: 67: SLL GR2,1 ; GR2を1回左シフト #00DC #5220 #00DD #0001 -../../../../as/FUNC/outa.casl:68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ +../../../../as/FUNC/outa.casl: 68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ #00DE #6600 #00DF #00E2 -../../../../as/FUNC/outa.casl:69: JUMP ODSL ; ループ終端 +../../../../as/FUNC/outa.casl: 69: JUMP ODSL ; ループ終端 #00E0 #6400 #00E1 #00D7 -../../../../as/FUNC/outa.casl:70:ODYOV SRL GR2,1 +../../../../as/FUNC/outa.casl: 70:ODYOV SRL GR2,1 #00E2 #5320 #00E3 #0001 -../../../../as/FUNC/outa.casl:71: LAD GR2,#8000,GR2 +../../../../as/FUNC/outa.casl: 71: LAD GR2,#8000,GR2 #00E4 #1222 #00E5 #8000 -../../../../as/FUNC/outa.casl:72: SRL GR4,1 +../../../../as/FUNC/outa.casl: 72: SRL GR4,1 #00E6 #5340 #00E7 #0001 -../../../../as/FUNC/outa.casl:73: JUMP ODLPIN +../../../../as/FUNC/outa.casl: 73: JUMP ODLPIN #00E8 #6400 #00E9 #00F7 -../../../../as/FUNC/outa.casl:74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト +../../../../as/FUNC/outa.casl: 74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト #00EA #5340 #00EB #0001 -../../../../as/FUNC/outa.casl:75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 #00EC #6300 #00ED #00FB -../../../../as/FUNC/outa.casl:76: SRL GR2,1 ; GR2を1回右シフト +../../../../as/FUNC/outa.casl: 76: SRL GR2,1 ; GR2を1回右シフト #00EE #5320 #00EF #0001 -../../../../as/FUNC/outa.casl:77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 #00F0 #4110 #00F1 #0100 -../../../../as/FUNC/outa.casl:78: JMI ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 78: JMI ODFIN ; ↓ #00F2 #6100 #00F3 #00FB -../../../../as/FUNC/outa.casl:79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ +../../../../as/FUNC/outa.casl: 79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ #00F4 #4512 -../../../../as/FUNC/outa.casl:80: JMI ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 80: JMI ODLOOP ; ↓ #00F5 #6100 #00F6 #00EA -../../../../as/FUNC/outa.casl:81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 +../../../../as/FUNC/outa.casl: 81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 #00F7 #2712 -../../../../as/FUNC/outa.casl:82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 +../../../../as/FUNC/outa.casl: 82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 #00F8 #2604 -../../../../as/FUNC/outa.casl:83: JUMP ODLOOP ; ループ終端 +../../../../as/FUNC/outa.casl: 83: JUMP ODLOOP ; ループ終端 #00F9 #6400 #00FA #00EA -../../../../as/FUNC/outa.casl:84:ODFIN LD GR3,GR1 +../../../../as/FUNC/outa.casl: 84:ODFIN LD GR3,GR1 #00FB #1431 -../../../../as/FUNC/outa.casl:85: POP GR4 +../../../../as/FUNC/outa.casl: 85: POP GR4 #00FC #7140 -../../../../as/FUNC/outa.casl:86: POP GR2 +../../../../as/FUNC/outa.casl: 86: POP GR2 #00FD #7120 -../../../../as/FUNC/outa.casl:87: POP GR1 +../../../../as/FUNC/outa.casl: 87: POP GR1 #00FE #7110 -../../../../as/FUNC/outa.casl:88: RET +../../../../as/FUNC/outa.casl: 88: RET #00FF #8100 -../../../../as/FUNC/outa.casl:89:ODY DS 1 +../../../../as/FUNC/outa.casl: 89:ODY DS 1 #0100 #0000 -../../../../as/FUNC/outa.casl:90: END -../../../../as/FUNC/outa.casl:91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える -../../../../as/FUNC/outa.casl:92:;; 例: 12345 -> 54321、54321- -> -12345 -../../../../as/FUNC/outa.casl:93:REV START -../../../../as/FUNC/outa.casl:94: RPUSH +../../../../as/FUNC/outa.casl: 90: END +../../../../as/FUNC/outa.casl: 91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える +../../../../as/FUNC/outa.casl: 92:;; 例: 12345 -> 54321、54321- -> -12345 +../../../../as/FUNC/outa.casl: 93:REV START +../../../../as/FUNC/outa.casl: 94: RPUSH #0101 #7001 #0102 #0000 #0103 #7002 @@ -580,54 +580,54 @@ Assemble ../../../../as/FUNC/outa.casl (1) #010C #0000 #010D #7007 #010E #0000 -../../../../as/FUNC/outa.casl:95: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 95: LAD GR3,0 ; GR3の初期化 #010F #1230 #0110 #0000 -../../../../as/FUNC/outa.casl:96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 #0111 #4532 -../../../../as/FUNC/outa.casl:97: JZE RNEXT ; ↓ +../../../../as/FUNC/outa.casl: 97: JZE RNEXT ; ↓ #0112 #6300 #0113 #011E -../../../../as/FUNC/outa.casl:98: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 98: LD GR4,GR1 ; GR4にGR1の値をコピー #0114 #1441 -../../../../as/FUNC/outa.casl:99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 #0115 #2643 -../../../../as/FUNC/outa.casl:100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 +../../../../as/FUNC/outa.casl: 100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 #0116 #1054 #0117 #0000 -../../../../as/FUNC/outa.casl:101: PUSH 0,GR5 ; GR5をプッシュ +../../../../as/FUNC/outa.casl: 101: PUSH 0,GR5 ; GR5をプッシュ #0118 #7005 #0119 #0000 -../../../../as/FUNC/outa.casl:102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 #011A #1233 #011B #0001 -../../../../as/FUNC/outa.casl:103: JUMP RPU ; ループ終端 +../../../../as/FUNC/outa.casl: 103: JUMP RPU ; ループ終端 #011C #6400 #011D #0111 -../../../../as/FUNC/outa.casl:104:RNEXT LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 104:RNEXT LAD GR3,0 ; GR3の初期化 #011E #1230 #011F #0000 -../../../../as/FUNC/outa.casl:105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 #0120 #4532 -../../../../as/FUNC/outa.casl:106: JZE RFIN ; ↓ +../../../../as/FUNC/outa.casl: 106: JZE RFIN ; ↓ #0121 #6300 #0122 #012C -../../../../as/FUNC/outa.casl:107: POP GR5 ; GR5にポップ +../../../../as/FUNC/outa.casl: 107: POP GR5 ; GR5にポップ #0123 #7150 -../../../../as/FUNC/outa.casl:108: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 108: LD GR4,GR1 ; GR4にGR1の値をコピー #0124 #1441 -../../../../as/FUNC/outa.casl:109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 #0125 #2643 -../../../../as/FUNC/outa.casl:110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 +../../../../as/FUNC/outa.casl: 110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 #0126 #1154 #0127 #0000 -../../../../as/FUNC/outa.casl:111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 #0128 #1233 #0129 #0001 -../../../../as/FUNC/outa.casl:112: JUMP RPO ; ループ終端 +../../../../as/FUNC/outa.casl: 112: JUMP RPO ; ループ終端 #012A #6400 #012B #0120 -../../../../as/FUNC/outa.casl:113:RFIN RPOP +../../../../as/FUNC/outa.casl: 113:RFIN RPOP #012C #7170 #012D #7160 #012E #7150 @@ -635,22 +635,22 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0130 #7130 #0131 #7120 #0132 #7110 -../../../../as/FUNC/outa.casl:114: RET +../../../../as/FUNC/outa.casl: 114: RET #0133 #8100 -../../../../as/FUNC/outa.casl:115: END -../../../../as/FUNC/outa.casl:116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 -../../../../as/FUNC/outa.casl:117:;; 例: -10 -> 10, -20 -> 20 -../../../../as/FUNC/outa.casl:118:OABS START -../../../../as/FUNC/outa.casl:119: XOR GR1,=#FFFF ; GR1の値を反転 +../../../../as/FUNC/outa.casl: 115: END +../../../../as/FUNC/outa.casl: 116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 +../../../../as/FUNC/outa.casl: 117:;; 例: -10 -> 10, -20 -> 20 +../../../../as/FUNC/outa.casl: 118:OABS START +../../../../as/FUNC/outa.casl: 119: XOR GR1,=#FFFF ; GR1の値を反転 #013C #FFFF #0134 #3210 #0135 #013C -../../../../as/FUNC/outa.casl:120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 +../../../../as/FUNC/outa.casl: 120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 #0136 #1211 #0137 #0001 -../../../../as/FUNC/outa.casl:121: RET +../../../../as/FUNC/outa.casl: 121: RET #0138 #8100 -../../../../as/FUNC/outa.casl:122: END +../../../../as/FUNC/outa.casl: 122: END 12 12 1 diff --git a/test/integration/casl2/adda0/0.txt b/test/integration/casl2/adda0/0.txt index e855f2c..5ed0812 100644 --- a/test/integration/casl2/adda0/0.txt +++ b/test/integration/casl2/adda0/0.txt @@ -1,12 +1,12 @@ ../../../../casl2 -slatd ../../../../as/CMD/adda0.casl Assemble ../../../../as/CMD/adda0.casl (0) -../../../../as/CMD/adda0.casl:1:MAIN START -../../../../as/CMD/adda0.casl:2:BEGIN LAD GR1,3 -../../../../as/CMD/adda0.casl:3: ADDA GR1,A -../../../../as/CMD/adda0.casl:4: RET -../../../../as/CMD/adda0.casl:5:A DC 1 -../../../../as/CMD/adda0.casl:6: END +../../../../as/CMD/adda0.casl: 1:MAIN START +../../../../as/CMD/adda0.casl: 2:BEGIN LAD GR1,3 +../../../../as/CMD/adda0.casl: 3: ADDA GR1,A +../../../../as/CMD/adda0.casl: 4: RET +../../../../as/CMD/adda0.casl: 5:A DC 1 +../../../../as/CMD/adda0.casl: 6: END Label:::: MAIN.A ---> #0005 @@ -14,18 +14,18 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/adda0.casl (1) -../../../../as/CMD/adda0.casl:1:MAIN START -../../../../as/CMD/adda0.casl:2:BEGIN LAD GR1,3 +../../../../as/CMD/adda0.casl: 1:MAIN START +../../../../as/CMD/adda0.casl: 2:BEGIN LAD GR1,3 #0000 #1210 #0001 #0003 -../../../../as/CMD/adda0.casl:3: ADDA GR1,A +../../../../as/CMD/adda0.casl: 3: ADDA GR1,A #0002 #2010 #0003 #0005 -../../../../as/CMD/adda0.casl:4: RET +../../../../as/CMD/adda0.casl: 4: RET #0004 #8100 -../../../../as/CMD/adda0.casl:5:A DC 1 +../../../../as/CMD/adda0.casl: 5:A DC 1 #0005 #0001 -../../../../as/CMD/adda0.casl:6: END +../../../../as/CMD/adda0.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/adda1/0.txt b/test/integration/casl2/adda1/0.txt index 73a09e7..631b1e7 100644 --- a/test/integration/casl2/adda1/0.txt +++ b/test/integration/casl2/adda1/0.txt @@ -1,14 +1,14 @@ ../../../../casl2 -slatd ../../../../as/CMD/adda1.casl Assemble ../../../../as/CMD/adda1.casl (0) -../../../../as/CMD/adda1.casl:1:MAIN START -../../../../as/CMD/adda1.casl:2:BEGIN LD GR1,A -../../../../as/CMD/adda1.casl:3: LD GR2,B -../../../../as/CMD/adda1.casl:4: ADDA GR1,GR2 -../../../../as/CMD/adda1.casl:5: RET -../../../../as/CMD/adda1.casl:6:A DC 3 -../../../../as/CMD/adda1.casl:7:B DC 1 -../../../../as/CMD/adda1.casl:8: END +../../../../as/CMD/adda1.casl: 1:MAIN START +../../../../as/CMD/adda1.casl: 2:BEGIN LD GR1,A +../../../../as/CMD/adda1.casl: 3: LD GR2,B +../../../../as/CMD/adda1.casl: 4: ADDA GR1,GR2 +../../../../as/CMD/adda1.casl: 5: RET +../../../../as/CMD/adda1.casl: 6:A DC 3 +../../../../as/CMD/adda1.casl: 7:B DC 1 +../../../../as/CMD/adda1.casl: 8: END Label:::: MAIN.A ---> #0006 @@ -17,22 +17,22 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/adda1.casl (1) -../../../../as/CMD/adda1.casl:1:MAIN START -../../../../as/CMD/adda1.casl:2:BEGIN LD GR1,A +../../../../as/CMD/adda1.casl: 1:MAIN START +../../../../as/CMD/adda1.casl: 2:BEGIN LD GR1,A #0000 #1010 #0001 #0006 -../../../../as/CMD/adda1.casl:3: LD GR2,B +../../../../as/CMD/adda1.casl: 3: LD GR2,B #0002 #1020 #0003 #0007 -../../../../as/CMD/adda1.casl:4: ADDA GR1,GR2 +../../../../as/CMD/adda1.casl: 4: ADDA GR1,GR2 #0004 #2412 -../../../../as/CMD/adda1.casl:5: RET +../../../../as/CMD/adda1.casl: 5: RET #0005 #8100 -../../../../as/CMD/adda1.casl:6:A DC 3 +../../../../as/CMD/adda1.casl: 6:A DC 3 #0006 #0003 -../../../../as/CMD/adda1.casl:7:B DC 1 +../../../../as/CMD/adda1.casl: 7:B DC 1 #0007 #0001 -../../../../as/CMD/adda1.casl:8: END +../../../../as/CMD/adda1.casl: 8: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/adda_overflow/0.txt b/test/integration/casl2/adda_overflow/0.txt index f75405c..3e16daf 100644 --- a/test/integration/casl2/adda_overflow/0.txt +++ b/test/integration/casl2/adda_overflow/0.txt @@ -1,12 +1,12 @@ ../../../../casl2 -slatd ../../../../as/CMD/adda_overflow.casl Assemble ../../../../as/CMD/adda_overflow.casl (0) -../../../../as/CMD/adda_overflow.casl:1:MAIN START BEGIN -../../../../as/CMD/adda_overflow.casl:2:BEGIN LAD GR1,32766 -../../../../as/CMD/adda_overflow.casl:3: ADDA GR1,A -../../../../as/CMD/adda_overflow.casl:4: RET -../../../../as/CMD/adda_overflow.casl:5:A DC 29 -../../../../as/CMD/adda_overflow.casl:6: END +../../../../as/CMD/adda_overflow.casl: 1:MAIN START BEGIN +../../../../as/CMD/adda_overflow.casl: 2:BEGIN LAD GR1,32766 +../../../../as/CMD/adda_overflow.casl: 3: ADDA GR1,A +../../../../as/CMD/adda_overflow.casl: 4: RET +../../../../as/CMD/adda_overflow.casl: 5:A DC 29 +../../../../as/CMD/adda_overflow.casl: 6: END Label:::: MAIN.A ---> #0005 @@ -14,18 +14,18 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/adda_overflow.casl (1) -../../../../as/CMD/adda_overflow.casl:1:MAIN START BEGIN -../../../../as/CMD/adda_overflow.casl:2:BEGIN LAD GR1,32766 +../../../../as/CMD/adda_overflow.casl: 1:MAIN START BEGIN +../../../../as/CMD/adda_overflow.casl: 2:BEGIN LAD GR1,32766 #0000 #1210 #0001 #7FFE -../../../../as/CMD/adda_overflow.casl:3: ADDA GR1,A +../../../../as/CMD/adda_overflow.casl: 3: ADDA GR1,A #0002 #2010 #0003 #0005 -../../../../as/CMD/adda_overflow.casl:4: RET +../../../../as/CMD/adda_overflow.casl: 4: RET #0004 #8100 -../../../../as/CMD/adda_overflow.casl:5:A DC 29 +../../../../as/CMD/adda_overflow.casl: 5:A DC 29 #0005 #001D -../../../../as/CMD/adda_overflow.casl:6: END +../../../../as/CMD/adda_overflow.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/addl/0.txt b/test/integration/casl2/addl/0.txt index f9ba41f..8a10cf7 100644 --- a/test/integration/casl2/addl/0.txt +++ b/test/integration/casl2/addl/0.txt @@ -1,15 +1,15 @@ ../../../../casl2 -slatd ../../../../as/CMD/addl.casl Assemble ../../../../as/CMD/addl.casl (0) -../../../../as/CMD/addl.casl:1:MAIN START BEGIN -../../../../as/CMD/addl.casl:2:BEGIN LD GR0,A -../../../../as/CMD/addl.casl:3: ADDL GR0,B -../../../../as/CMD/addl.casl:4: ST GR0,C -../../../../as/CMD/addl.casl:5: RET -../../../../as/CMD/addl.casl:6:A DC 32766 -../../../../as/CMD/addl.casl:7:B DC 29 -../../../../as/CMD/addl.casl:8:C DS 1 -../../../../as/CMD/addl.casl:9: END +../../../../as/CMD/addl.casl: 1:MAIN START BEGIN +../../../../as/CMD/addl.casl: 2:BEGIN LD GR0,A +../../../../as/CMD/addl.casl: 3: ADDL GR0,B +../../../../as/CMD/addl.casl: 4: ST GR0,C +../../../../as/CMD/addl.casl: 5: RET +../../../../as/CMD/addl.casl: 6:A DC 32766 +../../../../as/CMD/addl.casl: 7:B DC 29 +../../../../as/CMD/addl.casl: 8:C DS 1 +../../../../as/CMD/addl.casl: 9: END Label:::: MAIN.A ---> #0007 @@ -19,25 +19,25 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/addl.casl (1) -../../../../as/CMD/addl.casl:1:MAIN START BEGIN -../../../../as/CMD/addl.casl:2:BEGIN LD GR0,A +../../../../as/CMD/addl.casl: 1:MAIN START BEGIN +../../../../as/CMD/addl.casl: 2:BEGIN LD GR0,A #0000 #1000 #0001 #0007 -../../../../as/CMD/addl.casl:3: ADDL GR0,B +../../../../as/CMD/addl.casl: 3: ADDL GR0,B #0002 #2200 #0003 #0008 -../../../../as/CMD/addl.casl:4: ST GR0,C +../../../../as/CMD/addl.casl: 4: ST GR0,C #0004 #1100 #0005 #0009 -../../../../as/CMD/addl.casl:5: RET +../../../../as/CMD/addl.casl: 5: RET #0006 #8100 -../../../../as/CMD/addl.casl:6:A DC 32766 +../../../../as/CMD/addl.casl: 6:A DC 32766 #0007 #7FFE -../../../../as/CMD/addl.casl:7:B DC 29 +../../../../as/CMD/addl.casl: 7:B DC 29 #0008 #001D -../../../../as/CMD/addl.casl:8:C DS 1 +../../../../as/CMD/addl.casl: 8:C DS 1 #0009 #0000 -../../../../as/CMD/addl.casl:9: END +../../../../as/CMD/addl.casl: 9: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/addl_overflow/0.txt b/test/integration/casl2/addl_overflow/0.txt index 5a2a914..c04fdbc 100644 --- a/test/integration/casl2/addl_overflow/0.txt +++ b/test/integration/casl2/addl_overflow/0.txt @@ -1,17 +1,17 @@ ../../../../casl2 -slatd ../../../../as/CMD/addl_overflow.casl Assemble ../../../../as/CMD/addl_overflow.casl (0) -../../../../as/CMD/addl_overflow.casl:1:MAIN START BEGIN -../../../../as/CMD/addl_overflow.casl:2:BEGIN LD GR1,A -../../../../as/CMD/addl_overflow.casl:3: ADDL GR1,B -../../../../as/CMD/addl_overflow.casl:4: ADDL GR1,C -../../../../as/CMD/addl_overflow.casl:5: ADDL GR1,D -../../../../as/CMD/addl_overflow.casl:6: RET -../../../../as/CMD/addl_overflow.casl:7:A DC 32765 -../../../../as/CMD/addl_overflow.casl:8:B DC 4 -../../../../as/CMD/addl_overflow.casl:9:C DC 32764 -../../../../as/CMD/addl_overflow.casl:10:D DC 7 -../../../../as/CMD/addl_overflow.casl:11: END +../../../../as/CMD/addl_overflow.casl: 1:MAIN START BEGIN +../../../../as/CMD/addl_overflow.casl: 2:BEGIN LD GR1,A +../../../../as/CMD/addl_overflow.casl: 3: ADDL GR1,B +../../../../as/CMD/addl_overflow.casl: 4: ADDL GR1,C +../../../../as/CMD/addl_overflow.casl: 5: ADDL GR1,D +../../../../as/CMD/addl_overflow.casl: 6: RET +../../../../as/CMD/addl_overflow.casl: 7:A DC 32765 +../../../../as/CMD/addl_overflow.casl: 8:B DC 4 +../../../../as/CMD/addl_overflow.casl: 9:C DC 32764 +../../../../as/CMD/addl_overflow.casl: 10:D DC 7 +../../../../as/CMD/addl_overflow.casl: 11: END Label:::: MAIN.A ---> #0009 @@ -22,30 +22,30 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/addl_overflow.casl (1) -../../../../as/CMD/addl_overflow.casl:1:MAIN START BEGIN -../../../../as/CMD/addl_overflow.casl:2:BEGIN LD GR1,A +../../../../as/CMD/addl_overflow.casl: 1:MAIN START BEGIN +../../../../as/CMD/addl_overflow.casl: 2:BEGIN LD GR1,A #0000 #1010 #0001 #0009 -../../../../as/CMD/addl_overflow.casl:3: ADDL GR1,B +../../../../as/CMD/addl_overflow.casl: 3: ADDL GR1,B #0002 #2210 #0003 #000A -../../../../as/CMD/addl_overflow.casl:4: ADDL GR1,C +../../../../as/CMD/addl_overflow.casl: 4: ADDL GR1,C #0004 #2210 #0005 #000B -../../../../as/CMD/addl_overflow.casl:5: ADDL GR1,D +../../../../as/CMD/addl_overflow.casl: 5: ADDL GR1,D #0006 #2210 #0007 #000C -../../../../as/CMD/addl_overflow.casl:6: RET +../../../../as/CMD/addl_overflow.casl: 6: RET #0008 #8100 -../../../../as/CMD/addl_overflow.casl:7:A DC 32765 +../../../../as/CMD/addl_overflow.casl: 7:A DC 32765 #0009 #7FFD -../../../../as/CMD/addl_overflow.casl:8:B DC 4 +../../../../as/CMD/addl_overflow.casl: 8:B DC 4 #000A #0004 -../../../../as/CMD/addl_overflow.casl:9:C DC 32764 +../../../../as/CMD/addl_overflow.casl: 9:C DC 32764 #000B #7FFC -../../../../as/CMD/addl_overflow.casl:10:D DC 7 +../../../../as/CMD/addl_overflow.casl: 10:D DC 7 #000C #0007 -../../../../as/CMD/addl_overflow.casl:11: END +../../../../as/CMD/addl_overflow.casl: 11: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/and0/0.txt b/test/integration/casl2/and0/0.txt index 7b5cf85..a2041ed 100644 --- a/test/integration/casl2/and0/0.txt +++ b/test/integration/casl2/and0/0.txt @@ -1,30 +1,30 @@ ../../../../casl2 -slatd ../../../../as/CMD/and0.casl Assemble ../../../../as/CMD/and0.casl (0) -../../../../as/CMD/and0.casl:1:MAIN START -../../../../as/CMD/and0.casl:2:BEGIN LAD GR1,#8001 -../../../../as/CMD/and0.casl:3: LAD GR2,#3521 -../../../../as/CMD/and0.casl:4: AND GR1,GR2 -../../../../as/CMD/and0.casl:5: RET -../../../../as/CMD/and0.casl:6: END +../../../../as/CMD/and0.casl: 1:MAIN START +../../../../as/CMD/and0.casl: 2:BEGIN LAD GR1,#8001 +../../../../as/CMD/and0.casl: 3: LAD GR2,#3521 +../../../../as/CMD/and0.casl: 4: AND GR1,GR2 +../../../../as/CMD/and0.casl: 5: RET +../../../../as/CMD/and0.casl: 6: END Label:::: MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/and0.casl (1) -../../../../as/CMD/and0.casl:1:MAIN START -../../../../as/CMD/and0.casl:2:BEGIN LAD GR1,#8001 +../../../../as/CMD/and0.casl: 1:MAIN START +../../../../as/CMD/and0.casl: 2:BEGIN LAD GR1,#8001 #0000 #1210 #0001 #8001 -../../../../as/CMD/and0.casl:3: LAD GR2,#3521 +../../../../as/CMD/and0.casl: 3: LAD GR2,#3521 #0002 #1220 #0003 #3521 -../../../../as/CMD/and0.casl:4: AND GR1,GR2 +../../../../as/CMD/and0.casl: 4: AND GR1,GR2 #0004 #3412 -../../../../as/CMD/and0.casl:5: RET +../../../../as/CMD/and0.casl: 5: RET #0005 #8100 -../../../../as/CMD/and0.casl:6: END +../../../../as/CMD/and0.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/and1/0.txt b/test/integration/casl2/and1/0.txt index e8abcff..010aedb 100644 --- a/test/integration/casl2/and1/0.txt +++ b/test/integration/casl2/and1/0.txt @@ -1,12 +1,12 @@ ../../../../casl2 -slatd ../../../../as/CMD/and1.casl Assemble ../../../../as/CMD/and1.casl (0) -../../../../as/CMD/and1.casl:1:MAIN START -../../../../as/CMD/and1.casl:2:BEGIN LAD GR0,#3444 -../../../../as/CMD/and1.casl:3: AND GR0,A -../../../../as/CMD/and1.casl:4: RET -../../../../as/CMD/and1.casl:5:A DC #00DD -../../../../as/CMD/and1.casl:6: END +../../../../as/CMD/and1.casl: 1:MAIN START +../../../../as/CMD/and1.casl: 2:BEGIN LAD GR0,#3444 +../../../../as/CMD/and1.casl: 3: AND GR0,A +../../../../as/CMD/and1.casl: 4: RET +../../../../as/CMD/and1.casl: 5:A DC #00DD +../../../../as/CMD/and1.casl: 6: END Label:::: MAIN.A ---> #0005 @@ -14,18 +14,18 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/and1.casl (1) -../../../../as/CMD/and1.casl:1:MAIN START -../../../../as/CMD/and1.casl:2:BEGIN LAD GR0,#3444 +../../../../as/CMD/and1.casl: 1:MAIN START +../../../../as/CMD/and1.casl: 2:BEGIN LAD GR0,#3444 #0000 #1200 #0001 #3444 -../../../../as/CMD/and1.casl:3: AND GR0,A +../../../../as/CMD/and1.casl: 3: AND GR0,A #0002 #3000 #0003 #0005 -../../../../as/CMD/and1.casl:4: RET +../../../../as/CMD/and1.casl: 4: RET #0004 #8100 -../../../../as/CMD/and1.casl:5:A DC #00DD +../../../../as/CMD/and1.casl: 5:A DC #00DD #0005 #00DD -../../../../as/CMD/and1.casl:6: END +../../../../as/CMD/and1.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/and2/0.txt b/test/integration/casl2/and2/0.txt index b41e739..5a4e795 100644 --- a/test/integration/casl2/and2/0.txt +++ b/test/integration/casl2/and2/0.txt @@ -1,28 +1,28 @@ ../../../../casl2 -slatd ../../../../as/CMD/and2.casl Assemble ../../../../as/CMD/and2.casl (0) -../../../../as/CMD/and2.casl:1:MAIN START -../../../../as/CMD/and2.casl:2:BEGIN LAD GR0,#3444 -../../../../as/CMD/and2.casl:3: AND GR0,=#00DD -../../../../as/CMD/and2.casl:4: RET -../../../../as/CMD/and2.casl:5: END +../../../../as/CMD/and2.casl: 1:MAIN START +../../../../as/CMD/and2.casl: 2:BEGIN LAD GR0,#3444 +../../../../as/CMD/and2.casl: 3: AND GR0,=#00DD +../../../../as/CMD/and2.casl: 4: RET +../../../../as/CMD/and2.casl: 5: END Label:::: MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/and2.casl (1) -../../../../as/CMD/and2.casl:1:MAIN START -../../../../as/CMD/and2.casl:2:BEGIN LAD GR0,#3444 +../../../../as/CMD/and2.casl: 1:MAIN START +../../../../as/CMD/and2.casl: 2:BEGIN LAD GR0,#3444 #0000 #1200 #0001 #3444 -../../../../as/CMD/and2.casl:3: AND GR0,=#00DD +../../../../as/CMD/and2.casl: 3: AND GR0,=#00DD #0005 #00DD #0002 #3000 #0003 #0005 -../../../../as/CMD/and2.casl:4: RET +../../../../as/CMD/and2.casl: 4: RET #0004 #8100 -../../../../as/CMD/and2.casl:5: END +../../../../as/CMD/and2.casl: 5: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/and3/0.txt b/test/integration/casl2/and3/0.txt index 2a2301c..8d242d7 100644 --- a/test/integration/casl2/and3/0.txt +++ b/test/integration/casl2/and3/0.txt @@ -1,28 +1,28 @@ ../../../../casl2 -slatd ../../../../as/CMD/and3.casl Assemble ../../../../as/CMD/and3.casl (0) -../../../../as/CMD/and3.casl:1:MAIN START -../../../../as/CMD/and3.casl:2:BEGIN LAD GR0,#0460 -../../../../as/CMD/and3.casl:3: AND GR0,=#00FF -../../../../as/CMD/and3.casl:4: RET -../../../../as/CMD/and3.casl:5: END +../../../../as/CMD/and3.casl: 1:MAIN START +../../../../as/CMD/and3.casl: 2:BEGIN LAD GR0,#0460 +../../../../as/CMD/and3.casl: 3: AND GR0,=#00FF +../../../../as/CMD/and3.casl: 4: RET +../../../../as/CMD/and3.casl: 5: END Label:::: MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/and3.casl (1) -../../../../as/CMD/and3.casl:1:MAIN START -../../../../as/CMD/and3.casl:2:BEGIN LAD GR0,#0460 +../../../../as/CMD/and3.casl: 1:MAIN START +../../../../as/CMD/and3.casl: 2:BEGIN LAD GR0,#0460 #0000 #1200 #0001 #0460 -../../../../as/CMD/and3.casl:3: AND GR0,=#00FF +../../../../as/CMD/and3.casl: 3: AND GR0,=#00FF #0005 #00FF #0002 #3000 #0003 #0005 -../../../../as/CMD/and3.casl:4: RET +../../../../as/CMD/and3.casl: 4: RET #0004 #8100 -../../../../as/CMD/and3.casl:5: END +../../../../as/CMD/and3.casl: 5: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/binout/0.txt b/test/integration/casl2/binout/0.txt index 6bcf5c3..af15cc3 100644 --- a/test/integration/casl2/binout/0.txt +++ b/test/integration/casl2/binout/0.txt @@ -21,125 +21,125 @@ BINOUT ---> #0014 BINOUT.NZERO ---> #0071 Assemble ../../../../as/YAKUWA/binout.casl (1) -../../../../as/YAKUWA/binout.casl:1:;;; BINOUT: 主プログラムから渡された1語の内容を、 -../../../../as/YAKUWA/binout.casl:2:;;; ゼロ抑制を行った2進表記で出力する -../../../../as/YAKUWA/binout.casl:3:;;; 八鍬幸信『基本情報処理試験 らくらく突破 CASL II』172ページ -../../../../as/YAKUWA/binout.casl:4:;;; BINOUTを呼び出す -../../../../as/YAKUWA/binout.casl:5:MAIN START -../../../../as/YAKUWA/binout.casl:6: LAD GR2,0 +../../../../as/YAKUWA/binout.casl: 1:;;; BINOUT: 主プログラムから渡された1語の内容を、 +../../../../as/YAKUWA/binout.casl: 2:;;; ゼロ抑制を行った2進表記で出力する +../../../../as/YAKUWA/binout.casl: 3:;;; 八鍬幸信『基本情報処理試験 らくらく突破 CASL II』172ページ +../../../../as/YAKUWA/binout.casl: 4:;;; BINOUTを呼び出す +../../../../as/YAKUWA/binout.casl: 5:MAIN START +../../../../as/YAKUWA/binout.casl: 6: LAD GR2,0 #0000 #1220 #0001 #0000 -../../../../as/YAKUWA/binout.casl:7:MLOOP CPA GR2,MLEN +../../../../as/YAKUWA/binout.casl: 7:MLOOP CPA GR2,MLEN #0002 #4020 #0003 #0013 -../../../../as/YAKUWA/binout.casl:8: JZE MFIN +../../../../as/YAKUWA/binout.casl: 8: JZE MFIN #0004 #6300 #0005 #000E -../../../../as/YAKUWA/binout.casl:9: LD GR1,MWORD,GR2 +../../../../as/YAKUWA/binout.casl: 9: LD GR1,MWORD,GR2 #0006 #1012 #0007 #000F -../../../../as/YAKUWA/binout.casl:10: CALL BINOUT +../../../../as/YAKUWA/binout.casl: 10: CALL BINOUT #0008 #8000 #0009 #0014 -../../../../as/YAKUWA/binout.casl:11: LAD GR2,1,GR2 +../../../../as/YAKUWA/binout.casl: 11: LAD GR2,1,GR2 #000A #1222 #000B #0001 -../../../../as/YAKUWA/binout.casl:12: JUMP MLOOP +../../../../as/YAKUWA/binout.casl: 12: JUMP MLOOP #000C #6400 #000D #0002 -../../../../as/YAKUWA/binout.casl:13:MFIN RET +../../../../as/YAKUWA/binout.casl: 13:MFIN RET #000E #8100 -../../../../as/YAKUWA/binout.casl:14:MWORD DC #0000,#0001,#09CD,#8001 +../../../../as/YAKUWA/binout.casl: 14:MWORD DC #0000,#0001,#09CD,#8001 #000F #0000 #0010 #0001 #0011 #09CD #0012 #8001 -../../../../as/YAKUWA/binout.casl:15:MLEN DC 4 +../../../../as/YAKUWA/binout.casl: 15:MLEN DC 4 #0013 #0004 -../../../../as/YAKUWA/binout.casl:16: END -../../../../as/YAKUWA/binout.casl:17:;;; BINOUT -../../../../as/YAKUWA/binout.casl:18:BINOUT START -../../../../as/YAKUWA/binout.casl:19: PUSH 0,GR1 ; レジスタの退避 +../../../../as/YAKUWA/binout.casl: 16: END +../../../../as/YAKUWA/binout.casl: 17:;;; BINOUT +../../../../as/YAKUWA/binout.casl: 18:BINOUT START +../../../../as/YAKUWA/binout.casl: 19: PUSH 0,GR1 ; レジスタの退避 #0014 #7001 #0015 #0000 -../../../../as/YAKUWA/binout.casl:20: PUSH 0,GR2 ; ↓ +../../../../as/YAKUWA/binout.casl: 20: PUSH 0,GR2 ; ↓ #0016 #7002 #0017 #0000 -../../../../as/YAKUWA/binout.casl:21: PUSH 0,GR3 ; ↓ +../../../../as/YAKUWA/binout.casl: 21: PUSH 0,GR3 ; ↓ #0018 #7003 #0019 #0000 -../../../../as/YAKUWA/binout.casl:22: PUSH 0,GR4 ; ↓ +../../../../as/YAKUWA/binout.casl: 22: PUSH 0,GR4 ; ↓ #001A #7004 #001B #0000 -../../../../as/YAKUWA/binout.casl:23: LAD GR2,0 ; 出力ポインタの初期化 +../../../../as/YAKUWA/binout.casl: 23: LAD GR2,0 ; 出力ポインタの初期化 #001C #1220 #001D #0000 -../../../../as/YAKUWA/binout.casl:24: LAD GR3,15 ; カウンタの初期化 +../../../../as/YAKUWA/binout.casl: 24: LAD GR3,15 ; カウンタの初期化 #001E #1230 #001F #000F -../../../../as/YAKUWA/binout.casl:25: LD GR4,GR1 ; 全ビット = 0? +../../../../as/YAKUWA/binout.casl: 25: LD GR4,GR1 ; 全ビット = 0? #0020 #1441 -../../../../as/YAKUWA/binout.casl:26: JZE OUT1 +../../../../as/YAKUWA/binout.casl: 26: JZE OUT1 #0021 #6300 #0022 #0041 -../../../../as/YAKUWA/binout.casl:27:LOOP1 JMI ONE ; 先行するビット処理 +../../../../as/YAKUWA/binout.casl: 27:LOOP1 JMI ONE ; 先行するビット処理 #0023 #6100 #0024 #0031 -../../../../as/YAKUWA/binout.casl:28: LAD GR3,-1,GR3 ; ↓ +../../../../as/YAKUWA/binout.casl: 28: LAD GR3,-1,GR3 ; ↓ #0025 #1233 #0026 #FFFF -../../../../as/YAKUWA/binout.casl:29: SLL GR1,1 ; ↓ +../../../../as/YAKUWA/binout.casl: 29: SLL GR1,1 ; ↓ #0027 #5210 #0028 #0001 -../../../../as/YAKUWA/binout.casl:30: JUMP LOOP1 +../../../../as/YAKUWA/binout.casl: 30: JUMP LOOP1 #0029 #6400 #002A #0023 -../../../../as/YAKUWA/binout.casl:31:LOOP2 JMI ONE ; 符号ビットの判定 +../../../../as/YAKUWA/binout.casl: 31:LOOP2 JMI ONE ; 符号ビットの判定 #002B #6100 #002C #0031 -../../../../as/YAKUWA/binout.casl:32:ZERO LAD GR0,48 ; '0'→GR0 +../../../../as/YAKUWA/binout.casl: 32:ZERO LAD GR0,48 ; '0'→GR0 #002D #1200 #002E #0030 -../../../../as/YAKUWA/binout.casl:33: JUMP STORE +../../../../as/YAKUWA/binout.casl: 33: JUMP STORE #002F #6400 #0030 #0033 -../../../../as/YAKUWA/binout.casl:34:ONE LAD GR0,49 ; '1'→GR1 +../../../../as/YAKUWA/binout.casl: 34:ONE LAD GR0,49 ; '1'→GR1 #0031 #1200 #0032 #0031 -../../../../as/YAKUWA/binout.casl:35:STORE ST GR0,OBUF,GR2 +../../../../as/YAKUWA/binout.casl: 35:STORE ST GR0,OBUF,GR2 #0033 #1102 #0034 #0060 -../../../../as/YAKUWA/binout.casl:36: LAD GR2,1,GR2 +../../../../as/YAKUWA/binout.casl: 36: LAD GR2,1,GR2 #0035 #1222 #0036 #0001 -../../../../as/YAKUWA/binout.casl:37: LAD GR3,-1,GR3 +../../../../as/YAKUWA/binout.casl: 37: LAD GR3,-1,GR3 #0037 #1233 #0038 #FFFF -../../../../as/YAKUWA/binout.casl:38: CPA GR3,NZERO +../../../../as/YAKUWA/binout.casl: 38: CPA GR3,NZERO #0039 #4030 #003A #0071 -../../../../as/YAKUWA/binout.casl:39: JMI OUT2 ; 全ビット終了? +../../../../as/YAKUWA/binout.casl: 39: JMI OUT2 ; 全ビット終了? #003B #6100 #003C #0047 -../../../../as/YAKUWA/binout.casl:40: SLL GR1,1 +../../../../as/YAKUWA/binout.casl: 40: SLL GR1,1 #003D #5210 #003E #0001 -../../../../as/YAKUWA/binout.casl:41: JUMP LOOP2 +../../../../as/YAKUWA/binout.casl: 41: JUMP LOOP2 #003F #6400 #0040 #002B -../../../../as/YAKUWA/binout.casl:42:OUT1 LAD GR0,48 +../../../../as/YAKUWA/binout.casl: 42:OUT1 LAD GR0,48 #0041 #1200 #0042 #0030 -../../../../as/YAKUWA/binout.casl:43: ST GR0,OBUF,GR2 +../../../../as/YAKUWA/binout.casl: 43: ST GR0,OBUF,GR2 #0043 #1102 #0044 #0060 -../../../../as/YAKUWA/binout.casl:44: LAD GR2,1,GR2 +../../../../as/YAKUWA/binout.casl: 44: LAD GR2,1,GR2 #0045 #1222 #0046 #0001 -../../../../as/YAKUWA/binout.casl:45:OUT2 ST GR2,OLNG +../../../../as/YAKUWA/binout.casl: 45:OUT2 ST GR2,OLNG #0047 #1120 #0048 #0070 -../../../../as/YAKUWA/binout.casl:46: OUT OBUF,OLNG +../../../../as/YAKUWA/binout.casl: 46: OUT OBUF,OLNG #0049 #7001 #004A #0000 #004B #7002 @@ -159,17 +159,17 @@ Assemble ../../../../as/YAKUWA/binout.casl (1) #0058 #0002 #0059 #7120 #005A #7110 -../../../../as/YAKUWA/binout.casl:47: POP GR4 ; レジスタの復元 +../../../../as/YAKUWA/binout.casl: 47: POP GR4 ; レジスタの復元 #005B #7140 -../../../../as/YAKUWA/binout.casl:48: POP GR3 ; ↓ +../../../../as/YAKUWA/binout.casl: 48: POP GR3 ; ↓ #005C #7130 -../../../../as/YAKUWA/binout.casl:49: POP GR2 ; ↓ +../../../../as/YAKUWA/binout.casl: 49: POP GR2 ; ↓ #005D #7120 -../../../../as/YAKUWA/binout.casl:50: POP GR1 ; ↓ +../../../../as/YAKUWA/binout.casl: 50: POP GR1 ; ↓ #005E #7110 -../../../../as/YAKUWA/binout.casl:51: RET +../../../../as/YAKUWA/binout.casl: 51: RET #005F #8100 -../../../../as/YAKUWA/binout.casl:52:OBUF DS 16 +../../../../as/YAKUWA/binout.casl: 52:OBUF DS 16 #0060 #0000 #0061 #0000 #0062 #0000 @@ -186,11 +186,11 @@ Assemble ../../../../as/YAKUWA/binout.casl (1) #006D #0000 #006E #0000 #006F #0000 -../../../../as/YAKUWA/binout.casl:53:OLNG DS 1 +../../../../as/YAKUWA/binout.casl: 53:OLNG DS 1 #0070 #0000 -../../../../as/YAKUWA/binout.casl:54:NZERO DC 0 +../../../../as/YAKUWA/binout.casl: 54:NZERO DC 0 #0071 #0000 -../../../../as/YAKUWA/binout.casl:55: END +../../../../as/YAKUWA/binout.casl: 55: END 0 1 100111001101 diff --git a/test/integration/casl2/call0/0.txt b/test/integration/casl2/call0/0.txt index 8396f26..a6b7e27 100644 --- a/test/integration/casl2/call0/0.txt +++ b/test/integration/casl2/call0/0.txt @@ -1,18 +1,18 @@ ../../../../casl2 -slatd ../../../../as/CMD/call0.casl Assemble ../../../../as/CMD/call0.casl (0) -../../../../as/CMD/call0.casl:1:MAIN START BEGIN -../../../../as/CMD/call0.casl:2:BEGIN LD GR1,A -../../../../as/CMD/call0.casl:3: CALL COPY -../../../../as/CMD/call0.casl:4: ST GR2,B -../../../../as/CMD/call0.casl:5: RET -../../../../as/CMD/call0.casl:6:A DC 29 -../../../../as/CMD/call0.casl:7:B DS 1 -../../../../as/CMD/call0.casl:8: END -../../../../as/CMD/call0.casl:9:COPY START -../../../../as/CMD/call0.casl:10: LD GR2,GR1 -../../../../as/CMD/call0.casl:11: RET -../../../../as/CMD/call0.casl:12: END +../../../../as/CMD/call0.casl: 1:MAIN START BEGIN +../../../../as/CMD/call0.casl: 2:BEGIN LD GR1,A +../../../../as/CMD/call0.casl: 3: CALL COPY +../../../../as/CMD/call0.casl: 4: ST GR2,B +../../../../as/CMD/call0.casl: 5: RET +../../../../as/CMD/call0.casl: 6:A DC 29 +../../../../as/CMD/call0.casl: 7:B DS 1 +../../../../as/CMD/call0.casl: 8: END +../../../../as/CMD/call0.casl: 9:COPY START +../../../../as/CMD/call0.casl: 10: LD GR2,GR1 +../../../../as/CMD/call0.casl: 11: RET +../../../../as/CMD/call0.casl: 12: END Label:::: MAIN.A ---> #0007 @@ -22,29 +22,29 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/call0.casl (1) -../../../../as/CMD/call0.casl:1:MAIN START BEGIN -../../../../as/CMD/call0.casl:2:BEGIN LD GR1,A +../../../../as/CMD/call0.casl: 1:MAIN START BEGIN +../../../../as/CMD/call0.casl: 2:BEGIN LD GR1,A #0000 #1010 #0001 #0007 -../../../../as/CMD/call0.casl:3: CALL COPY +../../../../as/CMD/call0.casl: 3: CALL COPY #0002 #8000 #0003 #0009 -../../../../as/CMD/call0.casl:4: ST GR2,B +../../../../as/CMD/call0.casl: 4: ST GR2,B #0004 #1120 #0005 #0008 -../../../../as/CMD/call0.casl:5: RET +../../../../as/CMD/call0.casl: 5: RET #0006 #8100 -../../../../as/CMD/call0.casl:6:A DC 29 +../../../../as/CMD/call0.casl: 6:A DC 29 #0007 #001D -../../../../as/CMD/call0.casl:7:B DS 1 +../../../../as/CMD/call0.casl: 7:B DS 1 #0008 #0000 -../../../../as/CMD/call0.casl:8: END -../../../../as/CMD/call0.casl:9:COPY START -../../../../as/CMD/call0.casl:10: LD GR2,GR1 +../../../../as/CMD/call0.casl: 8: END +../../../../as/CMD/call0.casl: 9:COPY START +../../../../as/CMD/call0.casl: 10: LD GR2,GR1 #0009 #1421 -../../../../as/CMD/call0.casl:11: RET +../../../../as/CMD/call0.casl: 11: RET #000A #8100 -../../../../as/CMD/call0.casl:12: END +../../../../as/CMD/call0.casl: 12: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/call1/0.txt b/test/integration/casl2/call1/0.txt index 0fcfa00..3fd309b 100644 --- a/test/integration/casl2/call1/0.txt +++ b/test/integration/casl2/call1/0.txt @@ -1,17 +1,17 @@ ../../../../casl2 -slatd ../../../../as/CMD/call1.casl Assemble ../../../../as/CMD/call1.casl (0) -../../../../as/CMD/call1.casl:1:MAIN START BEGIN -../../../../as/CMD/call1.casl:2:BEGIN LD GR1,=29 -../../../../as/CMD/call1.casl:3: CALL COPY -../../../../as/CMD/call1.casl:4: ST GR2,B -../../../../as/CMD/call1.casl:5: RET -../../../../as/CMD/call1.casl:6:B DS 1 -../../../../as/CMD/call1.casl:7: END -../../../../as/CMD/call1.casl:8:COPY START -../../../../as/CMD/call1.casl:9: LD GR2,GR1 -../../../../as/CMD/call1.casl:10: RET -../../../../as/CMD/call1.casl:11: END +../../../../as/CMD/call1.casl: 1:MAIN START BEGIN +../../../../as/CMD/call1.casl: 2:BEGIN LD GR1,=29 +../../../../as/CMD/call1.casl: 3: CALL COPY +../../../../as/CMD/call1.casl: 4: ST GR2,B +../../../../as/CMD/call1.casl: 5: RET +../../../../as/CMD/call1.casl: 6:B DS 1 +../../../../as/CMD/call1.casl: 7: END +../../../../as/CMD/call1.casl: 8:COPY START +../../../../as/CMD/call1.casl: 9: LD GR2,GR1 +../../../../as/CMD/call1.casl: 10: RET +../../../../as/CMD/call1.casl: 11: END Label:::: MAIN.B ---> #0007 @@ -20,28 +20,28 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/call1.casl (1) -../../../../as/CMD/call1.casl:1:MAIN START BEGIN -../../../../as/CMD/call1.casl:2:BEGIN LD GR1,=29 +../../../../as/CMD/call1.casl: 1:MAIN START BEGIN +../../../../as/CMD/call1.casl: 2:BEGIN LD GR1,=29 #000A #001D #0000 #1010 #0001 #000A -../../../../as/CMD/call1.casl:3: CALL COPY +../../../../as/CMD/call1.casl: 3: CALL COPY #0002 #8000 #0003 #0008 -../../../../as/CMD/call1.casl:4: ST GR2,B +../../../../as/CMD/call1.casl: 4: ST GR2,B #0004 #1120 #0005 #0007 -../../../../as/CMD/call1.casl:5: RET +../../../../as/CMD/call1.casl: 5: RET #0006 #8100 -../../../../as/CMD/call1.casl:6:B DS 1 +../../../../as/CMD/call1.casl: 6:B DS 1 #0007 #0000 -../../../../as/CMD/call1.casl:7: END -../../../../as/CMD/call1.casl:8:COPY START -../../../../as/CMD/call1.casl:9: LD GR2,GR1 +../../../../as/CMD/call1.casl: 7: END +../../../../as/CMD/call1.casl: 8:COPY START +../../../../as/CMD/call1.casl: 9: LD GR2,GR1 #0008 #1421 -../../../../as/CMD/call1.casl:10: RET +../../../../as/CMD/call1.casl: 10: RET #0009 #8100 -../../../../as/CMD/call1.casl:11: END +../../../../as/CMD/call1.casl: 11: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/call2/0.txt b/test/integration/casl2/call2/0.txt index a41b54f..ad3fba7 100644 --- a/test/integration/casl2/call2/0.txt +++ b/test/integration/casl2/call2/0.txt @@ -1,17 +1,17 @@ ../../../../casl2 -slatd ../../../../as/CMD/call2.casl Assemble ../../../../as/CMD/call2.casl (0) -../../../../as/CMD/call2.casl:1:MAIN START BEGIN -../../../../as/CMD/call2.casl:2:BEGIN LD GR1,=29 -../../../../as/CMD/call2.casl:3: CALL INCR -../../../../as/CMD/call2.casl:4: ST GR1,A -../../../../as/CMD/call2.casl:5: RET -../../../../as/CMD/call2.casl:6:A DS 1 -../../../../as/CMD/call2.casl:7: END -../../../../as/CMD/call2.casl:8:INCR START -../../../../as/CMD/call2.casl:9: ADDA GR1,=1 -../../../../as/CMD/call2.casl:10: RET -../../../../as/CMD/call2.casl:11:FIN END +../../../../as/CMD/call2.casl: 1:MAIN START BEGIN +../../../../as/CMD/call2.casl: 2:BEGIN LD GR1,=29 +../../../../as/CMD/call2.casl: 3: CALL INCR +../../../../as/CMD/call2.casl: 4: ST GR1,A +../../../../as/CMD/call2.casl: 5: RET +../../../../as/CMD/call2.casl: 6:A DS 1 +../../../../as/CMD/call2.casl: 7: END +../../../../as/CMD/call2.casl: 8:INCR START +../../../../as/CMD/call2.casl: 9: ADDA GR1,=1 +../../../../as/CMD/call2.casl: 10: RET +../../../../as/CMD/call2.casl: 11:FIN END Label:::: MAIN.A ---> #0007 @@ -21,30 +21,30 @@ MAIN ---> #0000 INCR.FIN ---> #000B Assemble ../../../../as/CMD/call2.casl (1) -../../../../as/CMD/call2.casl:1:MAIN START BEGIN -../../../../as/CMD/call2.casl:2:BEGIN LD GR1,=29 +../../../../as/CMD/call2.casl: 1:MAIN START BEGIN +../../../../as/CMD/call2.casl: 2:BEGIN LD GR1,=29 #000B #001D #0000 #1010 #0001 #000B -../../../../as/CMD/call2.casl:3: CALL INCR +../../../../as/CMD/call2.casl: 3: CALL INCR #0002 #8000 #0003 #0008 -../../../../as/CMD/call2.casl:4: ST GR1,A +../../../../as/CMD/call2.casl: 4: ST GR1,A #0004 #1110 #0005 #0007 -../../../../as/CMD/call2.casl:5: RET +../../../../as/CMD/call2.casl: 5: RET #0006 #8100 -../../../../as/CMD/call2.casl:6:A DS 1 +../../../../as/CMD/call2.casl: 6:A DS 1 #0007 #0000 -../../../../as/CMD/call2.casl:7: END -../../../../as/CMD/call2.casl:8:INCR START -../../../../as/CMD/call2.casl:9: ADDA GR1,=1 +../../../../as/CMD/call2.casl: 7: END +../../../../as/CMD/call2.casl: 8:INCR START +../../../../as/CMD/call2.casl: 9: ADDA GR1,=1 #000C #0001 #0008 #2010 #0009 #000C -../../../../as/CMD/call2.casl:10: RET +../../../../as/CMD/call2.casl: 10: RET #000A #8100 -../../../../as/CMD/call2.casl:11:FIN END +../../../../as/CMD/call2.casl: 11:FIN END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/cmd_err0/0.txt b/test/integration/casl2/cmd_err0/0.txt index 083a1db..711c1da 100644 --- a/test/integration/casl2/cmd_err0/0.txt +++ b/test/integration/casl2/cmd_err0/0.txt @@ -1,10 +1,10 @@ ../../../../casl2 -slatd ../../../../as/ERR/cmd_err0.casl Assemble ../../../../as/ERR/cmd_err0.casl (0) -../../../../as/ERR/cmd_err0.casl:1:MAIN START BEGIN -../../../../as/ERR/cmd_err0.casl:2:BEGIN LAD GR1,3 -../../../../as/ERR/cmd_err0.casl:3: LAD GR2,2 -../../../../as/ERR/cmd_err0.casl:4: LEA GR1,GR2 +../../../../as/ERR/cmd_err0.casl: 1:MAIN START BEGIN +../../../../as/ERR/cmd_err0.casl: 2:BEGIN LAD GR1,3 +../../../../as/ERR/cmd_err0.casl: 3: LAD GR2,2 +../../../../as/ERR/cmd_err0.casl: 4: LEA GR1,GR2 Assemble error - 109: LEA: not command of operand "r1,r2" ../../../../as/ERR/cmd_err0.casl:4: LEA GR1,GR2 diff --git a/test/integration/casl2/cmd_err1/0.txt b/test/integration/casl2/cmd_err1/0.txt index 3a7fd5f..0c5569a 100644 --- a/test/integration/casl2/cmd_err1/0.txt +++ b/test/integration/casl2/cmd_err1/0.txt @@ -1,8 +1,8 @@ ../../../../casl2 -slatd ../../../../as/ERR/cmd_err1.casl Assemble ../../../../as/ERR/cmd_err1.casl (0) -../../../../as/ERR/cmd_err1.casl:1:MAIN START BEGIN -../../../../as/ERR/cmd_err1.casl:2:BEGIN LEA GR1,A +../../../../as/ERR/cmd_err1.casl: 1:MAIN START BEGIN +../../../../as/ERR/cmd_err1.casl: 2:BEGIN LEA GR1,A Assemble error - 110: LEA: not command of operand "r,adr[,x]" ../../../../as/ERR/cmd_err1.casl:2: BEGIN LEA GR1,A diff --git a/test/integration/casl2/count_call/0.txt b/test/integration/casl2/count_call/0.txt index 0e9b61b..3e86948 100644 --- a/test/integration/casl2/count_call/0.txt +++ b/test/integration/casl2/count_call/0.txt @@ -1,165 +1,165 @@ ../../../../casl2 -sla ../../../../as/FUNC/count1_call.casl ../../../../as/FUNC/count1.casl ../../../../as/FUNC/outa.casl Assemble ../../../../as/FUNC/count1_call.casl (0) -../../../../as/FUNC/count1_call.casl:1:;; count1.casl(「アセンブラ言語の仕様」プログラム例)を呼び出し、出力結果を表示 -../../../../as/FUNC/count1_call.casl:2:;; 使い方: casl2 count1_call.casl count1.casl outa.casl -../../../../as/FUNC/count1_call.casl:3:MAIN START -../../../../as/FUNC/count1_call.casl:4: LAD GR2,0 -../../../../as/FUNC/count1_call.casl:5:LOOP CPA GR2,MAX ; ループ開始。GR2がMAXの値になったらループ脱出 -../../../../as/FUNC/count1_call.casl:6: JZE FIN ; ↓ -../../../../as/FUNC/count1_call.casl:7: LD GR1,GR2 ; GR1にVALの値をロード -../../../../as/FUNC/count1_call.casl:8: CALL COUNT1 ; COUNT1を呼び出す。出力はGR0に格納 -../../../../as/FUNC/count1_call.casl:9: LD GR1,GR0 ; GR1にGR0の値をコピー -../../../../as/FUNC/count1_call.casl:10: CALL OUTA ; OUTAを呼び出す -../../../../as/FUNC/count1_call.casl:11: LAD GR2,1,GR2 ; GR2 <= GR2 + 1 -../../../../as/FUNC/count1_call.casl:12: JUMP LOOP ; ループ終端 -../../../../as/FUNC/count1_call.casl:13:FIN RET -../../../../as/FUNC/count1_call.casl:14:MAX DC 256 -../../../../as/FUNC/count1_call.casl:15: END +../../../../as/FUNC/count1_call.casl: 1:;; count1.casl(「アセンブラ言語の仕様」プログラム例)を呼び出し、出力結果を表示 +../../../../as/FUNC/count1_call.casl: 2:;; 使い方: casl2 count1_call.casl count1.casl outa.casl +../../../../as/FUNC/count1_call.casl: 3:MAIN START +../../../../as/FUNC/count1_call.casl: 4: LAD GR2,0 +../../../../as/FUNC/count1_call.casl: 5:LOOP CPA GR2,MAX ; ループ開始。GR2がMAXの値になったらループ脱出 +../../../../as/FUNC/count1_call.casl: 6: JZE FIN ; ↓ +../../../../as/FUNC/count1_call.casl: 7: LD GR1,GR2 ; GR1にVALの値をロード +../../../../as/FUNC/count1_call.casl: 8: CALL COUNT1 ; COUNT1を呼び出す。出力はGR0に格納 +../../../../as/FUNC/count1_call.casl: 9: LD GR1,GR0 ; GR1にGR0の値をコピー +../../../../as/FUNC/count1_call.casl: 10: CALL OUTA ; OUTAを呼び出す +../../../../as/FUNC/count1_call.casl: 11: LAD GR2,1,GR2 ; GR2 <= GR2 + 1 +../../../../as/FUNC/count1_call.casl: 12: JUMP LOOP ; ループ終端 +../../../../as/FUNC/count1_call.casl: 13:FIN RET +../../../../as/FUNC/count1_call.casl: 14:MAX DC 256 +../../../../as/FUNC/count1_call.casl: 15: END Assemble ../../../../as/FUNC/count1.casl (0) -../../../../as/FUNC/count1.casl:1:COUNT1 START -../../../../as/FUNC/count1.casl:2:; 入力 GR1:検索する語 -../../../../as/FUNC/count1.casl:3:; 処理 GR1中の'1'のビットの個数を求める -../../../../as/FUNC/count1.casl:4:; 出力 GR0:GR1中の'1'のビットの個数 -../../../../as/FUNC/count1.casl:5: PUSH 0,GR1 -../../../../as/FUNC/count1.casl:6: PUSH 0,GR2 -../../../../as/FUNC/count1.casl:7: SUBA GR2,GR2 -../../../../as/FUNC/count1.casl:8: AND GR1,GR1 -../../../../as/FUNC/count1.casl:9: JZE RETURN -../../../../as/FUNC/count1.casl:10:MORE LAD GR2,1,GR2 -../../../../as/FUNC/count1.casl:11: LAD GR0,-1,GR1 -../../../../as/FUNC/count1.casl:12: AND GR1,GR0 -../../../../as/FUNC/count1.casl:13: JNZ MORE -../../../../as/FUNC/count1.casl:14:RETURN LD GR0,GR2 -../../../../as/FUNC/count1.casl:15: POP GR2 -../../../../as/FUNC/count1.casl:16: POP GR1 -../../../../as/FUNC/count1.casl:17: RET -../../../../as/FUNC/count1.casl:18: END +../../../../as/FUNC/count1.casl: 1:COUNT1 START +../../../../as/FUNC/count1.casl: 2:; 入力 GR1:検索する語 +../../../../as/FUNC/count1.casl: 3:; 処理 GR1中の'1'のビットの個数を求める +../../../../as/FUNC/count1.casl: 4:; 出力 GR0:GR1中の'1'のビットの個数 +../../../../as/FUNC/count1.casl: 5: PUSH 0,GR1 +../../../../as/FUNC/count1.casl: 6: PUSH 0,GR2 +../../../../as/FUNC/count1.casl: 7: SUBA GR2,GR2 +../../../../as/FUNC/count1.casl: 8: AND GR1,GR1 +../../../../as/FUNC/count1.casl: 9: JZE RETURN +../../../../as/FUNC/count1.casl: 10:MORE LAD GR2,1,GR2 +../../../../as/FUNC/count1.casl: 11: LAD GR0,-1,GR1 +../../../../as/FUNC/count1.casl: 12: AND GR1,GR0 +../../../../as/FUNC/count1.casl: 13: JNZ MORE +../../../../as/FUNC/count1.casl: 14:RETURN LD GR0,GR2 +../../../../as/FUNC/count1.casl: 15: POP GR2 +../../../../as/FUNC/count1.casl: 16: POP GR1 +../../../../as/FUNC/count1.casl: 17: RET +../../../../as/FUNC/count1.casl: 18: END Assemble ../../../../as/FUNC/outa.casl (0) -../../../../as/FUNC/outa.casl:1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 -../../../../as/FUNC/outa.casl:2:OUTA START -../../../../as/FUNC/outa.casl:3: RPUSH -../../../../as/FUNC/outa.casl:4: LAD GR2,10 ; GR2に10進数の「10」を格納。 -../../../../as/FUNC/outa.casl:5: LAD GR0,0 ; GR0 <- 0 -../../../../as/FUNC/outa.casl:6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 -../../../../as/FUNC/outa.casl:7: ST GR0,LEN ; LENの初期化 -../../../../as/FUNC/outa.casl:8: AND GR1,GR1 ; GR1をテスト -../../../../as/FUNC/outa.casl:9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ -../../../../as/FUNC/outa.casl:10: JPL STI ; GR1が正数の場合、STIにジャンプ -../../../../as/FUNC/outa.casl:11: LAD GR4,1 ; GR1が負数の場合、GR4をオン -../../../../as/FUNC/outa.casl:12: CALL OABS ; GR1を正数に変換 -../../../../as/FUNC/outa.casl:13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 -../../../../as/FUNC/outa.casl:14: JMI STLST ; ↓ -../../../../as/FUNC/outa.casl:15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 -../../../../as/FUNC/outa.casl:16: LD GR1,GR3 ; GR1にGR3をコピー -../../../../as/FUNC/outa.casl:17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 -../../../../as/FUNC/outa.casl:18: CALL STSTR ; GR1をSTR領域に格納 -../../../../as/FUNC/outa.casl:19: LD GR1,GR0 ; GR0をGR1にコピー -../../../../as/FUNC/outa.casl:20: JUMP STI ; ループ終端 -../../../../as/FUNC/outa.casl:21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 -../../../../as/FUNC/outa.casl:22: CALL STSTR ; GR1をSTR領域に格納 -../../../../as/FUNC/outa.casl:23: AND GR4,GR4 ; 正数の場合 -../../../../as/FUNC/outa.casl:24: JZE PRT ; ↓ -../../../../as/FUNC/outa.casl:25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 -../../../../as/FUNC/outa.casl:26: CALL STSTR ; ↓ -../../../../as/FUNC/outa.casl:27: JUMP PRT ; PRTにジャンプ -../../../../as/FUNC/outa.casl:28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 -../../../../as/FUNC/outa.casl:29: CALL STSTR ; ↓ -../../../../as/FUNC/outa.casl:30:PRT LD GR2,LEN ; GR2にLENの値を格納 -../../../../as/FUNC/outa.casl:31: LAD GR1,STR ; GR1に文字列のアドレスを格納 -../../../../as/FUNC/outa.casl:32: CALL REV ; 文字列を逆順に並べ替え -../../../../as/FUNC/outa.casl:33: OUT STR,LEN ; 文字列を出力 -../../../../as/FUNC/outa.casl:34: RPOP -../../../../as/FUNC/outa.casl:35: RET -../../../../as/FUNC/outa.casl:36:STR DS 17 -../../../../as/FUNC/outa.casl:37:LEN DS 1 -../../../../as/FUNC/outa.casl:38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' -../../../../as/FUNC/outa.casl:39: END -../../../../as/FUNC/outa.casl:40:;; GR1をSTR領域に格納し、LENをインクリメント -../../../../as/FUNC/outa.casl:41:STSTR START -../../../../as/FUNC/outa.casl:42: PUSH 0,GR1 -../../../../as/FUNC/outa.casl:43: PUSH 0,GR2 -../../../../as/FUNC/outa.casl:44: LD GR2,LEN ; GR2にLENの値をロード -../../../../as/FUNC/outa.casl:45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 -../../../../as/FUNC/outa.casl:46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 -../../../../as/FUNC/outa.casl:47: ST GR2,LEN ; LENにGR2を格納 -../../../../as/FUNC/outa.casl:48: POP GR2 -../../../../as/FUNC/outa.casl:49: POP GR1 -../../../../as/FUNC/outa.casl:50: RET -../../../../as/FUNC/outa.casl:51: END -../../../../as/FUNC/outa.casl:52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する -../../../../as/FUNC/outa.casl:53:;;; 0〜65535の範囲の数値を扱う -../../../../as/FUNC/outa.casl:54:ODIVL START -../../../../as/FUNC/outa.casl:55: PUSH 0,GR1 -../../../../as/FUNC/outa.casl:56: PUSH 0,GR2 -../../../../as/FUNC/outa.casl:57: PUSH 0,GR4 -../../../../as/FUNC/outa.casl:58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ -../../../../as/FUNC/outa.casl:59: JZE ODFIN ; ↓ -../../../../as/FUNC/outa.casl:60: ST GR2,ODY ; ODYにGR2の初期値を保存 -../../../../as/FUNC/outa.casl:61: LAD GR0,0 ; GR0の初期化 -../../../../as/FUNC/outa.casl:62: LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:63: LAD GR4,1 ; GR4の初期化。対象ビットを表す -../../../../as/FUNC/outa.casl:64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 -../../../../as/FUNC/outa.casl:65: JPL ODLOOP ; ↓ -../../../../as/FUNC/outa.casl:66: SLL GR4,1 ; GR4を1回左シフト -../../../../as/FUNC/outa.casl:67: SLL GR2,1 ; GR2を1回左シフト -../../../../as/FUNC/outa.casl:68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ -../../../../as/FUNC/outa.casl:69: JUMP ODSL ; ループ終端 -../../../../as/FUNC/outa.casl:70:ODYOV SRL GR2,1 -../../../../as/FUNC/outa.casl:71: LAD GR2,#8000,GR2 -../../../../as/FUNC/outa.casl:72: SRL GR4,1 -../../../../as/FUNC/outa.casl:73: JUMP ODLPIN -../../../../as/FUNC/outa.casl:74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト -../../../../as/FUNC/outa.casl:75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:76: SRL GR2,1 ; GR2を1回右シフト -../../../../as/FUNC/outa.casl:77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:78: JMI ODFIN ; ↓ -../../../../as/FUNC/outa.casl:79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ -../../../../as/FUNC/outa.casl:80: JMI ODLOOP ; ↓ -../../../../as/FUNC/outa.casl:81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 -../../../../as/FUNC/outa.casl:82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 -../../../../as/FUNC/outa.casl:83: JUMP ODLOOP ; ループ終端 -../../../../as/FUNC/outa.casl:84:ODFIN LD GR3,GR1 -../../../../as/FUNC/outa.casl:85: POP GR4 -../../../../as/FUNC/outa.casl:86: POP GR2 -../../../../as/FUNC/outa.casl:87: POP GR1 -../../../../as/FUNC/outa.casl:88: RET -../../../../as/FUNC/outa.casl:89:ODY DS 1 -../../../../as/FUNC/outa.casl:90: END -../../../../as/FUNC/outa.casl:91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える -../../../../as/FUNC/outa.casl:92:;; 例: 12345 -> 54321、54321- -> -12345 -../../../../as/FUNC/outa.casl:93:REV START -../../../../as/FUNC/outa.casl:94: RPUSH -../../../../as/FUNC/outa.casl:95: LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:97: JZE RNEXT ; ↓ -../../../../as/FUNC/outa.casl:98: LD GR4,GR1 ; GR4にGR1の値をコピー -../../../../as/FUNC/outa.casl:99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 -../../../../as/FUNC/outa.casl:100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 -../../../../as/FUNC/outa.casl:101: PUSH 0,GR5 ; GR5をプッシュ -../../../../as/FUNC/outa.casl:102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 -../../../../as/FUNC/outa.casl:103: JUMP RPU ; ループ終端 -../../../../as/FUNC/outa.casl:104:RNEXT LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:106: JZE RFIN ; ↓ -../../../../as/FUNC/outa.casl:107: POP GR5 ; GR5にポップ -../../../../as/FUNC/outa.casl:108: LD GR4,GR1 ; GR4にGR1の値をコピー -../../../../as/FUNC/outa.casl:109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 -../../../../as/FUNC/outa.casl:110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 -../../../../as/FUNC/outa.casl:111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 -../../../../as/FUNC/outa.casl:112: JUMP RPO ; ループ終端 -../../../../as/FUNC/outa.casl:113:RFIN RPOP -../../../../as/FUNC/outa.casl:114: RET -../../../../as/FUNC/outa.casl:115: END -../../../../as/FUNC/outa.casl:116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 -../../../../as/FUNC/outa.casl:117:;; 例: -10 -> 10, -20 -> 20 -../../../../as/FUNC/outa.casl:118:OABS START -../../../../as/FUNC/outa.casl:119: XOR GR1,=#FFFF ; GR1の値を反転 -../../../../as/FUNC/outa.casl:120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 -../../../../as/FUNC/outa.casl:121: RET -../../../../as/FUNC/outa.casl:122: END +../../../../as/FUNC/outa.casl: 1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 +../../../../as/FUNC/outa.casl: 2:OUTA START +../../../../as/FUNC/outa.casl: 3: RPUSH +../../../../as/FUNC/outa.casl: 4: LAD GR2,10 ; GR2に10進数の「10」を格納。 +../../../../as/FUNC/outa.casl: 5: LAD GR0,0 ; GR0 <- 0 +../../../../as/FUNC/outa.casl: 6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 +../../../../as/FUNC/outa.casl: 7: ST GR0,LEN ; LENの初期化 +../../../../as/FUNC/outa.casl: 8: AND GR1,GR1 ; GR1をテスト +../../../../as/FUNC/outa.casl: 9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ +../../../../as/FUNC/outa.casl: 10: JPL STI ; GR1が正数の場合、STIにジャンプ +../../../../as/FUNC/outa.casl: 11: LAD GR4,1 ; GR1が負数の場合、GR4をオン +../../../../as/FUNC/outa.casl: 12: CALL OABS ; GR1を正数に変換 +../../../../as/FUNC/outa.casl: 13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 +../../../../as/FUNC/outa.casl: 14: JMI STLST ; ↓ +../../../../as/FUNC/outa.casl: 15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 +../../../../as/FUNC/outa.casl: 16: LD GR1,GR3 ; GR1にGR3をコピー +../../../../as/FUNC/outa.casl: 17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 18: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 19: LD GR1,GR0 ; GR0をGR1にコピー +../../../../as/FUNC/outa.casl: 20: JUMP STI ; ループ終端 +../../../../as/FUNC/outa.casl: 21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 22: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 23: AND GR4,GR4 ; 正数の場合 +../../../../as/FUNC/outa.casl: 24: JZE PRT ; ↓ +../../../../as/FUNC/outa.casl: 25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 26: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 27: JUMP PRT ; PRTにジャンプ +../../../../as/FUNC/outa.casl: 28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 29: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 30:PRT LD GR2,LEN ; GR2にLENの値を格納 +../../../../as/FUNC/outa.casl: 31: LAD GR1,STR ; GR1に文字列のアドレスを格納 +../../../../as/FUNC/outa.casl: 32: CALL REV ; 文字列を逆順に並べ替え +../../../../as/FUNC/outa.casl: 33: OUT STR,LEN ; 文字列を出力 +../../../../as/FUNC/outa.casl: 34: RPOP +../../../../as/FUNC/outa.casl: 35: RET +../../../../as/FUNC/outa.casl: 36:STR DS 17 +../../../../as/FUNC/outa.casl: 37:LEN DS 1 +../../../../as/FUNC/outa.casl: 38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' +../../../../as/FUNC/outa.casl: 39: END +../../../../as/FUNC/outa.casl: 40:;; GR1をSTR領域に格納し、LENをインクリメント +../../../../as/FUNC/outa.casl: 41:STSTR START +../../../../as/FUNC/outa.casl: 42: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 43: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 44: LD GR2,LEN ; GR2にLENの値をロード +../../../../as/FUNC/outa.casl: 45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 +../../../../as/FUNC/outa.casl: 46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 +../../../../as/FUNC/outa.casl: 47: ST GR2,LEN ; LENにGR2を格納 +../../../../as/FUNC/outa.casl: 48: POP GR2 +../../../../as/FUNC/outa.casl: 49: POP GR1 +../../../../as/FUNC/outa.casl: 50: RET +../../../../as/FUNC/outa.casl: 51: END +../../../../as/FUNC/outa.casl: 52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する +../../../../as/FUNC/outa.casl: 53:;;; 0〜65535の範囲の数値を扱う +../../../../as/FUNC/outa.casl: 54:ODIVL START +../../../../as/FUNC/outa.casl: 55: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 56: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 57: PUSH 0,GR4 +../../../../as/FUNC/outa.casl: 58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ +../../../../as/FUNC/outa.casl: 59: JZE ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 60: ST GR2,ODY ; ODYにGR2の初期値を保存 +../../../../as/FUNC/outa.casl: 61: LAD GR0,0 ; GR0の初期化 +../../../../as/FUNC/outa.casl: 62: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 63: LAD GR4,1 ; GR4の初期化。対象ビットを表す +../../../../as/FUNC/outa.casl: 64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 +../../../../as/FUNC/outa.casl: 65: JPL ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 66: SLL GR4,1 ; GR4を1回左シフト +../../../../as/FUNC/outa.casl: 67: SLL GR2,1 ; GR2を1回左シフト +../../../../as/FUNC/outa.casl: 68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ +../../../../as/FUNC/outa.casl: 69: JUMP ODSL ; ループ終端 +../../../../as/FUNC/outa.casl: 70:ODYOV SRL GR2,1 +../../../../as/FUNC/outa.casl: 71: LAD GR2,#8000,GR2 +../../../../as/FUNC/outa.casl: 72: SRL GR4,1 +../../../../as/FUNC/outa.casl: 73: JUMP ODLPIN +../../../../as/FUNC/outa.casl: 74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト +../../../../as/FUNC/outa.casl: 75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 76: SRL GR2,1 ; GR2を1回右シフト +../../../../as/FUNC/outa.casl: 77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 78: JMI ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ +../../../../as/FUNC/outa.casl: 80: JMI ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 +../../../../as/FUNC/outa.casl: 82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 +../../../../as/FUNC/outa.casl: 83: JUMP ODLOOP ; ループ終端 +../../../../as/FUNC/outa.casl: 84:ODFIN LD GR3,GR1 +../../../../as/FUNC/outa.casl: 85: POP GR4 +../../../../as/FUNC/outa.casl: 86: POP GR2 +../../../../as/FUNC/outa.casl: 87: POP GR1 +../../../../as/FUNC/outa.casl: 88: RET +../../../../as/FUNC/outa.casl: 89:ODY DS 1 +../../../../as/FUNC/outa.casl: 90: END +../../../../as/FUNC/outa.casl: 91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える +../../../../as/FUNC/outa.casl: 92:;; 例: 12345 -> 54321、54321- -> -12345 +../../../../as/FUNC/outa.casl: 93:REV START +../../../../as/FUNC/outa.casl: 94: RPUSH +../../../../as/FUNC/outa.casl: 95: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 97: JZE RNEXT ; ↓ +../../../../as/FUNC/outa.casl: 98: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 +../../../../as/FUNC/outa.casl: 101: PUSH 0,GR5 ; GR5をプッシュ +../../../../as/FUNC/outa.casl: 102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 103: JUMP RPU ; ループ終端 +../../../../as/FUNC/outa.casl: 104:RNEXT LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 106: JZE RFIN ; ↓ +../../../../as/FUNC/outa.casl: 107: POP GR5 ; GR5にポップ +../../../../as/FUNC/outa.casl: 108: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 +../../../../as/FUNC/outa.casl: 111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 112: JUMP RPO ; ループ終端 +../../../../as/FUNC/outa.casl: 113:RFIN RPOP +../../../../as/FUNC/outa.casl: 114: RET +../../../../as/FUNC/outa.casl: 115: END +../../../../as/FUNC/outa.casl: 116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 +../../../../as/FUNC/outa.casl: 117:;; 例: -10 -> 10, -20 -> 20 +../../../../as/FUNC/outa.casl: 118:OABS START +../../../../as/FUNC/outa.casl: 119: XOR GR1,=#FFFF ; GR1の値を反転 +../../../../as/FUNC/outa.casl: 120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 +../../../../as/FUNC/outa.casl: 121: RET +../../../../as/FUNC/outa.casl: 122: END Label:::: OUTA.STI ---> #0044 @@ -193,83 +193,83 @@ ODIVL.ODLOOP ---> #00EB ODIVL.ODLPIN ---> #00F8 Assemble ../../../../as/FUNC/count1_call.casl (1) -../../../../as/FUNC/count1_call.casl:1:;; count1.casl(「アセンブラ言語の仕様」プログラム例)を呼び出し、出力結果を表示 -../../../../as/FUNC/count1_call.casl:2:;; 使い方: casl2 count1_call.casl count1.casl outa.casl -../../../../as/FUNC/count1_call.casl:3:MAIN START -../../../../as/FUNC/count1_call.casl:4: LAD GR2,0 +../../../../as/FUNC/count1_call.casl: 1:;; count1.casl(「アセンブラ言語の仕様」プログラム例)を呼び出し、出力結果を表示 +../../../../as/FUNC/count1_call.casl: 2:;; 使い方: casl2 count1_call.casl count1.casl outa.casl +../../../../as/FUNC/count1_call.casl: 3:MAIN START +../../../../as/FUNC/count1_call.casl: 4: LAD GR2,0 #0000 #1220 #0001 #0000 -../../../../as/FUNC/count1_call.casl:5:LOOP CPA GR2,MAX ; ループ開始。GR2がMAXの値になったらループ脱出 +../../../../as/FUNC/count1_call.casl: 5:LOOP CPA GR2,MAX ; ループ開始。GR2がMAXの値になったらループ脱出 #0002 #4020 #0003 #0011 -../../../../as/FUNC/count1_call.casl:6: JZE FIN ; ↓ +../../../../as/FUNC/count1_call.casl: 6: JZE FIN ; ↓ #0004 #6300 #0005 #0010 -../../../../as/FUNC/count1_call.casl:7: LD GR1,GR2 ; GR1にVALの値をロード +../../../../as/FUNC/count1_call.casl: 7: LD GR1,GR2 ; GR1にVALの値をロード #0006 #1412 -../../../../as/FUNC/count1_call.casl:8: CALL COUNT1 ; COUNT1を呼び出す。出力はGR0に格納 +../../../../as/FUNC/count1_call.casl: 8: CALL COUNT1 ; COUNT1を呼び出す。出力はGR0に格納 #0007 #8000 #0008 #0012 -../../../../as/FUNC/count1_call.casl:9: LD GR1,GR0 ; GR1にGR0の値をコピー +../../../../as/FUNC/count1_call.casl: 9: LD GR1,GR0 ; GR1にGR0の値をコピー #0009 #1410 -../../../../as/FUNC/count1_call.casl:10: CALL OUTA ; OUTAを呼び出す +../../../../as/FUNC/count1_call.casl: 10: CALL OUTA ; OUTAを呼び出す #000A #8000 #000B #0025 -../../../../as/FUNC/count1_call.casl:11: LAD GR2,1,GR2 ; GR2 <= GR2 + 1 +../../../../as/FUNC/count1_call.casl: 11: LAD GR2,1,GR2 ; GR2 <= GR2 + 1 #000C #1222 #000D #0001 -../../../../as/FUNC/count1_call.casl:12: JUMP LOOP ; ループ終端 +../../../../as/FUNC/count1_call.casl: 12: JUMP LOOP ; ループ終端 #000E #6400 #000F #0002 -../../../../as/FUNC/count1_call.casl:13:FIN RET +../../../../as/FUNC/count1_call.casl: 13:FIN RET #0010 #8100 -../../../../as/FUNC/count1_call.casl:14:MAX DC 256 +../../../../as/FUNC/count1_call.casl: 14:MAX DC 256 #0011 #0100 -../../../../as/FUNC/count1_call.casl:15: END +../../../../as/FUNC/count1_call.casl: 15: END Assemble ../../../../as/FUNC/count1.casl (1) -../../../../as/FUNC/count1.casl:1:COUNT1 START -../../../../as/FUNC/count1.casl:2:; 入力 GR1:検索する語 -../../../../as/FUNC/count1.casl:3:; 処理 GR1中の'1'のビットの個数を求める -../../../../as/FUNC/count1.casl:4:; 出力 GR0:GR1中の'1'のビットの個数 -../../../../as/FUNC/count1.casl:5: PUSH 0,GR1 +../../../../as/FUNC/count1.casl: 1:COUNT1 START +../../../../as/FUNC/count1.casl: 2:; 入力 GR1:検索する語 +../../../../as/FUNC/count1.casl: 3:; 処理 GR1中の'1'のビットの個数を求める +../../../../as/FUNC/count1.casl: 4:; 出力 GR0:GR1中の'1'のビットの個数 +../../../../as/FUNC/count1.casl: 5: PUSH 0,GR1 #0012 #7001 #0013 #0000 -../../../../as/FUNC/count1.casl:6: PUSH 0,GR2 +../../../../as/FUNC/count1.casl: 6: PUSH 0,GR2 #0014 #7002 #0015 #0000 -../../../../as/FUNC/count1.casl:7: SUBA GR2,GR2 +../../../../as/FUNC/count1.casl: 7: SUBA GR2,GR2 #0016 #2522 -../../../../as/FUNC/count1.casl:8: AND GR1,GR1 +../../../../as/FUNC/count1.casl: 8: AND GR1,GR1 #0017 #3411 -../../../../as/FUNC/count1.casl:9: JZE RETURN +../../../../as/FUNC/count1.casl: 9: JZE RETURN #0018 #6300 #0019 #0021 -../../../../as/FUNC/count1.casl:10:MORE LAD GR2,1,GR2 +../../../../as/FUNC/count1.casl: 10:MORE LAD GR2,1,GR2 #001A #1222 #001B #0001 -../../../../as/FUNC/count1.casl:11: LAD GR0,-1,GR1 +../../../../as/FUNC/count1.casl: 11: LAD GR0,-1,GR1 #001C #1201 #001D #FFFF -../../../../as/FUNC/count1.casl:12: AND GR1,GR0 +../../../../as/FUNC/count1.casl: 12: AND GR1,GR0 #001E #3410 -../../../../as/FUNC/count1.casl:13: JNZ MORE +../../../../as/FUNC/count1.casl: 13: JNZ MORE #001F #6200 #0020 #001A -../../../../as/FUNC/count1.casl:14:RETURN LD GR0,GR2 +../../../../as/FUNC/count1.casl: 14:RETURN LD GR0,GR2 #0021 #1402 -../../../../as/FUNC/count1.casl:15: POP GR2 +../../../../as/FUNC/count1.casl: 15: POP GR2 #0022 #7120 -../../../../as/FUNC/count1.casl:16: POP GR1 +../../../../as/FUNC/count1.casl: 16: POP GR1 #0023 #7110 -../../../../as/FUNC/count1.casl:17: RET +../../../../as/FUNC/count1.casl: 17: RET #0024 #8100 -../../../../as/FUNC/count1.casl:18: END +../../../../as/FUNC/count1.casl: 18: END Assemble ../../../../as/FUNC/outa.casl (1) -../../../../as/FUNC/outa.casl:1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 -../../../../as/FUNC/outa.casl:2:OUTA START -../../../../as/FUNC/outa.casl:3: RPUSH +../../../../as/FUNC/outa.casl: 1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 +../../../../as/FUNC/outa.casl: 2:OUTA START +../../../../as/FUNC/outa.casl: 3: RPUSH #0025 #7001 #0026 #0000 #0027 #7002 @@ -284,90 +284,90 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0030 #0000 #0031 #7007 #0032 #0000 -../../../../as/FUNC/outa.casl:4: LAD GR2,10 ; GR2に10進数の「10」を格納。 +../../../../as/FUNC/outa.casl: 4: LAD GR2,10 ; GR2に10進数の「10」を格納。 #0033 #1220 #0034 #000A -../../../../as/FUNC/outa.casl:5: LAD GR0,0 ; GR0 <- 0 +../../../../as/FUNC/outa.casl: 5: LAD GR0,0 ; GR0 <- 0 #0035 #1200 #0036 #0000 -../../../../as/FUNC/outa.casl:6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 +../../../../as/FUNC/outa.casl: 6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 #0037 #1240 #0038 #0000 -../../../../as/FUNC/outa.casl:7: ST GR0,LEN ; LENの初期化 +../../../../as/FUNC/outa.casl: 7: ST GR0,LEN ; LENの初期化 #0039 #1100 #003A #0093 -../../../../as/FUNC/outa.casl:8: AND GR1,GR1 ; GR1をテスト +../../../../as/FUNC/outa.casl: 8: AND GR1,GR1 ; GR1をテスト #003B #3411 -../../../../as/FUNC/outa.casl:9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ +../../../../as/FUNC/outa.casl: 9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ #003C #6300 #003D #005E -../../../../as/FUNC/outa.casl:10: JPL STI ; GR1が正数の場合、STIにジャンプ +../../../../as/FUNC/outa.casl: 10: JPL STI ; GR1が正数の場合、STIにジャンプ #003E #6500 #003F #0044 -../../../../as/FUNC/outa.casl:11: LAD GR4,1 ; GR1が負数の場合、GR4をオン +../../../../as/FUNC/outa.casl: 11: LAD GR4,1 ; GR1が負数の場合、GR4をオン #0040 #1240 #0041 #0001 -../../../../as/FUNC/outa.casl:12: CALL OABS ; GR1を正数に変換 +../../../../as/FUNC/outa.casl: 12: CALL OABS ; GR1を正数に変換 #0042 #8000 #0043 #0135 -../../../../as/FUNC/outa.casl:13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 +../../../../as/FUNC/outa.casl: 13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 #0044 #4512 -../../../../as/FUNC/outa.casl:14: JMI STLST ; ↓ +../../../../as/FUNC/outa.casl: 14: JMI STLST ; ↓ #0045 #6100 #0046 #0051 -../../../../as/FUNC/outa.casl:15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 +../../../../as/FUNC/outa.casl: 15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 #0047 #8000 #0048 #00C7 -../../../../as/FUNC/outa.casl:16: LD GR1,GR3 ; GR1にGR3をコピー +../../../../as/FUNC/outa.casl: 16: LD GR1,GR3 ; GR1にGR3をコピー #0049 #1413 -../../../../as/FUNC/outa.casl:17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 #004A #1011 #004B #0094 -../../../../as/FUNC/outa.casl:18: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 18: CALL STSTR ; GR1をSTR領域に格納 #004C #8000 #004D #00B8 -../../../../as/FUNC/outa.casl:19: LD GR1,GR0 ; GR0をGR1にコピー +../../../../as/FUNC/outa.casl: 19: LD GR1,GR0 ; GR0をGR1にコピー #004E #1410 -../../../../as/FUNC/outa.casl:20: JUMP STI ; ループ終端 +../../../../as/FUNC/outa.casl: 20: JUMP STI ; ループ終端 #004F #6400 #0050 #0044 -../../../../as/FUNC/outa.casl:21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 #0051 #1011 #0052 #0094 -../../../../as/FUNC/outa.casl:22: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 22: CALL STSTR ; GR1をSTR領域に格納 #0053 #8000 #0054 #00B8 -../../../../as/FUNC/outa.casl:23: AND GR4,GR4 ; 正数の場合 +../../../../as/FUNC/outa.casl: 23: AND GR4,GR4 ; 正数の場合 #0055 #3444 -../../../../as/FUNC/outa.casl:24: JZE PRT ; ↓ +../../../../as/FUNC/outa.casl: 24: JZE PRT ; ↓ #0056 #6300 #0057 #0062 -../../../../as/FUNC/outa.casl:25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 #013A #002D #0058 #1010 #0059 #013A -../../../../as/FUNC/outa.casl:26: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 26: CALL STSTR ; ↓ #005A #8000 #005B #00B8 -../../../../as/FUNC/outa.casl:27: JUMP PRT ; PRTにジャンプ +../../../../as/FUNC/outa.casl: 27: JUMP PRT ; PRTにジャンプ #005C #6400 #005D #0062 -../../../../as/FUNC/outa.casl:28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 #005E #1010 #005F #0094 -../../../../as/FUNC/outa.casl:29: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 29: CALL STSTR ; ↓ #0060 #8000 #0061 #00B8 -../../../../as/FUNC/outa.casl:30:PRT LD GR2,LEN ; GR2にLENの値を格納 +../../../../as/FUNC/outa.casl: 30:PRT LD GR2,LEN ; GR2にLENの値を格納 #0062 #1020 #0063 #0093 -../../../../as/FUNC/outa.casl:31: LAD GR1,STR ; GR1に文字列のアドレスを格納 +../../../../as/FUNC/outa.casl: 31: LAD GR1,STR ; GR1に文字列のアドレスを格納 #0064 #1210 #0065 #0082 -../../../../as/FUNC/outa.casl:32: CALL REV ; 文字列を逆順に並べ替え +../../../../as/FUNC/outa.casl: 32: CALL REV ; 文字列を逆順に並べ替え #0066 #8000 #0067 #0102 -../../../../as/FUNC/outa.casl:33: OUT STR,LEN ; 文字列を出力 +../../../../as/FUNC/outa.casl: 33: OUT STR,LEN ; 文字列を出力 #0068 #7001 #0069 #0000 #006A #7002 @@ -387,7 +387,7 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0077 #0002 #0078 #7120 #0079 #7110 -../../../../as/FUNC/outa.casl:34: RPOP +../../../../as/FUNC/outa.casl: 34: RPOP #007A #7170 #007B #7160 #007C #7150 @@ -395,9 +395,9 @@ Assemble ../../../../as/FUNC/outa.casl (1) #007E #7130 #007F #7120 #0080 #7110 -../../../../as/FUNC/outa.casl:35: RET +../../../../as/FUNC/outa.casl: 35: RET #0081 #8100 -../../../../as/FUNC/outa.casl:36:STR DS 17 +../../../../as/FUNC/outa.casl: 36:STR DS 17 #0082 #0000 #0083 #0000 #0084 #0000 @@ -415,9 +415,9 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0090 #0000 #0091 #0000 #0092 #0000 -../../../../as/FUNC/outa.casl:37:LEN DS 1 +../../../../as/FUNC/outa.casl: 37:LEN DS 1 #0093 #0000 -../../../../as/FUNC/outa.casl:38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' +../../../../as/FUNC/outa.casl: 38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' #0094 #0030 #0095 #0031 #0096 #0032 @@ -454,136 +454,136 @@ Assemble ../../../../as/FUNC/outa.casl (1) #00B5 #0058 #00B6 #0059 #00B7 #005A -../../../../as/FUNC/outa.casl:39: END -../../../../as/FUNC/outa.casl:40:;; GR1をSTR領域に格納し、LENをインクリメント -../../../../as/FUNC/outa.casl:41:STSTR START -../../../../as/FUNC/outa.casl:42: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 39: END +../../../../as/FUNC/outa.casl: 40:;; GR1をSTR領域に格納し、LENをインクリメント +../../../../as/FUNC/outa.casl: 41:STSTR START +../../../../as/FUNC/outa.casl: 42: PUSH 0,GR1 #00B8 #7001 #00B9 #0000 -../../../../as/FUNC/outa.casl:43: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 43: PUSH 0,GR2 #00BA #7002 #00BB #0000 -../../../../as/FUNC/outa.casl:44: LD GR2,LEN ; GR2にLENの値をロード +../../../../as/FUNC/outa.casl: 44: LD GR2,LEN ; GR2にLENの値をロード #00BC #1020 #00BD #0093 -../../../../as/FUNC/outa.casl:45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 +../../../../as/FUNC/outa.casl: 45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 #00BE #1112 #00BF #0082 -../../../../as/FUNC/outa.casl:46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 +../../../../as/FUNC/outa.casl: 46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 #00C0 #1222 #00C1 #0001 -../../../../as/FUNC/outa.casl:47: ST GR2,LEN ; LENにGR2を格納 +../../../../as/FUNC/outa.casl: 47: ST GR2,LEN ; LENにGR2を格納 #00C2 #1120 #00C3 #0093 -../../../../as/FUNC/outa.casl:48: POP GR2 +../../../../as/FUNC/outa.casl: 48: POP GR2 #00C4 #7120 -../../../../as/FUNC/outa.casl:49: POP GR1 +../../../../as/FUNC/outa.casl: 49: POP GR1 #00C5 #7110 -../../../../as/FUNC/outa.casl:50: RET +../../../../as/FUNC/outa.casl: 50: RET #00C6 #8100 -../../../../as/FUNC/outa.casl:51: END -../../../../as/FUNC/outa.casl:52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する -../../../../as/FUNC/outa.casl:53:;;; 0〜65535の範囲の数値を扱う -../../../../as/FUNC/outa.casl:54:ODIVL START -../../../../as/FUNC/outa.casl:55: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 51: END +../../../../as/FUNC/outa.casl: 52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する +../../../../as/FUNC/outa.casl: 53:;;; 0〜65535の範囲の数値を扱う +../../../../as/FUNC/outa.casl: 54:ODIVL START +../../../../as/FUNC/outa.casl: 55: PUSH 0,GR1 #00C7 #7001 #00C8 #0000 -../../../../as/FUNC/outa.casl:56: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 56: PUSH 0,GR2 #00C9 #7002 #00CA #0000 -../../../../as/FUNC/outa.casl:57: PUSH 0,GR4 +../../../../as/FUNC/outa.casl: 57: PUSH 0,GR4 #00CB #7004 #00CC #0000 -../../../../as/FUNC/outa.casl:58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ +../../../../as/FUNC/outa.casl: 58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ #00CD #3422 -../../../../as/FUNC/outa.casl:59: JZE ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 59: JZE ODFIN ; ↓ #00CE #6300 #00CF #00FC -../../../../as/FUNC/outa.casl:60: ST GR2,ODY ; ODYにGR2の初期値を保存 +../../../../as/FUNC/outa.casl: 60: ST GR2,ODY ; ODYにGR2の初期値を保存 #00D0 #1120 #00D1 #0101 -../../../../as/FUNC/outa.casl:61: LAD GR0,0 ; GR0の初期化 +../../../../as/FUNC/outa.casl: 61: LAD GR0,0 ; GR0の初期化 #00D2 #1200 #00D3 #0000 -../../../../as/FUNC/outa.casl:62: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 62: LAD GR3,0 ; GR3の初期化 #00D4 #1230 #00D5 #0000 -../../../../as/FUNC/outa.casl:63: LAD GR4,1 ; GR4の初期化。対象ビットを表す +../../../../as/FUNC/outa.casl: 63: LAD GR4,1 ; GR4の初期化。対象ビットを表す #00D6 #1240 #00D7 #0001 -../../../../as/FUNC/outa.casl:64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 +../../../../as/FUNC/outa.casl: 64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 #00D8 #4521 -../../../../as/FUNC/outa.casl:65: JPL ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 65: JPL ODLOOP ; ↓ #00D9 #6500 #00DA #00EB -../../../../as/FUNC/outa.casl:66: SLL GR4,1 ; GR4を1回左シフト +../../../../as/FUNC/outa.casl: 66: SLL GR4,1 ; GR4を1回左シフト #00DB #5240 #00DC #0001 -../../../../as/FUNC/outa.casl:67: SLL GR2,1 ; GR2を1回左シフト +../../../../as/FUNC/outa.casl: 67: SLL GR2,1 ; GR2を1回左シフト #00DD #5220 #00DE #0001 -../../../../as/FUNC/outa.casl:68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ +../../../../as/FUNC/outa.casl: 68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ #00DF #6600 #00E0 #00E3 -../../../../as/FUNC/outa.casl:69: JUMP ODSL ; ループ終端 +../../../../as/FUNC/outa.casl: 69: JUMP ODSL ; ループ終端 #00E1 #6400 #00E2 #00D8 -../../../../as/FUNC/outa.casl:70:ODYOV SRL GR2,1 +../../../../as/FUNC/outa.casl: 70:ODYOV SRL GR2,1 #00E3 #5320 #00E4 #0001 -../../../../as/FUNC/outa.casl:71: LAD GR2,#8000,GR2 +../../../../as/FUNC/outa.casl: 71: LAD GR2,#8000,GR2 #00E5 #1222 #00E6 #8000 -../../../../as/FUNC/outa.casl:72: SRL GR4,1 +../../../../as/FUNC/outa.casl: 72: SRL GR4,1 #00E7 #5340 #00E8 #0001 -../../../../as/FUNC/outa.casl:73: JUMP ODLPIN +../../../../as/FUNC/outa.casl: 73: JUMP ODLPIN #00E9 #6400 #00EA #00F8 -../../../../as/FUNC/outa.casl:74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト +../../../../as/FUNC/outa.casl: 74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト #00EB #5340 #00EC #0001 -../../../../as/FUNC/outa.casl:75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 #00ED #6300 #00EE #00FC -../../../../as/FUNC/outa.casl:76: SRL GR2,1 ; GR2を1回右シフト +../../../../as/FUNC/outa.casl: 76: SRL GR2,1 ; GR2を1回右シフト #00EF #5320 #00F0 #0001 -../../../../as/FUNC/outa.casl:77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 #00F1 #4110 #00F2 #0101 -../../../../as/FUNC/outa.casl:78: JMI ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 78: JMI ODFIN ; ↓ #00F3 #6100 #00F4 #00FC -../../../../as/FUNC/outa.casl:79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ +../../../../as/FUNC/outa.casl: 79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ #00F5 #4512 -../../../../as/FUNC/outa.casl:80: JMI ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 80: JMI ODLOOP ; ↓ #00F6 #6100 #00F7 #00EB -../../../../as/FUNC/outa.casl:81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 +../../../../as/FUNC/outa.casl: 81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 #00F8 #2712 -../../../../as/FUNC/outa.casl:82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 +../../../../as/FUNC/outa.casl: 82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 #00F9 #2604 -../../../../as/FUNC/outa.casl:83: JUMP ODLOOP ; ループ終端 +../../../../as/FUNC/outa.casl: 83: JUMP ODLOOP ; ループ終端 #00FA #6400 #00FB #00EB -../../../../as/FUNC/outa.casl:84:ODFIN LD GR3,GR1 +../../../../as/FUNC/outa.casl: 84:ODFIN LD GR3,GR1 #00FC #1431 -../../../../as/FUNC/outa.casl:85: POP GR4 +../../../../as/FUNC/outa.casl: 85: POP GR4 #00FD #7140 -../../../../as/FUNC/outa.casl:86: POP GR2 +../../../../as/FUNC/outa.casl: 86: POP GR2 #00FE #7120 -../../../../as/FUNC/outa.casl:87: POP GR1 +../../../../as/FUNC/outa.casl: 87: POP GR1 #00FF #7110 -../../../../as/FUNC/outa.casl:88: RET +../../../../as/FUNC/outa.casl: 88: RET #0100 #8100 -../../../../as/FUNC/outa.casl:89:ODY DS 1 +../../../../as/FUNC/outa.casl: 89:ODY DS 1 #0101 #0000 -../../../../as/FUNC/outa.casl:90: END -../../../../as/FUNC/outa.casl:91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える -../../../../as/FUNC/outa.casl:92:;; 例: 12345 -> 54321、54321- -> -12345 -../../../../as/FUNC/outa.casl:93:REV START -../../../../as/FUNC/outa.casl:94: RPUSH +../../../../as/FUNC/outa.casl: 90: END +../../../../as/FUNC/outa.casl: 91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える +../../../../as/FUNC/outa.casl: 92:;; 例: 12345 -> 54321、54321- -> -12345 +../../../../as/FUNC/outa.casl: 93:REV START +../../../../as/FUNC/outa.casl: 94: RPUSH #0102 #7001 #0103 #0000 #0104 #7002 @@ -598,54 +598,54 @@ Assemble ../../../../as/FUNC/outa.casl (1) #010D #0000 #010E #7007 #010F #0000 -../../../../as/FUNC/outa.casl:95: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 95: LAD GR3,0 ; GR3の初期化 #0110 #1230 #0111 #0000 -../../../../as/FUNC/outa.casl:96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 #0112 #4532 -../../../../as/FUNC/outa.casl:97: JZE RNEXT ; ↓ +../../../../as/FUNC/outa.casl: 97: JZE RNEXT ; ↓ #0113 #6300 #0114 #011F -../../../../as/FUNC/outa.casl:98: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 98: LD GR4,GR1 ; GR4にGR1の値をコピー #0115 #1441 -../../../../as/FUNC/outa.casl:99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 #0116 #2643 -../../../../as/FUNC/outa.casl:100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 +../../../../as/FUNC/outa.casl: 100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 #0117 #1054 #0118 #0000 -../../../../as/FUNC/outa.casl:101: PUSH 0,GR5 ; GR5をプッシュ +../../../../as/FUNC/outa.casl: 101: PUSH 0,GR5 ; GR5をプッシュ #0119 #7005 #011A #0000 -../../../../as/FUNC/outa.casl:102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 #011B #1233 #011C #0001 -../../../../as/FUNC/outa.casl:103: JUMP RPU ; ループ終端 +../../../../as/FUNC/outa.casl: 103: JUMP RPU ; ループ終端 #011D #6400 #011E #0112 -../../../../as/FUNC/outa.casl:104:RNEXT LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 104:RNEXT LAD GR3,0 ; GR3の初期化 #011F #1230 #0120 #0000 -../../../../as/FUNC/outa.casl:105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 #0121 #4532 -../../../../as/FUNC/outa.casl:106: JZE RFIN ; ↓ +../../../../as/FUNC/outa.casl: 106: JZE RFIN ; ↓ #0122 #6300 #0123 #012D -../../../../as/FUNC/outa.casl:107: POP GR5 ; GR5にポップ +../../../../as/FUNC/outa.casl: 107: POP GR5 ; GR5にポップ #0124 #7150 -../../../../as/FUNC/outa.casl:108: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 108: LD GR4,GR1 ; GR4にGR1の値をコピー #0125 #1441 -../../../../as/FUNC/outa.casl:109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 #0126 #2643 -../../../../as/FUNC/outa.casl:110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 +../../../../as/FUNC/outa.casl: 110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 #0127 #1154 #0128 #0000 -../../../../as/FUNC/outa.casl:111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 #0129 #1233 #012A #0001 -../../../../as/FUNC/outa.casl:112: JUMP RPO ; ループ終端 +../../../../as/FUNC/outa.casl: 112: JUMP RPO ; ループ終端 #012B #6400 #012C #0121 -../../../../as/FUNC/outa.casl:113:RFIN RPOP +../../../../as/FUNC/outa.casl: 113:RFIN RPOP #012D #7170 #012E #7160 #012F #7150 @@ -653,22 +653,22 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0131 #7130 #0132 #7120 #0133 #7110 -../../../../as/FUNC/outa.casl:114: RET +../../../../as/FUNC/outa.casl: 114: RET #0134 #8100 -../../../../as/FUNC/outa.casl:115: END -../../../../as/FUNC/outa.casl:116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 -../../../../as/FUNC/outa.casl:117:;; 例: -10 -> 10, -20 -> 20 -../../../../as/FUNC/outa.casl:118:OABS START -../../../../as/FUNC/outa.casl:119: XOR GR1,=#FFFF ; GR1の値を反転 +../../../../as/FUNC/outa.casl: 115: END +../../../../as/FUNC/outa.casl: 116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 +../../../../as/FUNC/outa.casl: 117:;; 例: -10 -> 10, -20 -> 20 +../../../../as/FUNC/outa.casl: 118:OABS START +../../../../as/FUNC/outa.casl: 119: XOR GR1,=#FFFF ; GR1の値を反転 #013C #FFFF #0135 #3210 #0136 #013C -../../../../as/FUNC/outa.casl:120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 +../../../../as/FUNC/outa.casl: 120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 #0137 #1211 #0138 #0001 -../../../../as/FUNC/outa.casl:121: RET +../../../../as/FUNC/outa.casl: 121: RET #0139 #8100 -../../../../as/FUNC/outa.casl:122: END +../../../../as/FUNC/outa.casl: 122: END 0 1 1 diff --git a/test/integration/casl2/cpa1/0.txt b/test/integration/casl2/cpa1/0.txt index bf61a68..5693ff6 100644 --- a/test/integration/casl2/cpa1/0.txt +++ b/test/integration/casl2/cpa1/0.txt @@ -1,30 +1,30 @@ ../../../../casl2 -slatd ../../../../as/CMD/cpa1.casl Assemble ../../../../as/CMD/cpa1.casl (0) -../../../../as/CMD/cpa1.casl:1:MAIN START BEGIN -../../../../as/CMD/cpa1.casl:2:BEGIN LAD GR1,#5000 -../../../../as/CMD/cpa1.casl:3: LAD GR2,#F000 -../../../../as/CMD/cpa1.casl:4: CPA GR2,GR1 -../../../../as/CMD/cpa1.casl:5: RET -../../../../as/CMD/cpa1.casl:6: END +../../../../as/CMD/cpa1.casl: 1:MAIN START BEGIN +../../../../as/CMD/cpa1.casl: 2:BEGIN LAD GR1,#5000 +../../../../as/CMD/cpa1.casl: 3: LAD GR2,#F000 +../../../../as/CMD/cpa1.casl: 4: CPA GR2,GR1 +../../../../as/CMD/cpa1.casl: 5: RET +../../../../as/CMD/cpa1.casl: 6: END Label:::: MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/cpa1.casl (1) -../../../../as/CMD/cpa1.casl:1:MAIN START BEGIN -../../../../as/CMD/cpa1.casl:2:BEGIN LAD GR1,#5000 +../../../../as/CMD/cpa1.casl: 1:MAIN START BEGIN +../../../../as/CMD/cpa1.casl: 2:BEGIN LAD GR1,#5000 #0000 #1210 #0001 #5000 -../../../../as/CMD/cpa1.casl:3: LAD GR2,#F000 +../../../../as/CMD/cpa1.casl: 3: LAD GR2,#F000 #0002 #1220 #0003 #F000 -../../../../as/CMD/cpa1.casl:4: CPA GR2,GR1 +../../../../as/CMD/cpa1.casl: 4: CPA GR2,GR1 #0004 #4421 -../../../../as/CMD/cpa1.casl:5: RET +../../../../as/CMD/cpa1.casl: 5: RET #0005 #8100 -../../../../as/CMD/cpa1.casl:6: END +../../../../as/CMD/cpa1.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/dc_overflow/0.txt b/test/integration/casl2/dc_overflow/0.txt index 2c0b3b4..dc1bb49 100644 --- a/test/integration/casl2/dc_overflow/0.txt +++ b/test/integration/casl2/dc_overflow/0.txt @@ -1,16 +1,16 @@ ../../../../casl2 -slatd ../../../../as/CMD/dc_overflow.casl Assemble ../../../../as/CMD/dc_overflow.casl (0) -../../../../as/CMD/dc_overflow.casl:1:;; DC命令で、-32768〜32768の範囲にない10進数値を指定 -../../../../as/CMD/dc_overflow.casl:2:MAIN START BEGIN -../../../../as/CMD/dc_overflow.casl:3:BEGIN LD GR1,A -../../../../as/CMD/dc_overflow.casl:4: ADDL GR1,B -../../../../as/CMD/dc_overflow.casl:5: ST GR0,C -../../../../as/CMD/dc_overflow.casl:6: RET -../../../../as/CMD/dc_overflow.casl:7:A DC 32779 -../../../../as/CMD/dc_overflow.casl:8:B DC 32778 -../../../../as/CMD/dc_overflow.casl:9:C DS 1 -../../../../as/CMD/dc_overflow.casl:10: END +../../../../as/CMD/dc_overflow.casl: 1:;; DC命令で、-32768〜32768の範囲にない10進数値を指定 +../../../../as/CMD/dc_overflow.casl: 2:MAIN START BEGIN +../../../../as/CMD/dc_overflow.casl: 3:BEGIN LD GR1,A +../../../../as/CMD/dc_overflow.casl: 4: ADDL GR1,B +../../../../as/CMD/dc_overflow.casl: 5: ST GR0,C +../../../../as/CMD/dc_overflow.casl: 6: RET +../../../../as/CMD/dc_overflow.casl: 7:A DC 32779 +../../../../as/CMD/dc_overflow.casl: 8:B DC 32778 +../../../../as/CMD/dc_overflow.casl: 9:C DS 1 +../../../../as/CMD/dc_overflow.casl: 10: END Label:::: MAIN.A ---> #0007 @@ -20,26 +20,26 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/dc_overflow.casl (1) -../../../../as/CMD/dc_overflow.casl:1:;; DC命令で、-32768〜32768の範囲にない10進数値を指定 -../../../../as/CMD/dc_overflow.casl:2:MAIN START BEGIN -../../../../as/CMD/dc_overflow.casl:3:BEGIN LD GR1,A +../../../../as/CMD/dc_overflow.casl: 1:;; DC命令で、-32768〜32768の範囲にない10進数値を指定 +../../../../as/CMD/dc_overflow.casl: 2:MAIN START BEGIN +../../../../as/CMD/dc_overflow.casl: 3:BEGIN LD GR1,A #0000 #1010 #0001 #0007 -../../../../as/CMD/dc_overflow.casl:4: ADDL GR1,B +../../../../as/CMD/dc_overflow.casl: 4: ADDL GR1,B #0002 #2210 #0003 #0008 -../../../../as/CMD/dc_overflow.casl:5: ST GR0,C +../../../../as/CMD/dc_overflow.casl: 5: ST GR0,C #0004 #1100 #0005 #0009 -../../../../as/CMD/dc_overflow.casl:6: RET +../../../../as/CMD/dc_overflow.casl: 6: RET #0006 #8100 -../../../../as/CMD/dc_overflow.casl:7:A DC 32779 +../../../../as/CMD/dc_overflow.casl: 7:A DC 32779 #0007 #000B -../../../../as/CMD/dc_overflow.casl:8:B DC 32778 +../../../../as/CMD/dc_overflow.casl: 8:B DC 32778 #0008 #000A -../../../../as/CMD/dc_overflow.casl:9:C DS 1 +../../../../as/CMD/dc_overflow.casl: 9:C DS 1 #0009 #0000 -../../../../as/CMD/dc_overflow.casl:10: END +../../../../as/CMD/dc_overflow.casl: 10: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/dc_spc/0.txt b/test/integration/casl2/dc_spc/0.txt index 8c599e5..308be98 100644 --- a/test/integration/casl2/dc_spc/0.txt +++ b/test/integration/casl2/dc_spc/0.txt @@ -1,13 +1,13 @@ ../../../../casl2 -slatd ../../../../as/CMD/dc_spc.casl Assemble ../../../../as/CMD/dc_spc.casl (0) -../../../../as/CMD/dc_spc.casl:1:;;; DC命令で空白を指定 -../../../../as/CMD/dc_spc.casl:2:MAIN START -../../../../as/CMD/dc_spc.casl:3: OUT BUF,LEN -../../../../as/CMD/dc_spc.casl:4: RET -../../../../as/CMD/dc_spc.casl:5:BUF DC ' ' -../../../../as/CMD/dc_spc.casl:6:LEN DC 1 -../../../../as/CMD/dc_spc.casl:7: END +../../../../as/CMD/dc_spc.casl: 1:;;; DC命令で空白を指定 +../../../../as/CMD/dc_spc.casl: 2:MAIN START +../../../../as/CMD/dc_spc.casl: 3: OUT BUF,LEN +../../../../as/CMD/dc_spc.casl: 4: RET +../../../../as/CMD/dc_spc.casl: 5:BUF DC ' ' +../../../../as/CMD/dc_spc.casl: 6:LEN DC 1 +../../../../as/CMD/dc_spc.casl: 7: END Label:::: MAIN.BUF ---> #0013 @@ -15,9 +15,9 @@ MAIN ---> #0000 MAIN.LEN ---> #0014 Assemble ../../../../as/CMD/dc_spc.casl (1) -../../../../as/CMD/dc_spc.casl:1:;;; DC命令で空白を指定 -../../../../as/CMD/dc_spc.casl:2:MAIN START -../../../../as/CMD/dc_spc.casl:3: OUT BUF,LEN +../../../../as/CMD/dc_spc.casl: 1:;;; DC命令で空白を指定 +../../../../as/CMD/dc_spc.casl: 2:MAIN START +../../../../as/CMD/dc_spc.casl: 3: OUT BUF,LEN #0000 #7001 #0001 #0000 #0002 #7002 @@ -37,13 +37,13 @@ Assemble ../../../../as/CMD/dc_spc.casl (1) #000F #0002 #0010 #7120 #0011 #7110 -../../../../as/CMD/dc_spc.casl:4: RET +../../../../as/CMD/dc_spc.casl: 4: RET #0012 #8100 -../../../../as/CMD/dc_spc.casl:5:BUF DC ' ' +../../../../as/CMD/dc_spc.casl: 5:BUF DC ' ' #0013 #0020 -../../../../as/CMD/dc_spc.casl:6:LEN DC 1 +../../../../as/CMD/dc_spc.casl: 6:LEN DC 1 #0014 #0001 -../../../../as/CMD/dc_spc.casl:7: END +../../../../as/CMD/dc_spc.casl: 7: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ds_0/0.txt b/test/integration/casl2/ds_0/0.txt index b79e08d..cde77cd 100644 --- a/test/integration/casl2/ds_0/0.txt +++ b/test/integration/casl2/ds_0/0.txt @@ -1,14 +1,14 @@ ../../../../casl2 -slatd ../../../../as/CMD/ds_0.casl Assemble ../../../../as/CMD/ds_0.casl (0) -../../../../as/CMD/ds_0.casl:1:;; 「DS 0」を指定したプログラム例 -../../../../as/CMD/ds_0.casl:2:MAIN START -../../../../as/CMD/ds_0.casl:3: LD GR1,A -../../../../as/CMD/ds_0.casl:4: LD GR2,B -../../../../as/CMD/ds_0.casl:5: RET -../../../../as/CMD/ds_0.casl:6:A DS 0 -../../../../as/CMD/ds_0.casl:7:B DC 15 -../../../../as/CMD/ds_0.casl:8: END +../../../../as/CMD/ds_0.casl: 1:;; 「DS 0」を指定したプログラム例 +../../../../as/CMD/ds_0.casl: 2:MAIN START +../../../../as/CMD/ds_0.casl: 3: LD GR1,A +../../../../as/CMD/ds_0.casl: 4: LD GR2,B +../../../../as/CMD/ds_0.casl: 5: RET +../../../../as/CMD/ds_0.casl: 6:A DS 0 +../../../../as/CMD/ds_0.casl: 7:B DC 15 +../../../../as/CMD/ds_0.casl: 8: END Label:::: MAIN.A ---> #0005 @@ -16,20 +16,20 @@ MAIN.B ---> #0005 MAIN ---> #0000 Assemble ../../../../as/CMD/ds_0.casl (1) -../../../../as/CMD/ds_0.casl:1:;; 「DS 0」を指定したプログラム例 -../../../../as/CMD/ds_0.casl:2:MAIN START -../../../../as/CMD/ds_0.casl:3: LD GR1,A +../../../../as/CMD/ds_0.casl: 1:;; 「DS 0」を指定したプログラム例 +../../../../as/CMD/ds_0.casl: 2:MAIN START +../../../../as/CMD/ds_0.casl: 3: LD GR1,A #0000 #1010 #0001 #0005 -../../../../as/CMD/ds_0.casl:4: LD GR2,B +../../../../as/CMD/ds_0.casl: 4: LD GR2,B #0002 #1020 #0003 #0005 -../../../../as/CMD/ds_0.casl:5: RET +../../../../as/CMD/ds_0.casl: 5: RET #0004 #8100 -../../../../as/CMD/ds_0.casl:6:A DS 0 -../../../../as/CMD/ds_0.casl:7:B DC 15 +../../../../as/CMD/ds_0.casl: 6:A DS 0 +../../../../as/CMD/ds_0.casl: 7:B DC 15 #0005 #000F -../../../../as/CMD/ds_0.casl:8: END +../../../../as/CMD/ds_0.casl: 8: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ds_err/0.txt b/test/integration/casl2/ds_err/0.txt index 61eccba..908ba09 100644 --- a/test/integration/casl2/ds_err/0.txt +++ b/test/integration/casl2/ds_err/0.txt @@ -1,10 +1,10 @@ ../../../../casl2 -slatd ../../../../as/ERR/ds_err.casl Assemble ../../../../as/ERR/ds_err.casl (0) -../../../../as/ERR/ds_err.casl:1:MAIN START -../../../../as/ERR/ds_err.casl:2: LAD GR0,=10 -../../../../as/ERR/ds_err.casl:3: ST GR0,A -../../../../as/ERR/ds_err.casl:4:A DS +../../../../as/ERR/ds_err.casl: 1:MAIN START +../../../../as/ERR/ds_err.casl: 2: LAD GR0,=10 +../../../../as/ERR/ds_err.casl: 3: ST GR0,A +../../../../as/ERR/ds_err.casl: 4:A DS Assemble error - 106: operand count mismatch ../../../../as/ERR/ds_err.casl:4: A DS diff --git a/test/integration/casl2/floatedit/0.txt b/test/integration/casl2/floatedit/0.txt index c6336bb..80f4c74 100644 --- a/test/integration/casl2/floatedit/0.txt +++ b/test/integration/casl2/floatedit/0.txt @@ -1,70 +1,70 @@ ../../../../casl2 -sla ../../../../as/YAKUWA/floatedit.casl Assemble ../../../../as/YAKUWA/floatedit.casl (0) -../../../../as/YAKUWA/floatedit.casl:1:EDIT START -../../../../as/YAKUWA/floatedit.casl:2:RETRY IN INAREA,INLENG -../../../../as/YAKUWA/floatedit.casl:3: LAD GR1,0 -../../../../as/YAKUWA/floatedit.casl:4: OR GR1,INLENG -../../../../as/YAKUWA/floatedit.casl:5: JZE FINISH -../../../../as/YAKUWA/floatedit.casl:6: CPA GR1,TEN -../../../../as/YAKUWA/floatedit.casl:7: JZE BEGIN -../../../../as/YAKUWA/floatedit.casl:8: OUT ERRMSG,MSGLNG -../../../../as/YAKUWA/floatedit.casl:9: JUMP RETRY -../../../../as/YAKUWA/floatedit.casl:10:BEGIN LAD GR0,1 -../../../../as/YAKUWA/floatedit.casl:11: ST GR0,ZSFLAG -../../../../as/YAKUWA/floatedit.casl:12: LAD GR1,0 -../../../../as/YAKUWA/floatedit.casl:13: LAD GR2,-1 -../../../../as/YAKUWA/floatedit.casl:14: LAD GR3,0 -../../../../as/YAKUWA/floatedit.casl:15:LOOP LD GR0,MASK,GR3 -../../../../as/YAKUWA/floatedit.casl:16: PUSH 1,GR3 -../../../../as/YAKUWA/floatedit.casl:17: LD GR3,INAREA,GR1 -../../../../as/YAKUWA/floatedit.casl:18: LAD GR1,1,GR1 -../../../../as/YAKUWA/floatedit.casl:19: CPL GR0,DIGIT0 -../../../../as/YAKUWA/floatedit.casl:20: JZE ENDSPR -../../../../as/YAKUWA/floatedit.casl:21: CPL GR0,DIGIT9 -../../../../as/YAKUWA/floatedit.casl:22: JNZ NONDGT -../../../../as/YAKUWA/floatedit.casl:23: CPL GR3,DIGIT0 -../../../../as/YAKUWA/floatedit.casl:24: JNZ ENDSPR -../../../../as/YAKUWA/floatedit.casl:25: LAD GR0,0 -../../../../as/YAKUWA/floatedit.casl:26: OR GR0,ZSFLAG -../../../../as/YAKUWA/floatedit.casl:27: JNZ SUPPRS -../../../../as/YAKUWA/floatedit.casl:28:ENDSPR LD GR0,OTAREA,GR2 -../../../../as/YAKUWA/floatedit.casl:29: CPL GR0,SPACE -../../../../as/YAKUWA/floatedit.casl:30: JNZ NOT1ST -../../../../as/YAKUWA/floatedit.casl:31: LD GR0,MASK -../../../../as/YAKUWA/floatedit.casl:32: ST GR0,OTAREA,GR2 -../../../../as/YAKUWA/floatedit.casl:33: LAD GR0,0 -../../../../as/YAKUWA/floatedit.casl:34: ST GR0,ZSFLAG -../../../../as/YAKUWA/floatedit.casl:35:NOT1ST LAD GR0,0,GR3 -../../../../as/YAKUWA/floatedit.casl:36: JUMP STORE -../../../../as/YAKUWA/floatedit.casl:37:NONDGT LAD GR1,-1,GR1 -../../../../as/YAKUWA/floatedit.casl:38: LAD GR3,0 -../../../../as/YAKUWA/floatedit.casl:39: OR GR3,ZSFLAG -../../../../as/YAKUWA/floatedit.casl:40: JZE STORE -../../../../as/YAKUWA/floatedit.casl:41:SUPPRS LD GR0,SPACE -../../../../as/YAKUWA/floatedit.casl:42:STORE LAD GR2,1,GR2 -../../../../as/YAKUWA/floatedit.casl:43: ST GR0,OTAREA,GR2 -../../../../as/YAKUWA/floatedit.casl:44: POP GR3 -../../../../as/YAKUWA/floatedit.casl:45: CPA GR1,INLENG -../../../../as/YAKUWA/floatedit.casl:46: JNZ LOOP -../../../../as/YAKUWA/floatedit.casl:47: LAD GR2,1,GR2 -../../../../as/YAKUWA/floatedit.casl:48: ST GR2,OTLENG -../../../../as/YAKUWA/floatedit.casl:49: OUT OTAREA,OTLENG -../../../../as/YAKUWA/floatedit.casl:50: JUMP RETRY -../../../../as/YAKUWA/floatedit.casl:51:FINISH RET -../../../../as/YAKUWA/floatedit.casl:52:MASK DC '\99,999,990.99' -../../../../as/YAKUWA/floatedit.casl:53:SPACE DC ' ' -../../../../as/YAKUWA/floatedit.casl:54:DIGIT0 DC '0' -../../../../as/YAKUWA/floatedit.casl:55:DIGIT9 DC '9' -../../../../as/YAKUWA/floatedit.casl:56:TEN DC 10 -../../../../as/YAKUWA/floatedit.casl:57:ERRMSG DC 'input error!' -../../../../as/YAKUWA/floatedit.casl:58:MSGLNG DC 12 -../../../../as/YAKUWA/floatedit.casl:59:INAREA DS 80 -../../../../as/YAKUWA/floatedit.casl:60:INLENG DS 1 -../../../../as/YAKUWA/floatedit.casl:61:OTAREA DS 80 -../../../../as/YAKUWA/floatedit.casl:62:OTLENG DS 1 -../../../../as/YAKUWA/floatedit.casl:63:ZSFLAG DS 1 -../../../../as/YAKUWA/floatedit.casl:64: END +../../../../as/YAKUWA/floatedit.casl: 1:EDIT START +../../../../as/YAKUWA/floatedit.casl: 2:RETRY IN INAREA,INLENG +../../../../as/YAKUWA/floatedit.casl: 3: LAD GR1,0 +../../../../as/YAKUWA/floatedit.casl: 4: OR GR1,INLENG +../../../../as/YAKUWA/floatedit.casl: 5: JZE FINISH +../../../../as/YAKUWA/floatedit.casl: 6: CPA GR1,TEN +../../../../as/YAKUWA/floatedit.casl: 7: JZE BEGIN +../../../../as/YAKUWA/floatedit.casl: 8: OUT ERRMSG,MSGLNG +../../../../as/YAKUWA/floatedit.casl: 9: JUMP RETRY +../../../../as/YAKUWA/floatedit.casl: 10:BEGIN LAD GR0,1 +../../../../as/YAKUWA/floatedit.casl: 11: ST GR0,ZSFLAG +../../../../as/YAKUWA/floatedit.casl: 12: LAD GR1,0 +../../../../as/YAKUWA/floatedit.casl: 13: LAD GR2,-1 +../../../../as/YAKUWA/floatedit.casl: 14: LAD GR3,0 +../../../../as/YAKUWA/floatedit.casl: 15:LOOP LD GR0,MASK,GR3 +../../../../as/YAKUWA/floatedit.casl: 16: PUSH 1,GR3 +../../../../as/YAKUWA/floatedit.casl: 17: LD GR3,INAREA,GR1 +../../../../as/YAKUWA/floatedit.casl: 18: LAD GR1,1,GR1 +../../../../as/YAKUWA/floatedit.casl: 19: CPL GR0,DIGIT0 +../../../../as/YAKUWA/floatedit.casl: 20: JZE ENDSPR +../../../../as/YAKUWA/floatedit.casl: 21: CPL GR0,DIGIT9 +../../../../as/YAKUWA/floatedit.casl: 22: JNZ NONDGT +../../../../as/YAKUWA/floatedit.casl: 23: CPL GR3,DIGIT0 +../../../../as/YAKUWA/floatedit.casl: 24: JNZ ENDSPR +../../../../as/YAKUWA/floatedit.casl: 25: LAD GR0,0 +../../../../as/YAKUWA/floatedit.casl: 26: OR GR0,ZSFLAG +../../../../as/YAKUWA/floatedit.casl: 27: JNZ SUPPRS +../../../../as/YAKUWA/floatedit.casl: 28:ENDSPR LD GR0,OTAREA,GR2 +../../../../as/YAKUWA/floatedit.casl: 29: CPL GR0,SPACE +../../../../as/YAKUWA/floatedit.casl: 30: JNZ NOT1ST +../../../../as/YAKUWA/floatedit.casl: 31: LD GR0,MASK +../../../../as/YAKUWA/floatedit.casl: 32: ST GR0,OTAREA,GR2 +../../../../as/YAKUWA/floatedit.casl: 33: LAD GR0,0 +../../../../as/YAKUWA/floatedit.casl: 34: ST GR0,ZSFLAG +../../../../as/YAKUWA/floatedit.casl: 35:NOT1ST LAD GR0,0,GR3 +../../../../as/YAKUWA/floatedit.casl: 36: JUMP STORE +../../../../as/YAKUWA/floatedit.casl: 37:NONDGT LAD GR1,-1,GR1 +../../../../as/YAKUWA/floatedit.casl: 38: LAD GR3,0 +../../../../as/YAKUWA/floatedit.casl: 39: OR GR3,ZSFLAG +../../../../as/YAKUWA/floatedit.casl: 40: JZE STORE +../../../../as/YAKUWA/floatedit.casl: 41:SUPPRS LD GR0,SPACE +../../../../as/YAKUWA/floatedit.casl: 42:STORE LAD GR2,1,GR2 +../../../../as/YAKUWA/floatedit.casl: 43: ST GR0,OTAREA,GR2 +../../../../as/YAKUWA/floatedit.casl: 44: POP GR3 +../../../../as/YAKUWA/floatedit.casl: 45: CPA GR1,INLENG +../../../../as/YAKUWA/floatedit.casl: 46: JNZ LOOP +../../../../as/YAKUWA/floatedit.casl: 47: LAD GR2,1,GR2 +../../../../as/YAKUWA/floatedit.casl: 48: ST GR2,OTLENG +../../../../as/YAKUWA/floatedit.casl: 49: OUT OTAREA,OTLENG +../../../../as/YAKUWA/floatedit.casl: 50: JUMP RETRY +../../../../as/YAKUWA/floatedit.casl: 51:FINISH RET +../../../../as/YAKUWA/floatedit.casl: 52:MASK DC '\99,999,990.99' +../../../../as/YAKUWA/floatedit.casl: 53:SPACE DC ' ' +../../../../as/YAKUWA/floatedit.casl: 54:DIGIT0 DC '0' +../../../../as/YAKUWA/floatedit.casl: 55:DIGIT9 DC '9' +../../../../as/YAKUWA/floatedit.casl: 56:TEN DC 10 +../../../../as/YAKUWA/floatedit.casl: 57:ERRMSG DC 'input error!' +../../../../as/YAKUWA/floatedit.casl: 58:MSGLNG DC 12 +../../../../as/YAKUWA/floatedit.casl: 59:INAREA DS 80 +../../../../as/YAKUWA/floatedit.casl: 60:INLENG DS 1 +../../../../as/YAKUWA/floatedit.casl: 61:OTAREA DS 80 +../../../../as/YAKUWA/floatedit.casl: 62:OTLENG DS 1 +../../../../as/YAKUWA/floatedit.casl: 63:ZSFLAG DS 1 +../../../../as/YAKUWA/floatedit.casl: 64: END Label:::: EDIT.MSGLNG ---> #00AA @@ -91,8 +91,8 @@ EDIT.ERRMSG ---> #009E EDIT.TEN ---> #009D Assemble ../../../../as/YAKUWA/floatedit.casl (1) -../../../../as/YAKUWA/floatedit.casl:1:EDIT START -../../../../as/YAKUWA/floatedit.casl:2:RETRY IN INAREA,INLENG +../../../../as/YAKUWA/floatedit.casl: 1:EDIT START +../../../../as/YAKUWA/floatedit.casl: 2:RETRY IN INAREA,INLENG #0000 #7001 #0001 #0000 #0002 #7002 @@ -105,22 +105,22 @@ Assemble ../../../../as/YAKUWA/floatedit.casl (1) #0009 #0001 #000A #7120 #000B #7110 -../../../../as/YAKUWA/floatedit.casl:3: LAD GR1,0 +../../../../as/YAKUWA/floatedit.casl: 3: LAD GR1,0 #000C #1210 #000D #0000 -../../../../as/YAKUWA/floatedit.casl:4: OR GR1,INLENG +../../../../as/YAKUWA/floatedit.casl: 4: OR GR1,INLENG #000E #3110 #000F #00FB -../../../../as/YAKUWA/floatedit.casl:5: JZE FINISH +../../../../as/YAKUWA/floatedit.casl: 5: JZE FINISH #0010 #6300 #0011 #008B -../../../../as/YAKUWA/floatedit.casl:6: CPA GR1,TEN +../../../../as/YAKUWA/floatedit.casl: 6: CPA GR1,TEN #0012 #4010 #0013 #009D -../../../../as/YAKUWA/floatedit.casl:7: JZE BEGIN +../../../../as/YAKUWA/floatedit.casl: 7: JZE BEGIN #0014 #6300 #0015 #002A -../../../../as/YAKUWA/floatedit.casl:8: OUT ERRMSG,MSGLNG +../../../../as/YAKUWA/floatedit.casl: 8: OUT ERRMSG,MSGLNG #0016 #7001 #0017 #0000 #0018 #7002 @@ -140,126 +140,126 @@ Assemble ../../../../as/YAKUWA/floatedit.casl (1) #0025 #0002 #0026 #7120 #0027 #7110 -../../../../as/YAKUWA/floatedit.casl:9: JUMP RETRY +../../../../as/YAKUWA/floatedit.casl: 9: JUMP RETRY #0028 #6400 #0029 #0000 -../../../../as/YAKUWA/floatedit.casl:10:BEGIN LAD GR0,1 +../../../../as/YAKUWA/floatedit.casl: 10:BEGIN LAD GR0,1 #002A #1200 #002B #0001 -../../../../as/YAKUWA/floatedit.casl:11: ST GR0,ZSFLAG +../../../../as/YAKUWA/floatedit.casl: 11: ST GR0,ZSFLAG #002C #1100 #002D #014D -../../../../as/YAKUWA/floatedit.casl:12: LAD GR1,0 +../../../../as/YAKUWA/floatedit.casl: 12: LAD GR1,0 #002E #1210 #002F #0000 -../../../../as/YAKUWA/floatedit.casl:13: LAD GR2,-1 +../../../../as/YAKUWA/floatedit.casl: 13: LAD GR2,-1 #0030 #1220 #0031 #FFFF -../../../../as/YAKUWA/floatedit.casl:14: LAD GR3,0 +../../../../as/YAKUWA/floatedit.casl: 14: LAD GR3,0 #0032 #1230 #0033 #0000 -../../../../as/YAKUWA/floatedit.casl:15:LOOP LD GR0,MASK,GR3 +../../../../as/YAKUWA/floatedit.casl: 15:LOOP LD GR0,MASK,GR3 #0034 #1003 #0035 #008C -../../../../as/YAKUWA/floatedit.casl:16: PUSH 1,GR3 +../../../../as/YAKUWA/floatedit.casl: 16: PUSH 1,GR3 #0036 #7003 #0037 #0001 -../../../../as/YAKUWA/floatedit.casl:17: LD GR3,INAREA,GR1 +../../../../as/YAKUWA/floatedit.casl: 17: LD GR3,INAREA,GR1 #0038 #1031 #0039 #00AB -../../../../as/YAKUWA/floatedit.casl:18: LAD GR1,1,GR1 +../../../../as/YAKUWA/floatedit.casl: 18: LAD GR1,1,GR1 #003A #1211 #003B #0001 -../../../../as/YAKUWA/floatedit.casl:19: CPL GR0,DIGIT0 +../../../../as/YAKUWA/floatedit.casl: 19: CPL GR0,DIGIT0 #003C #4100 #003D #009B -../../../../as/YAKUWA/floatedit.casl:20: JZE ENDSPR +../../../../as/YAKUWA/floatedit.casl: 20: JZE ENDSPR #003E #6300 #003F #004E -../../../../as/YAKUWA/floatedit.casl:21: CPL GR0,DIGIT9 +../../../../as/YAKUWA/floatedit.casl: 21: CPL GR0,DIGIT9 #0040 #4100 #0041 #009C -../../../../as/YAKUWA/floatedit.casl:22: JNZ NONDGT +../../../../as/YAKUWA/floatedit.casl: 22: JNZ NONDGT #0042 #6200 #0043 #0060 -../../../../as/YAKUWA/floatedit.casl:23: CPL GR3,DIGIT0 +../../../../as/YAKUWA/floatedit.casl: 23: CPL GR3,DIGIT0 #0044 #4130 #0045 #009B -../../../../as/YAKUWA/floatedit.casl:24: JNZ ENDSPR +../../../../as/YAKUWA/floatedit.casl: 24: JNZ ENDSPR #0046 #6200 #0047 #004E -../../../../as/YAKUWA/floatedit.casl:25: LAD GR0,0 +../../../../as/YAKUWA/floatedit.casl: 25: LAD GR0,0 #0048 #1200 #0049 #0000 -../../../../as/YAKUWA/floatedit.casl:26: OR GR0,ZSFLAG +../../../../as/YAKUWA/floatedit.casl: 26: OR GR0,ZSFLAG #004A #3100 #004B #014D -../../../../as/YAKUWA/floatedit.casl:27: JNZ SUPPRS +../../../../as/YAKUWA/floatedit.casl: 27: JNZ SUPPRS #004C #6200 #004D #0068 -../../../../as/YAKUWA/floatedit.casl:28:ENDSPR LD GR0,OTAREA,GR2 +../../../../as/YAKUWA/floatedit.casl: 28:ENDSPR LD GR0,OTAREA,GR2 #004E #1002 #004F #00FC -../../../../as/YAKUWA/floatedit.casl:29: CPL GR0,SPACE +../../../../as/YAKUWA/floatedit.casl: 29: CPL GR0,SPACE #0050 #4100 #0051 #009A -../../../../as/YAKUWA/floatedit.casl:30: JNZ NOT1ST +../../../../as/YAKUWA/floatedit.casl: 30: JNZ NOT1ST #0052 #6200 #0053 #005C -../../../../as/YAKUWA/floatedit.casl:31: LD GR0,MASK +../../../../as/YAKUWA/floatedit.casl: 31: LD GR0,MASK #0054 #1000 #0055 #008C -../../../../as/YAKUWA/floatedit.casl:32: ST GR0,OTAREA,GR2 +../../../../as/YAKUWA/floatedit.casl: 32: ST GR0,OTAREA,GR2 #0056 #1102 #0057 #00FC -../../../../as/YAKUWA/floatedit.casl:33: LAD GR0,0 +../../../../as/YAKUWA/floatedit.casl: 33: LAD GR0,0 #0058 #1200 #0059 #0000 -../../../../as/YAKUWA/floatedit.casl:34: ST GR0,ZSFLAG +../../../../as/YAKUWA/floatedit.casl: 34: ST GR0,ZSFLAG #005A #1100 #005B #014D -../../../../as/YAKUWA/floatedit.casl:35:NOT1ST LAD GR0,0,GR3 +../../../../as/YAKUWA/floatedit.casl: 35:NOT1ST LAD GR0,0,GR3 #005C #1203 #005D #0000 -../../../../as/YAKUWA/floatedit.casl:36: JUMP STORE +../../../../as/YAKUWA/floatedit.casl: 36: JUMP STORE #005E #6400 #005F #006A -../../../../as/YAKUWA/floatedit.casl:37:NONDGT LAD GR1,-1,GR1 +../../../../as/YAKUWA/floatedit.casl: 37:NONDGT LAD GR1,-1,GR1 #0060 #1211 #0061 #FFFF -../../../../as/YAKUWA/floatedit.casl:38: LAD GR3,0 +../../../../as/YAKUWA/floatedit.casl: 38: LAD GR3,0 #0062 #1230 #0063 #0000 -../../../../as/YAKUWA/floatedit.casl:39: OR GR3,ZSFLAG +../../../../as/YAKUWA/floatedit.casl: 39: OR GR3,ZSFLAG #0064 #3130 #0065 #014D -../../../../as/YAKUWA/floatedit.casl:40: JZE STORE +../../../../as/YAKUWA/floatedit.casl: 40: JZE STORE #0066 #6300 #0067 #006A -../../../../as/YAKUWA/floatedit.casl:41:SUPPRS LD GR0,SPACE +../../../../as/YAKUWA/floatedit.casl: 41:SUPPRS LD GR0,SPACE #0068 #1000 #0069 #009A -../../../../as/YAKUWA/floatedit.casl:42:STORE LAD GR2,1,GR2 +../../../../as/YAKUWA/floatedit.casl: 42:STORE LAD GR2,1,GR2 #006A #1222 #006B #0001 -../../../../as/YAKUWA/floatedit.casl:43: ST GR0,OTAREA,GR2 +../../../../as/YAKUWA/floatedit.casl: 43: ST GR0,OTAREA,GR2 #006C #1102 #006D #00FC -../../../../as/YAKUWA/floatedit.casl:44: POP GR3 +../../../../as/YAKUWA/floatedit.casl: 44: POP GR3 #006E #7130 -../../../../as/YAKUWA/floatedit.casl:45: CPA GR1,INLENG +../../../../as/YAKUWA/floatedit.casl: 45: CPA GR1,INLENG #006F #4010 #0070 #00FB -../../../../as/YAKUWA/floatedit.casl:46: JNZ LOOP +../../../../as/YAKUWA/floatedit.casl: 46: JNZ LOOP #0071 #6200 #0072 #0034 -../../../../as/YAKUWA/floatedit.casl:47: LAD GR2,1,GR2 +../../../../as/YAKUWA/floatedit.casl: 47: LAD GR2,1,GR2 #0073 #1222 #0074 #0001 -../../../../as/YAKUWA/floatedit.casl:48: ST GR2,OTLENG +../../../../as/YAKUWA/floatedit.casl: 48: ST GR2,OTLENG #0075 #1120 #0076 #014C -../../../../as/YAKUWA/floatedit.casl:49: OUT OTAREA,OTLENG +../../../../as/YAKUWA/floatedit.casl: 49: OUT OTAREA,OTLENG #0077 #7001 #0078 #0000 #0079 #7002 @@ -279,12 +279,12 @@ Assemble ../../../../as/YAKUWA/floatedit.casl (1) #0086 #0002 #0087 #7120 #0088 #7110 -../../../../as/YAKUWA/floatedit.casl:50: JUMP RETRY +../../../../as/YAKUWA/floatedit.casl: 50: JUMP RETRY #0089 #6400 #008A #0000 -../../../../as/YAKUWA/floatedit.casl:51:FINISH RET +../../../../as/YAKUWA/floatedit.casl: 51:FINISH RET #008B #8100 -../../../../as/YAKUWA/floatedit.casl:52:MASK DC '\99,999,990.99' +../../../../as/YAKUWA/floatedit.casl: 52:MASK DC '\99,999,990.99' #008C #005C #008D #0039 #008E #0039 @@ -299,15 +299,15 @@ Assemble ../../../../as/YAKUWA/floatedit.casl (1) #0097 #002E #0098 #0039 #0099 #0039 -../../../../as/YAKUWA/floatedit.casl:53:SPACE DC ' ' +../../../../as/YAKUWA/floatedit.casl: 53:SPACE DC ' ' #009A #0020 -../../../../as/YAKUWA/floatedit.casl:54:DIGIT0 DC '0' +../../../../as/YAKUWA/floatedit.casl: 54:DIGIT0 DC '0' #009B #0030 -../../../../as/YAKUWA/floatedit.casl:55:DIGIT9 DC '9' +../../../../as/YAKUWA/floatedit.casl: 55:DIGIT9 DC '9' #009C #0039 -../../../../as/YAKUWA/floatedit.casl:56:TEN DC 10 +../../../../as/YAKUWA/floatedit.casl: 56:TEN DC 10 #009D #000A -../../../../as/YAKUWA/floatedit.casl:57:ERRMSG DC 'input error!' +../../../../as/YAKUWA/floatedit.casl: 57:ERRMSG DC 'input error!' #009E #0069 #009F #006E #00A0 #0070 @@ -320,9 +320,9 @@ Assemble ../../../../as/YAKUWA/floatedit.casl (1) #00A7 #006F #00A8 #0072 #00A9 #0021 -../../../../as/YAKUWA/floatedit.casl:58:MSGLNG DC 12 +../../../../as/YAKUWA/floatedit.casl: 58:MSGLNG DC 12 #00AA #000C -../../../../as/YAKUWA/floatedit.casl:59:INAREA DS 80 +../../../../as/YAKUWA/floatedit.casl: 59:INAREA DS 80 #00AB #0000 #00AC #0000 #00AD #0000 @@ -403,9 +403,9 @@ Assemble ../../../../as/YAKUWA/floatedit.casl (1) #00F8 #0000 #00F9 #0000 #00FA #0000 -../../../../as/YAKUWA/floatedit.casl:60:INLENG DS 1 +../../../../as/YAKUWA/floatedit.casl: 60:INLENG DS 1 #00FB #0000 -../../../../as/YAKUWA/floatedit.casl:61:OTAREA DS 80 +../../../../as/YAKUWA/floatedit.casl: 61:OTAREA DS 80 #00FC #0000 #00FD #0000 #00FE #0000 @@ -486,11 +486,11 @@ Assemble ../../../../as/YAKUWA/floatedit.casl (1) #0149 #0000 #014A #0000 #014B #0000 -../../../../as/YAKUWA/floatedit.casl:62:OTLENG DS 1 +../../../../as/YAKUWA/floatedit.casl: 62:OTLENG DS 1 #014C #0000 -../../../../as/YAKUWA/floatedit.casl:63:ZSFLAG DS 1 +../../../../as/YAKUWA/floatedit.casl: 63:ZSFLAG DS 1 #014D #0000 -../../../../as/YAKUWA/floatedit.casl:64: END +../../../../as/YAKUWA/floatedit.casl: 64: END input error! input error! input error! diff --git a/test/integration/casl2/hanoi/0.txt b/test/integration/casl2/hanoi/0.txt index 679c42f..2e3de26 100644 --- a/test/integration/casl2/hanoi/0.txt +++ b/test/integration/casl2/hanoi/0.txt @@ -1,55 +1,55 @@ ../../../../casl2 -sla ../../../../as/FUNC/hanoi.casl Assemble ../../../../as/FUNC/hanoi.casl (0) -../../../../as/FUNC/hanoi.casl:1:; ハノイの塔を解くプログラム -../../../../as/FUNC/hanoi.casl:2:MAIN START -../../../../as/FUNC/hanoi.casl:3: LD GR0,N -../../../../as/FUNC/hanoi.casl:4: LD GR1,A -../../../../as/FUNC/hanoi.casl:5: LD GR2,B -../../../../as/FUNC/hanoi.casl:6: LD GR3,C -../../../../as/FUNC/hanoi.casl:7: CALL HANOI -../../../../as/FUNC/hanoi.casl:8: RET -../../../../as/FUNC/hanoi.casl:9: -../../../../as/FUNC/hanoi.casl:10:HANOI CPA GR0,=1 -../../../../as/FUNC/hanoi.casl:11: JZE DISP -../../../../as/FUNC/hanoi.casl:12: SUBA GR0,=1 -../../../../as/FUNC/hanoi.casl:13: PUSH 0,GR2 -../../../../as/FUNC/hanoi.casl:14: PUSH 0,GR3 -../../../../as/FUNC/hanoi.casl:15: POP GR2 -../../../../as/FUNC/hanoi.casl:16: POP GR3 -../../../../as/FUNC/hanoi.casl:17: CALL HANOI -../../../../as/FUNC/hanoi.casl:18: PUSH 0,GR2 -../../../../as/FUNC/hanoi.casl:19: PUSH 0,GR3 -../../../../as/FUNC/hanoi.casl:20: POP GR2 -../../../../as/FUNC/hanoi.casl:21: POP GR3 -../../../../as/FUNC/hanoi.casl:22: CALL DISP -../../../../as/FUNC/hanoi.casl:23: PUSH 0,GR1 -../../../../as/FUNC/hanoi.casl:24: PUSH 0,GR2 -../../../../as/FUNC/hanoi.casl:25: POP GR1 -../../../../as/FUNC/hanoi.casl:26: POP GR2 -../../../../as/FUNC/hanoi.casl:27: CALL HANOI -../../../../as/FUNC/hanoi.casl:28: PUSH 0,GR1 -../../../../as/FUNC/hanoi.casl:29: PUSH 0,GR2 -../../../../as/FUNC/hanoi.casl:30: POP GR1 -../../../../as/FUNC/hanoi.casl:31: POP GR2 -../../../../as/FUNC/hanoi.casl:32: ADDA GR0,=1 -../../../../as/FUNC/hanoi.casl:33: RET -../../../../as/FUNC/hanoi.casl:34: -../../../../as/FUNC/hanoi.casl:35:DISP ST GR1,MSG1 -../../../../as/FUNC/hanoi.casl:36: ST GR3,MSG2 -../../../../as/FUNC/hanoi.casl:37: OUT MSG,LNG -../../../../as/FUNC/hanoi.casl:38: RET -../../../../as/FUNC/hanoi.casl:39: -../../../../as/FUNC/hanoi.casl:40:N DC 3 ;輪の総数 -../../../../as/FUNC/hanoi.casl:41:LNG DC 11 ;メッセージの長さ -../../../../as/FUNC/hanoi.casl:42:A DC 'A' -../../../../as/FUNC/hanoi.casl:43:B DC 'B' -../../../../as/FUNC/hanoi.casl:44:C DC 'C' -../../../../as/FUNC/hanoi.casl:45:MSG DC 'from ' -../../../../as/FUNC/hanoi.casl:46:MSG1 DS 1 -../../../../as/FUNC/hanoi.casl:47: DC ' to ' -../../../../as/FUNC/hanoi.casl:48:MSG2 DS 1 -../../../../as/FUNC/hanoi.casl:49: END +../../../../as/FUNC/hanoi.casl: 1:; ハノイの塔を解くプログラム +../../../../as/FUNC/hanoi.casl: 2:MAIN START +../../../../as/FUNC/hanoi.casl: 3: LD GR0,N +../../../../as/FUNC/hanoi.casl: 4: LD GR1,A +../../../../as/FUNC/hanoi.casl: 5: LD GR2,B +../../../../as/FUNC/hanoi.casl: 6: LD GR3,C +../../../../as/FUNC/hanoi.casl: 7: CALL HANOI +../../../../as/FUNC/hanoi.casl: 8: RET +../../../../as/FUNC/hanoi.casl: 9: +../../../../as/FUNC/hanoi.casl: 10:HANOI CPA GR0,=1 +../../../../as/FUNC/hanoi.casl: 11: JZE DISP +../../../../as/FUNC/hanoi.casl: 12: SUBA GR0,=1 +../../../../as/FUNC/hanoi.casl: 13: PUSH 0,GR2 +../../../../as/FUNC/hanoi.casl: 14: PUSH 0,GR3 +../../../../as/FUNC/hanoi.casl: 15: POP GR2 +../../../../as/FUNC/hanoi.casl: 16: POP GR3 +../../../../as/FUNC/hanoi.casl: 17: CALL HANOI +../../../../as/FUNC/hanoi.casl: 18: PUSH 0,GR2 +../../../../as/FUNC/hanoi.casl: 19: PUSH 0,GR3 +../../../../as/FUNC/hanoi.casl: 20: POP GR2 +../../../../as/FUNC/hanoi.casl: 21: POP GR3 +../../../../as/FUNC/hanoi.casl: 22: CALL DISP +../../../../as/FUNC/hanoi.casl: 23: PUSH 0,GR1 +../../../../as/FUNC/hanoi.casl: 24: PUSH 0,GR2 +../../../../as/FUNC/hanoi.casl: 25: POP GR1 +../../../../as/FUNC/hanoi.casl: 26: POP GR2 +../../../../as/FUNC/hanoi.casl: 27: CALL HANOI +../../../../as/FUNC/hanoi.casl: 28: PUSH 0,GR1 +../../../../as/FUNC/hanoi.casl: 29: PUSH 0,GR2 +../../../../as/FUNC/hanoi.casl: 30: POP GR1 +../../../../as/FUNC/hanoi.casl: 31: POP GR2 +../../../../as/FUNC/hanoi.casl: 32: ADDA GR0,=1 +../../../../as/FUNC/hanoi.casl: 33: RET +../../../../as/FUNC/hanoi.casl: 34: +../../../../as/FUNC/hanoi.casl: 35:DISP ST GR1,MSG1 +../../../../as/FUNC/hanoi.casl: 36: ST GR3,MSG2 +../../../../as/FUNC/hanoi.casl: 37: OUT MSG,LNG +../../../../as/FUNC/hanoi.casl: 38: RET +../../../../as/FUNC/hanoi.casl: 39: +../../../../as/FUNC/hanoi.casl: 40:N DC 3 ;輪の総数 +../../../../as/FUNC/hanoi.casl: 41:LNG DC 11 ;メッセージの長さ +../../../../as/FUNC/hanoi.casl: 42:A DC 'A' +../../../../as/FUNC/hanoi.casl: 43:B DC 'B' +../../../../as/FUNC/hanoi.casl: 44:C DC 'C' +../../../../as/FUNC/hanoi.casl: 45:MSG DC 'from ' +../../../../as/FUNC/hanoi.casl: 46:MSG1 DS 1 +../../../../as/FUNC/hanoi.casl: 47: DC ' to ' +../../../../as/FUNC/hanoi.casl: 48:MSG2 DS 1 +../../../../as/FUNC/hanoi.casl: 49: END Label:::: MAIN.LNG ---> #004A @@ -65,100 +65,100 @@ MAIN.MSG1 ---> #0053 MAIN.MSG2 ---> #0058 Assemble ../../../../as/FUNC/hanoi.casl (1) -../../../../as/FUNC/hanoi.casl:1:; ハノイの塔を解くプログラム -../../../../as/FUNC/hanoi.casl:2:MAIN START -../../../../as/FUNC/hanoi.casl:3: LD GR0,N +../../../../as/FUNC/hanoi.casl: 1:; ハノイの塔を解くプログラム +../../../../as/FUNC/hanoi.casl: 2:MAIN START +../../../../as/FUNC/hanoi.casl: 3: LD GR0,N #0000 #1000 #0001 #0049 -../../../../as/FUNC/hanoi.casl:4: LD GR1,A +../../../../as/FUNC/hanoi.casl: 4: LD GR1,A #0002 #1010 #0003 #004B -../../../../as/FUNC/hanoi.casl:5: LD GR2,B +../../../../as/FUNC/hanoi.casl: 5: LD GR2,B #0004 #1020 #0005 #004C -../../../../as/FUNC/hanoi.casl:6: LD GR3,C +../../../../as/FUNC/hanoi.casl: 6: LD GR3,C #0006 #1030 #0007 #004D -../../../../as/FUNC/hanoi.casl:7: CALL HANOI +../../../../as/FUNC/hanoi.casl: 7: CALL HANOI #0008 #8000 #0009 #000B -../../../../as/FUNC/hanoi.casl:8: RET +../../../../as/FUNC/hanoi.casl: 8: RET #000A #8100 -../../../../as/FUNC/hanoi.casl:9: -../../../../as/FUNC/hanoi.casl:10:HANOI CPA GR0,=1 +../../../../as/FUNC/hanoi.casl: 9: +../../../../as/FUNC/hanoi.casl: 10:HANOI CPA GR0,=1 #0059 #0001 #000B #4000 #000C #0059 -../../../../as/FUNC/hanoi.casl:11: JZE DISP +../../../../as/FUNC/hanoi.casl: 11: JZE DISP #000D #6300 #000E #0032 -../../../../as/FUNC/hanoi.casl:12: SUBA GR0,=1 +../../../../as/FUNC/hanoi.casl: 12: SUBA GR0,=1 #005A #0001 #000F #2100 #0010 #005A -../../../../as/FUNC/hanoi.casl:13: PUSH 0,GR2 +../../../../as/FUNC/hanoi.casl: 13: PUSH 0,GR2 #0011 #7002 #0012 #0000 -../../../../as/FUNC/hanoi.casl:14: PUSH 0,GR3 +../../../../as/FUNC/hanoi.casl: 14: PUSH 0,GR3 #0013 #7003 #0014 #0000 -../../../../as/FUNC/hanoi.casl:15: POP GR2 +../../../../as/FUNC/hanoi.casl: 15: POP GR2 #0015 #7120 -../../../../as/FUNC/hanoi.casl:16: POP GR3 +../../../../as/FUNC/hanoi.casl: 16: POP GR3 #0016 #7130 -../../../../as/FUNC/hanoi.casl:17: CALL HANOI +../../../../as/FUNC/hanoi.casl: 17: CALL HANOI #0017 #8000 #0018 #000B -../../../../as/FUNC/hanoi.casl:18: PUSH 0,GR2 +../../../../as/FUNC/hanoi.casl: 18: PUSH 0,GR2 #0019 #7002 #001A #0000 -../../../../as/FUNC/hanoi.casl:19: PUSH 0,GR3 +../../../../as/FUNC/hanoi.casl: 19: PUSH 0,GR3 #001B #7003 #001C #0000 -../../../../as/FUNC/hanoi.casl:20: POP GR2 +../../../../as/FUNC/hanoi.casl: 20: POP GR2 #001D #7120 -../../../../as/FUNC/hanoi.casl:21: POP GR3 +../../../../as/FUNC/hanoi.casl: 21: POP GR3 #001E #7130 -../../../../as/FUNC/hanoi.casl:22: CALL DISP +../../../../as/FUNC/hanoi.casl: 22: CALL DISP #001F #8000 #0020 #0032 -../../../../as/FUNC/hanoi.casl:23: PUSH 0,GR1 +../../../../as/FUNC/hanoi.casl: 23: PUSH 0,GR1 #0021 #7001 #0022 #0000 -../../../../as/FUNC/hanoi.casl:24: PUSH 0,GR2 +../../../../as/FUNC/hanoi.casl: 24: PUSH 0,GR2 #0023 #7002 #0024 #0000 -../../../../as/FUNC/hanoi.casl:25: POP GR1 +../../../../as/FUNC/hanoi.casl: 25: POP GR1 #0025 #7110 -../../../../as/FUNC/hanoi.casl:26: POP GR2 +../../../../as/FUNC/hanoi.casl: 26: POP GR2 #0026 #7120 -../../../../as/FUNC/hanoi.casl:27: CALL HANOI +../../../../as/FUNC/hanoi.casl: 27: CALL HANOI #0027 #8000 #0028 #000B -../../../../as/FUNC/hanoi.casl:28: PUSH 0,GR1 +../../../../as/FUNC/hanoi.casl: 28: PUSH 0,GR1 #0029 #7001 #002A #0000 -../../../../as/FUNC/hanoi.casl:29: PUSH 0,GR2 +../../../../as/FUNC/hanoi.casl: 29: PUSH 0,GR2 #002B #7002 #002C #0000 -../../../../as/FUNC/hanoi.casl:30: POP GR1 +../../../../as/FUNC/hanoi.casl: 30: POP GR1 #002D #7110 -../../../../as/FUNC/hanoi.casl:31: POP GR2 +../../../../as/FUNC/hanoi.casl: 31: POP GR2 #002E #7120 -../../../../as/FUNC/hanoi.casl:32: ADDA GR0,=1 +../../../../as/FUNC/hanoi.casl: 32: ADDA GR0,=1 #005B #0001 #002F #2000 #0030 #005B -../../../../as/FUNC/hanoi.casl:33: RET +../../../../as/FUNC/hanoi.casl: 33: RET #0031 #8100 -../../../../as/FUNC/hanoi.casl:34: -../../../../as/FUNC/hanoi.casl:35:DISP ST GR1,MSG1 +../../../../as/FUNC/hanoi.casl: 34: +../../../../as/FUNC/hanoi.casl: 35:DISP ST GR1,MSG1 #0032 #1110 #0033 #0053 -../../../../as/FUNC/hanoi.casl:36: ST GR3,MSG2 +../../../../as/FUNC/hanoi.casl: 36: ST GR3,MSG2 #0034 #1130 #0035 #0058 -../../../../as/FUNC/hanoi.casl:37: OUT MSG,LNG +../../../../as/FUNC/hanoi.casl: 37: OUT MSG,LNG #0036 #7001 #0037 #0000 #0038 #7002 @@ -178,35 +178,35 @@ Assemble ../../../../as/FUNC/hanoi.casl (1) #0045 #0002 #0046 #7120 #0047 #7110 -../../../../as/FUNC/hanoi.casl:38: RET +../../../../as/FUNC/hanoi.casl: 38: RET #0048 #8100 -../../../../as/FUNC/hanoi.casl:39: -../../../../as/FUNC/hanoi.casl:40:N DC 3 ;輪の総数 +../../../../as/FUNC/hanoi.casl: 39: +../../../../as/FUNC/hanoi.casl: 40:N DC 3 ;輪の総数 #0049 #0003 -../../../../as/FUNC/hanoi.casl:41:LNG DC 11 ;メッセージの長さ +../../../../as/FUNC/hanoi.casl: 41:LNG DC 11 ;メッセージの長さ #004A #000B -../../../../as/FUNC/hanoi.casl:42:A DC 'A' +../../../../as/FUNC/hanoi.casl: 42:A DC 'A' #004B #0041 -../../../../as/FUNC/hanoi.casl:43:B DC 'B' +../../../../as/FUNC/hanoi.casl: 43:B DC 'B' #004C #0042 -../../../../as/FUNC/hanoi.casl:44:C DC 'C' +../../../../as/FUNC/hanoi.casl: 44:C DC 'C' #004D #0043 -../../../../as/FUNC/hanoi.casl:45:MSG DC 'from ' +../../../../as/FUNC/hanoi.casl: 45:MSG DC 'from ' #004E #0066 #004F #0072 #0050 #006F #0051 #006D #0052 #0020 -../../../../as/FUNC/hanoi.casl:46:MSG1 DS 1 +../../../../as/FUNC/hanoi.casl: 46:MSG1 DS 1 #0053 #0000 -../../../../as/FUNC/hanoi.casl:47: DC ' to ' +../../../../as/FUNC/hanoi.casl: 47: DC ' to ' #0054 #0020 #0055 #0074 #0056 #006F #0057 #0020 -../../../../as/FUNC/hanoi.casl:48:MSG2 DS 1 +../../../../as/FUNC/hanoi.casl: 48:MSG2 DS 1 #0058 #0000 -../../../../as/FUNC/hanoi.casl:49: END +../../../../as/FUNC/hanoi.casl: 49: END from A to C from A to B from C to B diff --git a/test/integration/casl2/hello/0.txt b/test/integration/casl2/hello/0.txt index 08e97e8..773aa7d 100644 --- a/test/integration/casl2/hello/0.txt +++ b/test/integration/casl2/hello/0.txt @@ -1,12 +1,12 @@ ../../../../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 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 Label:::: MAIN.BUF ---> #0013 @@ -14,8 +14,8 @@ MAIN ---> #0000 MAIN.LEN ---> #0020 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 BUF,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:BUF 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/iotest/0.txt b/test/integration/casl2/iotest/0.txt index aefa8e1..f480ecd 100644 --- a/test/integration/casl2/iotest/0.txt +++ b/test/integration/casl2/iotest/0.txt @@ -1,26 +1,26 @@ ../../../../casl2 -sla ../../../../as/FUNC/iotest.casl Assemble ../../../../as/FUNC/iotest.casl (0) -../../../../as/FUNC/iotest.casl:1:IOTEST START -../../../../as/FUNC/iotest.casl:2: OUT OBUF1,OLEN1 -../../../../as/FUNC/iotest.casl:3:LOOP IN IOBUF,IOLEN -../../../../as/FUNC/iotest.casl:4: LD GR1,IOLEN -../../../../as/FUNC/iotest.casl:5: JZE RETURN -../../../../as/FUNC/iotest.casl:6: OUT OBUF2,OLEN2 -../../../../as/FUNC/iotest.casl:7: OUT IOBUF,IOLEN -../../../../as/FUNC/iotest.casl:8: OUT OBUF3,OLEN3 -../../../../as/FUNC/iotest.casl:9: JUMP LOOP -../../../../as/FUNC/iotest.casl:10:RETURN RET -../../../../as/FUNC/iotest.casl:11:; Memory -../../../../as/FUNC/iotest.casl:12:OBUF1 DC 'LET''S START. TYPE IN' -../../../../as/FUNC/iotest.casl:13:OLEN1 DC 20 -../../../../as/FUNC/iotest.casl:14:OBUF2 DC 'YOU TYPED' -../../../../as/FUNC/iotest.casl:15:OLEN2 DC 9 -../../../../as/FUNC/iotest.casl:16:OBUF3 DC 'WHAT''S NEXT?' -../../../../as/FUNC/iotest.casl:17:OLEN3 DC 12 -../../../../as/FUNC/iotest.casl:18:IOBUF DS 64 -../../../../as/FUNC/iotest.casl:19:IOLEN DS 1 -../../../../as/FUNC/iotest.casl:20: END +../../../../as/FUNC/iotest.casl: 1:IOTEST START +../../../../as/FUNC/iotest.casl: 2: OUT OBUF1,OLEN1 +../../../../as/FUNC/iotest.casl: 3:LOOP IN IOBUF,IOLEN +../../../../as/FUNC/iotest.casl: 4: LD GR1,IOLEN +../../../../as/FUNC/iotest.casl: 5: JZE RETURN +../../../../as/FUNC/iotest.casl: 6: OUT OBUF2,OLEN2 +../../../../as/FUNC/iotest.casl: 7: OUT IOBUF,IOLEN +../../../../as/FUNC/iotest.casl: 8: OUT OBUF3,OLEN3 +../../../../as/FUNC/iotest.casl: 9: JUMP LOOP +../../../../as/FUNC/iotest.casl: 10:RETURN RET +../../../../as/FUNC/iotest.casl: 11:; Memory +../../../../as/FUNC/iotest.casl: 12:OBUF1 DC 'LET''S START. TYPE IN' +../../../../as/FUNC/iotest.casl: 13:OLEN1 DC 20 +../../../../as/FUNC/iotest.casl: 14:OBUF2 DC 'YOU TYPED' +../../../../as/FUNC/iotest.casl: 15:OLEN2 DC 9 +../../../../as/FUNC/iotest.casl: 16:OBUF3 DC 'WHAT''S NEXT?' +../../../../as/FUNC/iotest.casl: 17:OLEN3 DC 12 +../../../../as/FUNC/iotest.casl: 18:IOBUF DS 64 +../../../../as/FUNC/iotest.casl: 19:IOLEN DS 1 +../../../../as/FUNC/iotest.casl: 20: END Label:::: IOTEST.OBUF1 ---> #005B @@ -36,8 +36,8 @@ IOTEST.OLEN3 ---> #0086 IOTEST ---> #0000 Assemble ../../../../as/FUNC/iotest.casl (1) -../../../../as/FUNC/iotest.casl:1:IOTEST START -../../../../as/FUNC/iotest.casl:2: OUT OBUF1,OLEN1 +../../../../as/FUNC/iotest.casl: 1:IOTEST START +../../../../as/FUNC/iotest.casl: 2: OUT OBUF1,OLEN1 #0000 #7001 #0001 #0000 #0002 #7002 @@ -57,7 +57,7 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #000F #0002 #0010 #7120 #0011 #7110 -../../../../as/FUNC/iotest.casl:3:LOOP IN IOBUF,IOLEN +../../../../as/FUNC/iotest.casl: 3:LOOP IN IOBUF,IOLEN #0012 #7001 #0013 #0000 #0014 #7002 @@ -70,13 +70,13 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #001B #0001 #001C #7120 #001D #7110 -../../../../as/FUNC/iotest.casl:4: LD GR1,IOLEN +../../../../as/FUNC/iotest.casl: 4: LD GR1,IOLEN #001E #1010 #001F #00C7 -../../../../as/FUNC/iotest.casl:5: JZE RETURN +../../../../as/FUNC/iotest.casl: 5: JZE RETURN #0020 #6300 #0021 #005A -../../../../as/FUNC/iotest.casl:6: OUT OBUF2,OLEN2 +../../../../as/FUNC/iotest.casl: 6: OUT OBUF2,OLEN2 #0022 #7001 #0023 #0000 #0024 #7002 @@ -96,7 +96,7 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #0031 #0002 #0032 #7120 #0033 #7110 -../../../../as/FUNC/iotest.casl:7: OUT IOBUF,IOLEN +../../../../as/FUNC/iotest.casl: 7: OUT IOBUF,IOLEN #0034 #7001 #0035 #0000 #0036 #7002 @@ -116,7 +116,7 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #0043 #0002 #0044 #7120 #0045 #7110 -../../../../as/FUNC/iotest.casl:8: OUT OBUF3,OLEN3 +../../../../as/FUNC/iotest.casl: 8: OUT OBUF3,OLEN3 #0046 #7001 #0047 #0000 #0048 #7002 @@ -136,13 +136,13 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #0055 #0002 #0056 #7120 #0057 #7110 -../../../../as/FUNC/iotest.casl:9: JUMP LOOP +../../../../as/FUNC/iotest.casl: 9: JUMP LOOP #0058 #6400 #0059 #0012 -../../../../as/FUNC/iotest.casl:10:RETURN RET +../../../../as/FUNC/iotest.casl: 10:RETURN RET #005A #8100 -../../../../as/FUNC/iotest.casl:11:; Memory -../../../../as/FUNC/iotest.casl:12:OBUF1 DC 'LET''S START. TYPE IN' +../../../../as/FUNC/iotest.casl: 11:; Memory +../../../../as/FUNC/iotest.casl: 12:OBUF1 DC 'LET''S START. TYPE IN' #005B #004C #005C #0045 #005D #0054 @@ -163,9 +163,9 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #006C #0020 #006D #0049 #006E #004E -../../../../as/FUNC/iotest.casl:13:OLEN1 DC 20 +../../../../as/FUNC/iotest.casl: 13:OLEN1 DC 20 #006F #0014 -../../../../as/FUNC/iotest.casl:14:OBUF2 DC 'YOU TYPED' +../../../../as/FUNC/iotest.casl: 14:OBUF2 DC 'YOU TYPED' #0070 #0059 #0071 #004F #0072 #0055 @@ -175,9 +175,9 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #0076 #0050 #0077 #0045 #0078 #0044 -../../../../as/FUNC/iotest.casl:15:OLEN2 DC 9 +../../../../as/FUNC/iotest.casl: 15:OLEN2 DC 9 #0079 #0009 -../../../../as/FUNC/iotest.casl:16:OBUF3 DC 'WHAT''S NEXT?' +../../../../as/FUNC/iotest.casl: 16:OBUF3 DC 'WHAT''S NEXT?' #007A #0057 #007B #0048 #007C #0041 @@ -190,9 +190,9 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #0083 #0058 #0084 #0054 #0085 #003F -../../../../as/FUNC/iotest.casl:17:OLEN3 DC 12 +../../../../as/FUNC/iotest.casl: 17:OLEN3 DC 12 #0086 #000C -../../../../as/FUNC/iotest.casl:18:IOBUF DS 64 +../../../../as/FUNC/iotest.casl: 18:IOBUF DS 64 #0087 #0000 #0088 #0000 #0089 #0000 @@ -257,9 +257,9 @@ Assemble ../../../../as/FUNC/iotest.casl (1) #00C4 #0000 #00C5 #0000 #00C6 #0000 -../../../../as/FUNC/iotest.casl:19:IOLEN DS 1 +../../../../as/FUNC/iotest.casl: 19:IOLEN DS 1 #00C7 #0000 -../../../../as/FUNC/iotest.casl:20: END +../../../../as/FUNC/iotest.casl: 20: END LET'S START. TYPE IN YOU TYPED aaaaaaaaaaaaaaaaaaaa diff --git a/test/integration/casl2/labeldup_err/0.txt b/test/integration/casl2/labeldup_err/0.txt index d1d5d84..ea2931f 100644 --- a/test/integration/casl2/labeldup_err/0.txt +++ b/test/integration/casl2/labeldup_err/0.txt @@ -1,12 +1,12 @@ ../../../../casl2 -slatd ../../../../as/ERR/labeldup_err.casl Assemble ../../../../as/ERR/labeldup_err.casl (0) -../../../../as/ERR/labeldup_err.casl:1:MAIN START BEGIN -../../../../as/ERR/labeldup_err.casl:2:BEGIN LD GR1,A -../../../../as/ERR/labeldup_err.casl:3: ADDA GR1,B -../../../../as/ERR/labeldup_err.casl:4: RET -../../../../as/ERR/labeldup_err.casl:5:A DC 3 -../../../../as/ERR/labeldup_err.casl:6:A DC 1 +../../../../as/ERR/labeldup_err.casl: 1:MAIN START BEGIN +../../../../as/ERR/labeldup_err.casl: 2:BEGIN LD GR1,A +../../../../as/ERR/labeldup_err.casl: 3: ADDA GR1,B +../../../../as/ERR/labeldup_err.casl: 4: RET +../../../../as/ERR/labeldup_err.casl: 5:A DC 3 +../../../../as/ERR/labeldup_err.casl: 6:A DC 1 Assemble error - 101: A: label already defined ../../../../as/ERR/labeldup_err.casl:6: A DC 1 diff --git a/test/integration/casl2/lad0/0.txt b/test/integration/casl2/lad0/0.txt index 08ab5ef..34354e1 100644 --- a/test/integration/casl2/lad0/0.txt +++ b/test/integration/casl2/lad0/0.txt @@ -1,22 +1,22 @@ ../../../../casl2 -slatd ../../../../as/CMD/lad0.casl Assemble ../../../../as/CMD/lad0.casl (0) -../../../../as/CMD/lad0.casl:1:LAD START -../../../../as/CMD/lad0.casl:2: LAD GR1,5 -../../../../as/CMD/lad0.casl:3: RET -../../../../as/CMD/lad0.casl:4: END +../../../../as/CMD/lad0.casl: 1:LAD START +../../../../as/CMD/lad0.casl: 2: LAD GR1,5 +../../../../as/CMD/lad0.casl: 3: RET +../../../../as/CMD/lad0.casl: 4: END Label:::: LAD ---> #0000 Assemble ../../../../as/CMD/lad0.casl (1) -../../../../as/CMD/lad0.casl:1:LAD START -../../../../as/CMD/lad0.casl:2: LAD GR1,5 +../../../../as/CMD/lad0.casl: 1:LAD START +../../../../as/CMD/lad0.casl: 2: LAD GR1,5 #0000 #1210 #0001 #0005 -../../../../as/CMD/lad0.casl:3: RET +../../../../as/CMD/lad0.casl: 3: RET #0002 #8100 -../../../../as/CMD/lad0.casl:4: END +../../../../as/CMD/lad0.casl: 4: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/lad1/0.txt b/test/integration/casl2/lad1/0.txt index f43a2f5..0484f75 100644 --- a/test/integration/casl2/lad1/0.txt +++ b/test/integration/casl2/lad1/0.txt @@ -1,12 +1,12 @@ ../../../../casl2 -slatd ../../../../as/CMD/lad1.casl Assemble ../../../../as/CMD/lad1.casl (0) -../../../../as/CMD/lad1.casl:1:MAIN START BEGIN -../../../../as/CMD/lad1.casl:2:BEGIN LD GR1,A -../../../../as/CMD/lad1.casl:3: LAD GR1,1,GR1 -../../../../as/CMD/lad1.casl:4: RET -../../../../as/CMD/lad1.casl:5:A DC 3 -../../../../as/CMD/lad1.casl:6: END +../../../../as/CMD/lad1.casl: 1:MAIN START BEGIN +../../../../as/CMD/lad1.casl: 2:BEGIN LD GR1,A +../../../../as/CMD/lad1.casl: 3: LAD GR1,1,GR1 +../../../../as/CMD/lad1.casl: 4: RET +../../../../as/CMD/lad1.casl: 5:A DC 3 +../../../../as/CMD/lad1.casl: 6: END Label:::: MAIN.A ---> #0005 @@ -14,18 +14,18 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/lad1.casl (1) -../../../../as/CMD/lad1.casl:1:MAIN START BEGIN -../../../../as/CMD/lad1.casl:2:BEGIN LD GR1,A +../../../../as/CMD/lad1.casl: 1:MAIN START BEGIN +../../../../as/CMD/lad1.casl: 2:BEGIN LD GR1,A #0000 #1010 #0001 #0005 -../../../../as/CMD/lad1.casl:3: LAD GR1,1,GR1 +../../../../as/CMD/lad1.casl: 3: LAD GR1,1,GR1 #0002 #1211 #0003 #0001 -../../../../as/CMD/lad1.casl:4: RET +../../../../as/CMD/lad1.casl: 4: RET #0004 #8100 -../../../../as/CMD/lad1.casl:5:A DC 3 +../../../../as/CMD/lad1.casl: 5:A DC 3 #0005 #0003 -../../../../as/CMD/lad1.casl:6: END +../../../../as/CMD/lad1.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/lad2/0.txt b/test/integration/casl2/lad2/0.txt index fa47903..3de864e 100644 --- a/test/integration/casl2/lad2/0.txt +++ b/test/integration/casl2/lad2/0.txt @@ -1,26 +1,26 @@ ../../../../casl2 -slatd ../../../../as/CMD/lad2.casl Assemble ../../../../as/CMD/lad2.casl (0) -../../../../as/CMD/lad2.casl:1:LAD1 START -../../../../as/CMD/lad2.casl:2: LAD GR1,10 -../../../../as/CMD/lad2.casl:3: LAD GR1,65534,GR1 -../../../../as/CMD/lad2.casl:4: RET -../../../../as/CMD/lad2.casl:5: END +../../../../as/CMD/lad2.casl: 1:LAD1 START +../../../../as/CMD/lad2.casl: 2: LAD GR1,10 +../../../../as/CMD/lad2.casl: 3: LAD GR1,65534,GR1 +../../../../as/CMD/lad2.casl: 4: RET +../../../../as/CMD/lad2.casl: 5: END Label:::: LAD1 ---> #0000 Assemble ../../../../as/CMD/lad2.casl (1) -../../../../as/CMD/lad2.casl:1:LAD1 START -../../../../as/CMD/lad2.casl:2: LAD GR1,10 +../../../../as/CMD/lad2.casl: 1:LAD1 START +../../../../as/CMD/lad2.casl: 2: LAD GR1,10 #0000 #1210 #0001 #000A -../../../../as/CMD/lad2.casl:3: LAD GR1,65534,GR1 +../../../../as/CMD/lad2.casl: 3: LAD GR1,65534,GR1 #0002 #1211 #0003 #7FFE -../../../../as/CMD/lad2.casl:4: RET +../../../../as/CMD/lad2.casl: 4: RET #0004 #8100 -../../../../as/CMD/lad2.casl:5: END +../../../../as/CMD/lad2.casl: 5: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/lad3/0.txt b/test/integration/casl2/lad3/0.txt index 566a2d4..678c4a7 100644 --- a/test/integration/casl2/lad3/0.txt +++ b/test/integration/casl2/lad3/0.txt @@ -1,26 +1,26 @@ ../../../../casl2 -slatd ../../../../as/CMD/lad3.casl Assemble ../../../../as/CMD/lad3.casl (0) -../../../../as/CMD/lad3.casl:1:LAD1 START -../../../../as/CMD/lad3.casl:2: LAD GR1,-1 -../../../../as/CMD/lad3.casl:3: LAD GR1,65535,GR1 -../../../../as/CMD/lad3.casl:4: RET -../../../../as/CMD/lad3.casl:5: END +../../../../as/CMD/lad3.casl: 1:LAD1 START +../../../../as/CMD/lad3.casl: 2: LAD GR1,-1 +../../../../as/CMD/lad3.casl: 3: LAD GR1,65535,GR1 +../../../../as/CMD/lad3.casl: 4: RET +../../../../as/CMD/lad3.casl: 5: END Label:::: LAD1 ---> #0000 Assemble ../../../../as/CMD/lad3.casl (1) -../../../../as/CMD/lad3.casl:1:LAD1 START -../../../../as/CMD/lad3.casl:2: LAD GR1,-1 +../../../../as/CMD/lad3.casl: 1:LAD1 START +../../../../as/CMD/lad3.casl: 2: LAD GR1,-1 #0000 #1210 #0001 #FFFF -../../../../as/CMD/lad3.casl:3: LAD GR1,65535,GR1 +../../../../as/CMD/lad3.casl: 3: LAD GR1,65535,GR1 #0002 #1211 #0003 #7FFF -../../../../as/CMD/lad3.casl:4: RET +../../../../as/CMD/lad3.casl: 4: RET #0004 #8100 -../../../../as/CMD/lad3.casl:5: END +../../../../as/CMD/lad3.casl: 5: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ld0/0.txt b/test/integration/casl2/ld0/0.txt index 37ab152..a9c01ac 100644 --- a/test/integration/casl2/ld0/0.txt +++ b/test/integration/casl2/ld0/0.txt @@ -1,25 +1,25 @@ ../../../../casl2 -slatd ../../../../as/CMD/ld0.casl Assemble ../../../../as/CMD/ld0.casl (0) -../../../../as/CMD/ld0.casl:1:MAIN START -../../../../as/CMD/ld0.casl:2: LAD GR1,3 -../../../../as/CMD/ld0.casl:3: LD GR0,GR1 -../../../../as/CMD/ld0.casl:4: RET -../../../../as/CMD/ld0.casl:5: END +../../../../as/CMD/ld0.casl: 1:MAIN START +../../../../as/CMD/ld0.casl: 2: LAD GR1,3 +../../../../as/CMD/ld0.casl: 3: LD GR0,GR1 +../../../../as/CMD/ld0.casl: 4: RET +../../../../as/CMD/ld0.casl: 5: END Label:::: MAIN ---> #0000 Assemble ../../../../as/CMD/ld0.casl (1) -../../../../as/CMD/ld0.casl:1:MAIN START -../../../../as/CMD/ld0.casl:2: LAD GR1,3 +../../../../as/CMD/ld0.casl: 1:MAIN START +../../../../as/CMD/ld0.casl: 2: LAD GR1,3 #0000 #1210 #0001 #0003 -../../../../as/CMD/ld0.casl:3: LD GR0,GR1 +../../../../as/CMD/ld0.casl: 3: LD GR0,GR1 #0002 #1401 -../../../../as/CMD/ld0.casl:4: RET +../../../../as/CMD/ld0.casl: 4: RET #0003 #8100 -../../../../as/CMD/ld0.casl:5: END +../../../../as/CMD/ld0.casl: 5: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ld1/0.txt b/test/integration/casl2/ld1/0.txt index 5d3b36b..08aec1c 100644 --- a/test/integration/casl2/ld1/0.txt +++ b/test/integration/casl2/ld1/0.txt @@ -1,31 +1,31 @@ ../../../../casl2 -slatd ../../../../as/CMD/ld1.casl Assemble ../../../../as/CMD/ld1.casl (0) -../../../../as/CMD/ld1.casl:1:MAIN START -../../../../as/CMD/ld1.casl:2: LD GR0,A -../../../../as/CMD/ld1.casl:3: RET -../../../../as/CMD/ld1.casl:4:A DC 1,1,2,3,5,8 -../../../../as/CMD/ld1.casl:5: END +../../../../as/CMD/ld1.casl: 1:MAIN START +../../../../as/CMD/ld1.casl: 2: LD GR0,A +../../../../as/CMD/ld1.casl: 3: RET +../../../../as/CMD/ld1.casl: 4:A DC 1,1,2,3,5,8 +../../../../as/CMD/ld1.casl: 5: END Label:::: MAIN.A ---> #0003 MAIN ---> #0000 Assemble ../../../../as/CMD/ld1.casl (1) -../../../../as/CMD/ld1.casl:1:MAIN START -../../../../as/CMD/ld1.casl:2: LD GR0,A +../../../../as/CMD/ld1.casl: 1:MAIN START +../../../../as/CMD/ld1.casl: 2: LD GR0,A #0000 #1000 #0001 #0003 -../../../../as/CMD/ld1.casl:3: RET +../../../../as/CMD/ld1.casl: 3: RET #0002 #8100 -../../../../as/CMD/ld1.casl:4:A DC 1,1,2,3,5,8 +../../../../as/CMD/ld1.casl: 4:A DC 1,1,2,3,5,8 #0003 #0001 #0004 #0001 #0005 #0002 #0006 #0003 #0007 #0005 #0008 #0008 -../../../../as/CMD/ld1.casl:5: END +../../../../as/CMD/ld1.casl: 5: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ld2/0.txt b/test/integration/casl2/ld2/0.txt index 032a824..e987d15 100644 --- a/test/integration/casl2/ld2/0.txt +++ b/test/integration/casl2/ld2/0.txt @@ -1,28 +1,28 @@ ../../../../casl2 -slatd ../../../../as/CMD/ld2.casl Assemble ../../../../as/CMD/ld2.casl (0) -../../../../as/CMD/ld2.casl:1:; LDコマンド -../../../../as/CMD/ld2.casl:2:MAIN START BEGIN -../../../../as/CMD/ld2.casl:3:BEGIN LAD GR0,3 -../../../../as/CMD/ld2.casl:4: LD GR1,GR0 -../../../../as/CMD/ld2.casl:5: RET -../../../../as/CMD/ld2.casl:6: END +../../../../as/CMD/ld2.casl: 1:; LDコマンド +../../../../as/CMD/ld2.casl: 2:MAIN START BEGIN +../../../../as/CMD/ld2.casl: 3:BEGIN LAD GR0,3 +../../../../as/CMD/ld2.casl: 4: LD GR1,GR0 +../../../../as/CMD/ld2.casl: 5: RET +../../../../as/CMD/ld2.casl: 6: END Label:::: MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/ld2.casl (1) -../../../../as/CMD/ld2.casl:1:; LDコマンド -../../../../as/CMD/ld2.casl:2:MAIN START BEGIN -../../../../as/CMD/ld2.casl:3:BEGIN LAD GR0,3 +../../../../as/CMD/ld2.casl: 1:; LDコマンド +../../../../as/CMD/ld2.casl: 2:MAIN START BEGIN +../../../../as/CMD/ld2.casl: 3:BEGIN LAD GR0,3 #0000 #1200 #0001 #0003 -../../../../as/CMD/ld2.casl:4: LD GR1,GR0 +../../../../as/CMD/ld2.casl: 4: LD GR1,GR0 #0002 #1410 -../../../../as/CMD/ld2.casl:5: RET +../../../../as/CMD/ld2.casl: 5: RET #0003 #8100 -../../../../as/CMD/ld2.casl:6: END +../../../../as/CMD/ld2.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ld3/0.txt b/test/integration/casl2/ld3/0.txt index ebe04de..3fc093c 100644 --- a/test/integration/casl2/ld3/0.txt +++ b/test/integration/casl2/ld3/0.txt @@ -1,11 +1,11 @@ ../../../../casl2 -slatd ../../../../as/CMD/ld3.casl Assemble ../../../../as/CMD/ld3.casl (0) -../../../../as/CMD/ld3.casl:1:MAIN START -../../../../as/CMD/ld3.casl:2:BEGIN LD GR1,I -../../../../as/CMD/ld3.casl:3: RET -../../../../as/CMD/ld3.casl:4:I DC 17 -../../../../as/CMD/ld3.casl:5: END +../../../../as/CMD/ld3.casl: 1:MAIN START +../../../../as/CMD/ld3.casl: 2:BEGIN LD GR1,I +../../../../as/CMD/ld3.casl: 3: RET +../../../../as/CMD/ld3.casl: 4:I DC 17 +../../../../as/CMD/ld3.casl: 5: END Label:::: MAIN.I ---> #0003 @@ -13,15 +13,15 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/ld3.casl (1) -../../../../as/CMD/ld3.casl:1:MAIN START -../../../../as/CMD/ld3.casl:2:BEGIN LD GR1,I +../../../../as/CMD/ld3.casl: 1:MAIN START +../../../../as/CMD/ld3.casl: 2:BEGIN LD GR1,I #0000 #1010 #0001 #0003 -../../../../as/CMD/ld3.casl:3: RET +../../../../as/CMD/ld3.casl: 3: RET #0002 #8100 -../../../../as/CMD/ld3.casl:4:I DC 17 +../../../../as/CMD/ld3.casl: 4:I DC 17 #0003 #0011 -../../../../as/CMD/ld3.casl:5: END +../../../../as/CMD/ld3.casl: 5: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ld4/0.txt b/test/integration/casl2/ld4/0.txt index d500a53..f84c4c6 100644 --- a/test/integration/casl2/ld4/0.txt +++ b/test/integration/casl2/ld4/0.txt @@ -1,15 +1,15 @@ ../../../../casl2 -slatd ../../../../as/CMD/ld4.casl Assemble ../../../../as/CMD/ld4.casl (0) -../../../../as/CMD/ld4.casl:1:; LDコマンド -../../../../as/CMD/ld4.casl:2:MAIN START BEGIN -../../../../as/CMD/ld4.casl:3:BEGIN LD GR1,A -../../../../as/CMD/ld4.casl:4: LD GR2,B -../../../../as/CMD/ld4.casl:5: ADDL GR1,GR2 -../../../../as/CMD/ld4.casl:6: RET -../../../../as/CMD/ld4.casl:7:A DC 32767 -../../../../as/CMD/ld4.casl:8:B DC 32675 -../../../../as/CMD/ld4.casl:9: END +../../../../as/CMD/ld4.casl: 1:; LDコマンド +../../../../as/CMD/ld4.casl: 2:MAIN START BEGIN +../../../../as/CMD/ld4.casl: 3:BEGIN LD GR1,A +../../../../as/CMD/ld4.casl: 4: LD GR2,B +../../../../as/CMD/ld4.casl: 5: ADDL GR1,GR2 +../../../../as/CMD/ld4.casl: 6: RET +../../../../as/CMD/ld4.casl: 7:A DC 32767 +../../../../as/CMD/ld4.casl: 8:B DC 32675 +../../../../as/CMD/ld4.casl: 9: END Label:::: MAIN.A ---> #0006 @@ -18,23 +18,23 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/ld4.casl (1) -../../../../as/CMD/ld4.casl:1:; LDコマンド -../../../../as/CMD/ld4.casl:2:MAIN START BEGIN -../../../../as/CMD/ld4.casl:3:BEGIN LD GR1,A +../../../../as/CMD/ld4.casl: 1:; LDコマンド +../../../../as/CMD/ld4.casl: 2:MAIN START BEGIN +../../../../as/CMD/ld4.casl: 3:BEGIN LD GR1,A #0000 #1010 #0001 #0006 -../../../../as/CMD/ld4.casl:4: LD GR2,B +../../../../as/CMD/ld4.casl: 4: LD GR2,B #0002 #1020 #0003 #0007 -../../../../as/CMD/ld4.casl:5: ADDL GR1,GR2 +../../../../as/CMD/ld4.casl: 5: ADDL GR1,GR2 #0004 #2612 -../../../../as/CMD/ld4.casl:6: RET +../../../../as/CMD/ld4.casl: 6: RET #0005 #8100 -../../../../as/CMD/ld4.casl:7:A DC 32767 +../../../../as/CMD/ld4.casl: 7:A DC 32767 #0006 #7FFF -../../../../as/CMD/ld4.casl:8:B DC 32675 +../../../../as/CMD/ld4.casl: 8:B DC 32675 #0007 #7FA3 -../../../../as/CMD/ld4.casl:9: END +../../../../as/CMD/ld4.casl: 9: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ld5/0.txt b/test/integration/casl2/ld5/0.txt index f4868cc..4c840c6 100644 --- a/test/integration/casl2/ld5/0.txt +++ b/test/integration/casl2/ld5/0.txt @@ -9,21 +9,21 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/ld5.casl (1) -../../../../as/CMD/ld5.casl:1:; LDコマンド -../../../../as/CMD/ld5.casl:2:MAIN START BEGIN -../../../../as/CMD/ld5.casl:3:BEGIN LAD GR2,1 +../../../../as/CMD/ld5.casl: 1:; LDコマンド +../../../../as/CMD/ld5.casl: 2:MAIN START BEGIN +../../../../as/CMD/ld5.casl: 3:BEGIN LAD GR2,1 #0000 #1220 #0001 #0001 -../../../../as/CMD/ld5.casl:4: LD GR1,A,GR2 +../../../../as/CMD/ld5.casl: 4: LD GR1,A,GR2 #0002 #1012 #0003 #0005 -../../../../as/CMD/ld5.casl:5: RET +../../../../as/CMD/ld5.casl: 5: RET #0004 #8100 -../../../../as/CMD/ld5.casl:6:A DC 1 +../../../../as/CMD/ld5.casl: 6:A DC 1 #0005 #0001 -../../../../as/CMD/ld5.casl:7:B DC 2 +../../../../as/CMD/ld5.casl: 7:B DC 2 #0006 #0002 -../../../../as/CMD/ld5.casl:8: END +../../../../as/CMD/ld5.casl: 8: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/ld_loop/0.txt b/test/integration/casl2/ld_loop/0.txt index 90d44cf..f1e96dc 100644 --- a/test/integration/casl2/ld_loop/0.txt +++ b/test/integration/casl2/ld_loop/0.txt @@ -1,18 +1,18 @@ ../../../../casl2 -slatd ../../../../as/CMD/ld_loop.casl Assemble ../../../../as/CMD/ld_loop.casl (0) -../../../../as/CMD/ld_loop.casl:1:;;; ループを使い、連続でGR1にデータを転送する -../../../../as/CMD/ld_loop.casl:2:MAIN START -../../../../as/CMD/ld_loop.casl:3: LAD GR2,0 -../../../../as/CMD/ld_loop.casl:4:MLOOP CPA GR2,LEN -../../../../as/CMD/ld_loop.casl:5: JZE MEND -../../../../as/CMD/ld_loop.casl:6: LD GR1,DATA,GR2 -../../../../as/CMD/ld_loop.casl:7: LAD GR2,1,GR2 -../../../../as/CMD/ld_loop.casl:8: JUMP MLOOP -../../../../as/CMD/ld_loop.casl:9:MEND RET -../../../../as/CMD/ld_loop.casl:10:DATA DC #9600,#F000,#A400 -../../../../as/CMD/ld_loop.casl:11:LEN DC 3 -../../../../as/CMD/ld_loop.casl:12: END +../../../../as/CMD/ld_loop.casl: 1:;;; ループを使い、連続でGR1にデータを転送する +../../../../as/CMD/ld_loop.casl: 2:MAIN START +../../../../as/CMD/ld_loop.casl: 3: LAD GR2,0 +../../../../as/CMD/ld_loop.casl: 4:MLOOP CPA GR2,LEN +../../../../as/CMD/ld_loop.casl: 5: JZE MEND +../../../../as/CMD/ld_loop.casl: 6: LD GR1,DATA,GR2 +../../../../as/CMD/ld_loop.casl: 7: LAD GR2,1,GR2 +../../../../as/CMD/ld_loop.casl: 8: JUMP MLOOP +../../../../as/CMD/ld_loop.casl: 9:MEND RET +../../../../as/CMD/ld_loop.casl: 10:DATA DC #9600,#F000,#A400 +../../../../as/CMD/ld_loop.casl: 11:LEN DC 3 +../../../../as/CMD/ld_loop.casl: 12: END Label:::: MAIN.MEND ---> #000C @@ -22,35 +22,35 @@ MAIN ---> #0000 MAIN.LEN ---> #0010 Assemble ../../../../as/CMD/ld_loop.casl (1) -../../../../as/CMD/ld_loop.casl:1:;;; ループを使い、連続でGR1にデータを転送する -../../../../as/CMD/ld_loop.casl:2:MAIN START -../../../../as/CMD/ld_loop.casl:3: LAD GR2,0 +../../../../as/CMD/ld_loop.casl: 1:;;; ループを使い、連続でGR1にデータを転送する +../../../../as/CMD/ld_loop.casl: 2:MAIN START +../../../../as/CMD/ld_loop.casl: 3: LAD GR2,0 #0000 #1220 #0001 #0000 -../../../../as/CMD/ld_loop.casl:4:MLOOP CPA GR2,LEN +../../../../as/CMD/ld_loop.casl: 4:MLOOP CPA GR2,LEN #0002 #4020 #0003 #0010 -../../../../as/CMD/ld_loop.casl:5: JZE MEND +../../../../as/CMD/ld_loop.casl: 5: JZE MEND #0004 #6300 #0005 #000C -../../../../as/CMD/ld_loop.casl:6: LD GR1,DATA,GR2 +../../../../as/CMD/ld_loop.casl: 6: LD GR1,DATA,GR2 #0006 #1012 #0007 #000D -../../../../as/CMD/ld_loop.casl:7: LAD GR2,1,GR2 +../../../../as/CMD/ld_loop.casl: 7: LAD GR2,1,GR2 #0008 #1222 #0009 #0001 -../../../../as/CMD/ld_loop.casl:8: JUMP MLOOP +../../../../as/CMD/ld_loop.casl: 8: JUMP MLOOP #000A #6400 #000B #0002 -../../../../as/CMD/ld_loop.casl:9:MEND RET +../../../../as/CMD/ld_loop.casl: 9:MEND RET #000C #8100 -../../../../as/CMD/ld_loop.casl:10:DATA DC #9600,#F000,#A400 +../../../../as/CMD/ld_loop.casl: 10:DATA DC #9600,#F000,#A400 #000D #9600 #000E #F000 #000F #A400 -../../../../as/CMD/ld_loop.casl:11:LEN DC 3 +../../../../as/CMD/ld_loop.casl: 11:LEN DC 3 #0010 #0003 -../../../../as/CMD/ld_loop.casl:12: END +../../../../as/CMD/ld_loop.casl: 12: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/literal_spc/0.txt b/test/integration/casl2/literal_spc/0.txt index e670131..697e0b3 100644 --- a/test/integration/casl2/literal_spc/0.txt +++ b/test/integration/casl2/literal_spc/0.txt @@ -1,15 +1,15 @@ ../../../../casl2 -slatd ../../../../as/CMD/literal_spc.casl Assemble ../../../../as/CMD/literal_spc.casl (0) -../../../../as/CMD/literal_spc.casl:1:; リテラルに「=' '」を指定した場合のテスト -../../../../as/CMD/literal_spc.casl:2:MAIN START -../../../../as/CMD/literal_spc.casl:3: LD GR1,=' ' -../../../../as/CMD/literal_spc.casl:4: ST GR1,BUF -../../../../as/CMD/literal_spc.casl:5: OUT BUF,LEN -../../../../as/CMD/literal_spc.casl:6: RET -../../../../as/CMD/literal_spc.casl:7:BUF DS 1 -../../../../as/CMD/literal_spc.casl:8:LEN DC 1 -../../../../as/CMD/literal_spc.casl:9: END +../../../../as/CMD/literal_spc.casl: 1:; リテラルに「=' '」を指定した場合のテスト +../../../../as/CMD/literal_spc.casl: 2:MAIN START +../../../../as/CMD/literal_spc.casl: 3: LD GR1,=' ' +../../../../as/CMD/literal_spc.casl: 4: ST GR1,BUF +../../../../as/CMD/literal_spc.casl: 5: OUT BUF,LEN +../../../../as/CMD/literal_spc.casl: 6: RET +../../../../as/CMD/literal_spc.casl: 7:BUF DS 1 +../../../../as/CMD/literal_spc.casl: 8:LEN DC 1 +../../../../as/CMD/literal_spc.casl: 9: END Label:::: MAIN.BUF ---> #0017 @@ -17,16 +17,16 @@ MAIN ---> #0000 MAIN.LEN ---> #0018 Assemble ../../../../as/CMD/literal_spc.casl (1) -../../../../as/CMD/literal_spc.casl:1:; リテラルに「=' '」を指定した場合のテスト -../../../../as/CMD/literal_spc.casl:2:MAIN START -../../../../as/CMD/literal_spc.casl:3: LD GR1,=' ' +../../../../as/CMD/literal_spc.casl: 1:; リテラルに「=' '」を指定した場合のテスト +../../../../as/CMD/literal_spc.casl: 2:MAIN START +../../../../as/CMD/literal_spc.casl: 3: LD GR1,=' ' #0019 #0020 #0000 #1010 #0001 #0019 -../../../../as/CMD/literal_spc.casl:4: ST GR1,BUF +../../../../as/CMD/literal_spc.casl: 4: ST GR1,BUF #0002 #1110 #0003 #0017 -../../../../as/CMD/literal_spc.casl:5: OUT BUF,LEN +../../../../as/CMD/literal_spc.casl: 5: OUT BUF,LEN #0004 #7001 #0005 #0000 #0006 #7002 @@ -46,13 +46,13 @@ Assemble ../../../../as/CMD/literal_spc.casl (1) #0013 #0002 #0014 #7120 #0015 #7110 -../../../../as/CMD/literal_spc.casl:6: RET +../../../../as/CMD/literal_spc.casl: 6: RET #0016 #8100 -../../../../as/CMD/literal_spc.casl:7:BUF DS 1 +../../../../as/CMD/literal_spc.casl: 7:BUF DS 1 #0017 #0000 -../../../../as/CMD/literal_spc.casl:8:LEN DC 1 +../../../../as/CMD/literal_spc.casl: 8:LEN DC 1 #0018 #0001 -../../../../as/CMD/literal_spc.casl:9: END +../../../../as/CMD/literal_spc.casl: 9: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/literalstr/0.txt b/test/integration/casl2/literalstr/0.txt index 75ba176..31deed3 100644 --- a/test/integration/casl2/literalstr/0.txt +++ b/test/integration/casl2/literalstr/0.txt @@ -1,19 +1,19 @@ ../../../../casl2 -slatd ../../../../as/CMD/literalstr.casl Assemble ../../../../as/CMD/literalstr.casl (0) -../../../../as/CMD/literalstr.casl:1:MAIN START -../../../../as/CMD/literalstr.casl:2: LAD GR1,='abcdeABCDE' -../../../../as/CMD/literalstr.casl:3: LAD GR2,10 -../../../../as/CMD/literalstr.casl:4:LOOP CPA GR2,=0 -../../../../as/CMD/literalstr.casl:5: JZE LEND -../../../../as/CMD/literalstr.casl:6: JMI LEND -../../../../as/CMD/literalstr.casl:7: LD GR3,0,GR1 -../../../../as/CMD/literalstr.casl:8: ADDA GR1,=1 -../../../../as/CMD/literalstr.casl:9: SUBA GR2,=1 -../../../../as/CMD/literalstr.casl:10: JUMP LOOP -../../../../as/CMD/literalstr.casl:11:LEND RET -../../../../as/CMD/literalstr.casl:12:LEN DC 5 -../../../../as/CMD/literalstr.casl:13: END +../../../../as/CMD/literalstr.casl: 1:MAIN START +../../../../as/CMD/literalstr.casl: 2: LAD GR1,='abcdeABCDE' +../../../../as/CMD/literalstr.casl: 3: LAD GR2,10 +../../../../as/CMD/literalstr.casl: 4:LOOP CPA GR2,=0 +../../../../as/CMD/literalstr.casl: 5: JZE LEND +../../../../as/CMD/literalstr.casl: 6: JMI LEND +../../../../as/CMD/literalstr.casl: 7: LD GR3,0,GR1 +../../../../as/CMD/literalstr.casl: 8: ADDA GR1,=1 +../../../../as/CMD/literalstr.casl: 9: SUBA GR2,=1 +../../../../as/CMD/literalstr.casl: 10: JUMP LOOP +../../../../as/CMD/literalstr.casl: 11:LEND RET +../../../../as/CMD/literalstr.casl: 12:LEN DC 5 +../../../../as/CMD/literalstr.casl: 13: END Label:::: MAIN.LOOP ---> #0004 @@ -22,8 +22,8 @@ MAIN.LEND ---> #0012 MAIN.LEN ---> #0013 Assemble ../../../../as/CMD/literalstr.casl (1) -../../../../as/CMD/literalstr.casl:1:MAIN START -../../../../as/CMD/literalstr.casl:2: LAD GR1,='abcdeABCDE' +../../../../as/CMD/literalstr.casl: 1:MAIN START +../../../../as/CMD/literalstr.casl: 2: LAD GR1,='abcdeABCDE' #0014 #0061 #0015 #0062 #0016 #0063 @@ -36,38 +36,38 @@ Assemble ../../../../as/CMD/literalstr.casl (1) #001D #0045 #0000 #1210 #0001 #0014 -../../../../as/CMD/literalstr.casl:3: LAD GR2,10 +../../../../as/CMD/literalstr.casl: 3: LAD GR2,10 #0002 #1220 #0003 #000A -../../../../as/CMD/literalstr.casl:4:LOOP CPA GR2,=0 +../../../../as/CMD/literalstr.casl: 4:LOOP CPA GR2,=0 #001E #0000 #0004 #4020 #0005 #001E -../../../../as/CMD/literalstr.casl:5: JZE LEND +../../../../as/CMD/literalstr.casl: 5: JZE LEND #0006 #6300 #0007 #0012 -../../../../as/CMD/literalstr.casl:6: JMI LEND +../../../../as/CMD/literalstr.casl: 6: JMI LEND #0008 #6100 #0009 #0012 -../../../../as/CMD/literalstr.casl:7: LD GR3,0,GR1 +../../../../as/CMD/literalstr.casl: 7: LD GR3,0,GR1 #000A #1031 #000B #0000 -../../../../as/CMD/literalstr.casl:8: ADDA GR1,=1 +../../../../as/CMD/literalstr.casl: 8: ADDA GR1,=1 #001F #0001 #000C #2010 #000D #001F -../../../../as/CMD/literalstr.casl:9: SUBA GR2,=1 +../../../../as/CMD/literalstr.casl: 9: SUBA GR2,=1 #0020 #0001 #000E #2120 #000F #0020 -../../../../as/CMD/literalstr.casl:10: JUMP LOOP +../../../../as/CMD/literalstr.casl: 10: JUMP LOOP #0010 #6400 #0011 #0004 -../../../../as/CMD/literalstr.casl:11:LEND RET +../../../../as/CMD/literalstr.casl: 11:LEND RET #0012 #8100 -../../../../as/CMD/literalstr.casl:12:LEN DC 5 +../../../../as/CMD/literalstr.casl: 12:LEN DC 5 #0013 #0005 -../../../../as/CMD/literalstr.casl:13: END +../../../../as/CMD/literalstr.casl: 13: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/minim_call/0.txt b/test/integration/casl2/minim_call/0.txt index e7aff1d..541d72b 100644 --- a/test/integration/casl2/minim_call/0.txt +++ b/test/integration/casl2/minim_call/0.txt @@ -1,162 +1,162 @@ ../../../../casl2 -sla ../../../../as/FUNC/minim_call.casl ../../../../as/FUNC/minim.casl ../../../../as/FUNC/outa.casl Assemble ../../../../as/FUNC/minim_call.casl (0) -../../../../as/FUNC/minim_call.casl:1:;;; casl2 minim_call.casl minim.casl outa.casl -../../../../as/FUNC/minim_call.casl:2:MAIN START -../../../../as/FUNC/minim_call.casl:3: LAD GR1,DATA -../../../../as/FUNC/minim_call.casl:4: LD GR2,CNT -../../../../as/FUNC/minim_call.casl:5: CALL MINIM -../../../../as/FUNC/minim_call.casl:6: LD GR1,GR0 -../../../../as/FUNC/minim_call.casl:7: CALL OUTA -../../../../as/FUNC/minim_call.casl:8: RET -../../../../as/FUNC/minim_call.casl:9:DATA DC 23,78,2,45,67,-39,86 -../../../../as/FUNC/minim_call.casl:10:CNT DC 7 -../../../../as/FUNC/minim_call.casl:11: END +../../../../as/FUNC/minim_call.casl: 1:;;; casl2 minim_call.casl minim.casl outa.casl +../../../../as/FUNC/minim_call.casl: 2:MAIN START +../../../../as/FUNC/minim_call.casl: 3: LAD GR1,DATA +../../../../as/FUNC/minim_call.casl: 4: LD GR2,CNT +../../../../as/FUNC/minim_call.casl: 5: CALL MINIM +../../../../as/FUNC/minim_call.casl: 6: LD GR1,GR0 +../../../../as/FUNC/minim_call.casl: 7: CALL OUTA +../../../../as/FUNC/minim_call.casl: 8: RET +../../../../as/FUNC/minim_call.casl: 9:DATA DC 23,78,2,45,67,-39,86 +../../../../as/FUNC/minim_call.casl: 10:CNT DC 7 +../../../../as/FUNC/minim_call.casl: 11: END Assemble ../../../../as/FUNC/minim.casl (0) -../../../../as/FUNC/minim.casl:1:;;; GR1のアドレスに格納されたGR2の個数の値の中で、最小値をGR0に格納する -../../../../as/FUNC/minim.casl:2:MINIM START -../../../../as/FUNC/minim.casl:3: LD GR0,0,GR1 -../../../../as/FUNC/minim.casl:4: ST GR0,MIN -../../../../as/FUNC/minim.casl:5: LAD GR3,0 -../../../../as/FUNC/minim.casl:6:S1 CPA GR3,GR2 -../../../../as/FUNC/minim.casl:7: JZE LRET -../../../../as/FUNC/minim.casl:8: LAD GR1,1,GR1 -../../../../as/FUNC/minim.casl:9: LD GR0,0,GR1 -../../../../as/FUNC/minim.casl:10: CPA GR0,MIN -../../../../as/FUNC/minim.casl:11: JPL S2 -../../../../as/FUNC/minim.casl:12: JZE S2 -../../../../as/FUNC/minim.casl:13: ST GR0,MIN -../../../../as/FUNC/minim.casl:14:S2 LAD GR3,1,GR3 -../../../../as/FUNC/minim.casl:15: JUMP S1 -../../../../as/FUNC/minim.casl:16:LRET LD GR0,MIN -../../../../as/FUNC/minim.casl:17: RET -../../../../as/FUNC/minim.casl:18:MIN DS 1 -../../../../as/FUNC/minim.casl:19: END +../../../../as/FUNC/minim.casl: 1:;;; GR1のアドレスに格納されたGR2の個数の値の中で、最小値をGR0に格納する +../../../../as/FUNC/minim.casl: 2:MINIM START +../../../../as/FUNC/minim.casl: 3: LD GR0,0,GR1 +../../../../as/FUNC/minim.casl: 4: ST GR0,MIN +../../../../as/FUNC/minim.casl: 5: LAD GR3,0 +../../../../as/FUNC/minim.casl: 6:S1 CPA GR3,GR2 +../../../../as/FUNC/minim.casl: 7: JZE LRET +../../../../as/FUNC/minim.casl: 8: LAD GR1,1,GR1 +../../../../as/FUNC/minim.casl: 9: LD GR0,0,GR1 +../../../../as/FUNC/minim.casl: 10: CPA GR0,MIN +../../../../as/FUNC/minim.casl: 11: JPL S2 +../../../../as/FUNC/minim.casl: 12: JZE S2 +../../../../as/FUNC/minim.casl: 13: ST GR0,MIN +../../../../as/FUNC/minim.casl: 14:S2 LAD GR3,1,GR3 +../../../../as/FUNC/minim.casl: 15: JUMP S1 +../../../../as/FUNC/minim.casl: 16:LRET LD GR0,MIN +../../../../as/FUNC/minim.casl: 17: RET +../../../../as/FUNC/minim.casl: 18:MIN DS 1 +../../../../as/FUNC/minim.casl: 19: END Assemble ../../../../as/FUNC/outa.casl (0) -../../../../as/FUNC/outa.casl:1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 -../../../../as/FUNC/outa.casl:2:OUTA START -../../../../as/FUNC/outa.casl:3: RPUSH -../../../../as/FUNC/outa.casl:4: LAD GR2,10 ; GR2に10進数の「10」を格納。 -../../../../as/FUNC/outa.casl:5: LAD GR0,0 ; GR0 <- 0 -../../../../as/FUNC/outa.casl:6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 -../../../../as/FUNC/outa.casl:7: ST GR0,LEN ; LENの初期化 -../../../../as/FUNC/outa.casl:8: AND GR1,GR1 ; GR1をテスト -../../../../as/FUNC/outa.casl:9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ -../../../../as/FUNC/outa.casl:10: JPL STI ; GR1が正数の場合、STIにジャンプ -../../../../as/FUNC/outa.casl:11: LAD GR4,1 ; GR1が負数の場合、GR4をオン -../../../../as/FUNC/outa.casl:12: CALL OABS ; GR1を正数に変換 -../../../../as/FUNC/outa.casl:13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 -../../../../as/FUNC/outa.casl:14: JMI STLST ; ↓ -../../../../as/FUNC/outa.casl:15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 -../../../../as/FUNC/outa.casl:16: LD GR1,GR3 ; GR1にGR3をコピー -../../../../as/FUNC/outa.casl:17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 -../../../../as/FUNC/outa.casl:18: CALL STSTR ; GR1をSTR領域に格納 -../../../../as/FUNC/outa.casl:19: LD GR1,GR0 ; GR0をGR1にコピー -../../../../as/FUNC/outa.casl:20: JUMP STI ; ループ終端 -../../../../as/FUNC/outa.casl:21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 -../../../../as/FUNC/outa.casl:22: CALL STSTR ; GR1をSTR領域に格納 -../../../../as/FUNC/outa.casl:23: AND GR4,GR4 ; 正数の場合 -../../../../as/FUNC/outa.casl:24: JZE PRT ; ↓ -../../../../as/FUNC/outa.casl:25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 -../../../../as/FUNC/outa.casl:26: CALL STSTR ; ↓ -../../../../as/FUNC/outa.casl:27: JUMP PRT ; PRTにジャンプ -../../../../as/FUNC/outa.casl:28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 -../../../../as/FUNC/outa.casl:29: CALL STSTR ; ↓ -../../../../as/FUNC/outa.casl:30:PRT LD GR2,LEN ; GR2にLENの値を格納 -../../../../as/FUNC/outa.casl:31: LAD GR1,STR ; GR1に文字列のアドレスを格納 -../../../../as/FUNC/outa.casl:32: CALL REV ; 文字列を逆順に並べ替え -../../../../as/FUNC/outa.casl:33: OUT STR,LEN ; 文字列を出力 -../../../../as/FUNC/outa.casl:34: RPOP -../../../../as/FUNC/outa.casl:35: RET -../../../../as/FUNC/outa.casl:36:STR DS 17 -../../../../as/FUNC/outa.casl:37:LEN DS 1 -../../../../as/FUNC/outa.casl:38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' -../../../../as/FUNC/outa.casl:39: END -../../../../as/FUNC/outa.casl:40:;; GR1をSTR領域に格納し、LENをインクリメント -../../../../as/FUNC/outa.casl:41:STSTR START -../../../../as/FUNC/outa.casl:42: PUSH 0,GR1 -../../../../as/FUNC/outa.casl:43: PUSH 0,GR2 -../../../../as/FUNC/outa.casl:44: LD GR2,LEN ; GR2にLENの値をロード -../../../../as/FUNC/outa.casl:45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 -../../../../as/FUNC/outa.casl:46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 -../../../../as/FUNC/outa.casl:47: ST GR2,LEN ; LENにGR2を格納 -../../../../as/FUNC/outa.casl:48: POP GR2 -../../../../as/FUNC/outa.casl:49: POP GR1 -../../../../as/FUNC/outa.casl:50: RET -../../../../as/FUNC/outa.casl:51: END -../../../../as/FUNC/outa.casl:52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する -../../../../as/FUNC/outa.casl:53:;;; 0〜65535の範囲の数値を扱う -../../../../as/FUNC/outa.casl:54:ODIVL START -../../../../as/FUNC/outa.casl:55: PUSH 0,GR1 -../../../../as/FUNC/outa.casl:56: PUSH 0,GR2 -../../../../as/FUNC/outa.casl:57: PUSH 0,GR4 -../../../../as/FUNC/outa.casl:58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ -../../../../as/FUNC/outa.casl:59: JZE ODFIN ; ↓ -../../../../as/FUNC/outa.casl:60: ST GR2,ODY ; ODYにGR2の初期値を保存 -../../../../as/FUNC/outa.casl:61: LAD GR0,0 ; GR0の初期化 -../../../../as/FUNC/outa.casl:62: LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:63: LAD GR4,1 ; GR4の初期化。対象ビットを表す -../../../../as/FUNC/outa.casl:64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 -../../../../as/FUNC/outa.casl:65: JPL ODLOOP ; ↓ -../../../../as/FUNC/outa.casl:66: SLL GR4,1 ; GR4を1回左シフト -../../../../as/FUNC/outa.casl:67: SLL GR2,1 ; GR2を1回左シフト -../../../../as/FUNC/outa.casl:68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ -../../../../as/FUNC/outa.casl:69: JUMP ODSL ; ループ終端 -../../../../as/FUNC/outa.casl:70:ODYOV SRL GR2,1 -../../../../as/FUNC/outa.casl:71: LAD GR2,#8000,GR2 -../../../../as/FUNC/outa.casl:72: SRL GR4,1 -../../../../as/FUNC/outa.casl:73: JUMP ODLPIN -../../../../as/FUNC/outa.casl:74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト -../../../../as/FUNC/outa.casl:75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:76: SRL GR2,1 ; GR2を1回右シフト -../../../../as/FUNC/outa.casl:77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:78: JMI ODFIN ; ↓ -../../../../as/FUNC/outa.casl:79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ -../../../../as/FUNC/outa.casl:80: JMI ODLOOP ; ↓ -../../../../as/FUNC/outa.casl:81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 -../../../../as/FUNC/outa.casl:82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 -../../../../as/FUNC/outa.casl:83: JUMP ODLOOP ; ループ終端 -../../../../as/FUNC/outa.casl:84:ODFIN LD GR3,GR1 -../../../../as/FUNC/outa.casl:85: POP GR4 -../../../../as/FUNC/outa.casl:86: POP GR2 -../../../../as/FUNC/outa.casl:87: POP GR1 -../../../../as/FUNC/outa.casl:88: RET -../../../../as/FUNC/outa.casl:89:ODY DS 1 -../../../../as/FUNC/outa.casl:90: END -../../../../as/FUNC/outa.casl:91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える -../../../../as/FUNC/outa.casl:92:;; 例: 12345 -> 54321、54321- -> -12345 -../../../../as/FUNC/outa.casl:93:REV START -../../../../as/FUNC/outa.casl:94: RPUSH -../../../../as/FUNC/outa.casl:95: LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:97: JZE RNEXT ; ↓ -../../../../as/FUNC/outa.casl:98: LD GR4,GR1 ; GR4にGR1の値をコピー -../../../../as/FUNC/outa.casl:99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 -../../../../as/FUNC/outa.casl:100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 -../../../../as/FUNC/outa.casl:101: PUSH 0,GR5 ; GR5をプッシュ -../../../../as/FUNC/outa.casl:102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 -../../../../as/FUNC/outa.casl:103: JUMP RPU ; ループ終端 -../../../../as/FUNC/outa.casl:104:RNEXT LAD GR3,0 ; GR3の初期化 -../../../../as/FUNC/outa.casl:105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 -../../../../as/FUNC/outa.casl:106: JZE RFIN ; ↓ -../../../../as/FUNC/outa.casl:107: POP GR5 ; GR5にポップ -../../../../as/FUNC/outa.casl:108: LD GR4,GR1 ; GR4にGR1の値をコピー -../../../../as/FUNC/outa.casl:109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 -../../../../as/FUNC/outa.casl:110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 -../../../../as/FUNC/outa.casl:111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 -../../../../as/FUNC/outa.casl:112: JUMP RPO ; ループ終端 -../../../../as/FUNC/outa.casl:113:RFIN RPOP -../../../../as/FUNC/outa.casl:114: RET -../../../../as/FUNC/outa.casl:115: END -../../../../as/FUNC/outa.casl:116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 -../../../../as/FUNC/outa.casl:117:;; 例: -10 -> 10, -20 -> 20 -../../../../as/FUNC/outa.casl:118:OABS START -../../../../as/FUNC/outa.casl:119: XOR GR1,=#FFFF ; GR1の値を反転 -../../../../as/FUNC/outa.casl:120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 -../../../../as/FUNC/outa.casl:121: RET -../../../../as/FUNC/outa.casl:122: END +../../../../as/FUNC/outa.casl: 1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 +../../../../as/FUNC/outa.casl: 2:OUTA START +../../../../as/FUNC/outa.casl: 3: RPUSH +../../../../as/FUNC/outa.casl: 4: LAD GR2,10 ; GR2に10進数の「10」を格納。 +../../../../as/FUNC/outa.casl: 5: LAD GR0,0 ; GR0 <- 0 +../../../../as/FUNC/outa.casl: 6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 +../../../../as/FUNC/outa.casl: 7: ST GR0,LEN ; LENの初期化 +../../../../as/FUNC/outa.casl: 8: AND GR1,GR1 ; GR1をテスト +../../../../as/FUNC/outa.casl: 9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ +../../../../as/FUNC/outa.casl: 10: JPL STI ; GR1が正数の場合、STIにジャンプ +../../../../as/FUNC/outa.casl: 11: LAD GR4,1 ; GR1が負数の場合、GR4をオン +../../../../as/FUNC/outa.casl: 12: CALL OABS ; GR1を正数に変換 +../../../../as/FUNC/outa.casl: 13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 +../../../../as/FUNC/outa.casl: 14: JMI STLST ; ↓ +../../../../as/FUNC/outa.casl: 15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 +../../../../as/FUNC/outa.casl: 16: LD GR1,GR3 ; GR1にGR3をコピー +../../../../as/FUNC/outa.casl: 17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 18: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 19: LD GR1,GR0 ; GR0をGR1にコピー +../../../../as/FUNC/outa.casl: 20: JUMP STI ; ループ終端 +../../../../as/FUNC/outa.casl: 21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 22: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 23: AND GR4,GR4 ; 正数の場合 +../../../../as/FUNC/outa.casl: 24: JZE PRT ; ↓ +../../../../as/FUNC/outa.casl: 25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 26: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 27: JUMP PRT ; PRTにジャンプ +../../../../as/FUNC/outa.casl: 28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 29: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 30:PRT LD GR2,LEN ; GR2にLENの値を格納 +../../../../as/FUNC/outa.casl: 31: LAD GR1,STR ; GR1に文字列のアドレスを格納 +../../../../as/FUNC/outa.casl: 32: CALL REV ; 文字列を逆順に並べ替え +../../../../as/FUNC/outa.casl: 33: OUT STR,LEN ; 文字列を出力 +../../../../as/FUNC/outa.casl: 34: RPOP +../../../../as/FUNC/outa.casl: 35: RET +../../../../as/FUNC/outa.casl: 36:STR DS 17 +../../../../as/FUNC/outa.casl: 37:LEN DS 1 +../../../../as/FUNC/outa.casl: 38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' +../../../../as/FUNC/outa.casl: 39: END +../../../../as/FUNC/outa.casl: 40:;; GR1をSTR領域に格納し、LENをインクリメント +../../../../as/FUNC/outa.casl: 41:STSTR START +../../../../as/FUNC/outa.casl: 42: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 43: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 44: LD GR2,LEN ; GR2にLENの値をロード +../../../../as/FUNC/outa.casl: 45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 +../../../../as/FUNC/outa.casl: 46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 +../../../../as/FUNC/outa.casl: 47: ST GR2,LEN ; LENにGR2を格納 +../../../../as/FUNC/outa.casl: 48: POP GR2 +../../../../as/FUNC/outa.casl: 49: POP GR1 +../../../../as/FUNC/outa.casl: 50: RET +../../../../as/FUNC/outa.casl: 51: END +../../../../as/FUNC/outa.casl: 52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する +../../../../as/FUNC/outa.casl: 53:;;; 0〜65535の範囲の数値を扱う +../../../../as/FUNC/outa.casl: 54:ODIVL START +../../../../as/FUNC/outa.casl: 55: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 56: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 57: PUSH 0,GR4 +../../../../as/FUNC/outa.casl: 58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ +../../../../as/FUNC/outa.casl: 59: JZE ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 60: ST GR2,ODY ; ODYにGR2の初期値を保存 +../../../../as/FUNC/outa.casl: 61: LAD GR0,0 ; GR0の初期化 +../../../../as/FUNC/outa.casl: 62: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 63: LAD GR4,1 ; GR4の初期化。対象ビットを表す +../../../../as/FUNC/outa.casl: 64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 +../../../../as/FUNC/outa.casl: 65: JPL ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 66: SLL GR4,1 ; GR4を1回左シフト +../../../../as/FUNC/outa.casl: 67: SLL GR2,1 ; GR2を1回左シフト +../../../../as/FUNC/outa.casl: 68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ +../../../../as/FUNC/outa.casl: 69: JUMP ODSL ; ループ終端 +../../../../as/FUNC/outa.casl: 70:ODYOV SRL GR2,1 +../../../../as/FUNC/outa.casl: 71: LAD GR2,#8000,GR2 +../../../../as/FUNC/outa.casl: 72: SRL GR4,1 +../../../../as/FUNC/outa.casl: 73: JUMP ODLPIN +../../../../as/FUNC/outa.casl: 74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト +../../../../as/FUNC/outa.casl: 75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 76: SRL GR2,1 ; GR2を1回右シフト +../../../../as/FUNC/outa.casl: 77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 78: JMI ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ +../../../../as/FUNC/outa.casl: 80: JMI ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 +../../../../as/FUNC/outa.casl: 82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 +../../../../as/FUNC/outa.casl: 83: JUMP ODLOOP ; ループ終端 +../../../../as/FUNC/outa.casl: 84:ODFIN LD GR3,GR1 +../../../../as/FUNC/outa.casl: 85: POP GR4 +../../../../as/FUNC/outa.casl: 86: POP GR2 +../../../../as/FUNC/outa.casl: 87: POP GR1 +../../../../as/FUNC/outa.casl: 88: RET +../../../../as/FUNC/outa.casl: 89:ODY DS 1 +../../../../as/FUNC/outa.casl: 90: END +../../../../as/FUNC/outa.casl: 91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える +../../../../as/FUNC/outa.casl: 92:;; 例: 12345 -> 54321、54321- -> -12345 +../../../../as/FUNC/outa.casl: 93:REV START +../../../../as/FUNC/outa.casl: 94: RPUSH +../../../../as/FUNC/outa.casl: 95: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 97: JZE RNEXT ; ↓ +../../../../as/FUNC/outa.casl: 98: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 +../../../../as/FUNC/outa.casl: 101: PUSH 0,GR5 ; GR5をプッシュ +../../../../as/FUNC/outa.casl: 102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 103: JUMP RPU ; ループ終端 +../../../../as/FUNC/outa.casl: 104:RNEXT LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 106: JZE RFIN ; ↓ +../../../../as/FUNC/outa.casl: 107: POP GR5 ; GR5にポップ +../../../../as/FUNC/outa.casl: 108: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 +../../../../as/FUNC/outa.casl: 111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 112: JUMP RPO ; ループ終端 +../../../../as/FUNC/outa.casl: 113:RFIN RPOP +../../../../as/FUNC/outa.casl: 114: RET +../../../../as/FUNC/outa.casl: 115: END +../../../../as/FUNC/outa.casl: 116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 +../../../../as/FUNC/outa.casl: 117:;; 例: -10 -> 10, -20 -> 20 +../../../../as/FUNC/outa.casl: 118:OABS START +../../../../as/FUNC/outa.casl: 119: XOR GR1,=#FFFF ; GR1の値を反転 +../../../../as/FUNC/outa.casl: 120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 +../../../../as/FUNC/outa.casl: 121: RET +../../../../as/FUNC/outa.casl: 122: END Label:::: OUTA.STI ---> #004E @@ -191,25 +191,25 @@ ODIVL.ODLOOP ---> #00F5 ODIVL.ODLPIN ---> #0102 Assemble ../../../../as/FUNC/minim_call.casl (1) -../../../../as/FUNC/minim_call.casl:1:;;; casl2 minim_call.casl minim.casl outa.casl -../../../../as/FUNC/minim_call.casl:2:MAIN START -../../../../as/FUNC/minim_call.casl:3: LAD GR1,DATA +../../../../as/FUNC/minim_call.casl: 1:;;; casl2 minim_call.casl minim.casl outa.casl +../../../../as/FUNC/minim_call.casl: 2:MAIN START +../../../../as/FUNC/minim_call.casl: 3: LAD GR1,DATA #0000 #1210 #0001 #000A -../../../../as/FUNC/minim_call.casl:4: LD GR2,CNT +../../../../as/FUNC/minim_call.casl: 4: LD GR2,CNT #0002 #1020 #0003 #0011 -../../../../as/FUNC/minim_call.casl:5: CALL MINIM +../../../../as/FUNC/minim_call.casl: 5: CALL MINIM #0004 #8000 #0005 #0012 -../../../../as/FUNC/minim_call.casl:6: LD GR1,GR0 +../../../../as/FUNC/minim_call.casl: 6: LD GR1,GR0 #0006 #1410 -../../../../as/FUNC/minim_call.casl:7: CALL OUTA +../../../../as/FUNC/minim_call.casl: 7: CALL OUTA #0007 #8000 #0008 #002F -../../../../as/FUNC/minim_call.casl:8: RET +../../../../as/FUNC/minim_call.casl: 8: RET #0009 #8100 -../../../../as/FUNC/minim_call.casl:9:DATA DC 23,78,2,45,67,-39,86 +../../../../as/FUNC/minim_call.casl: 9:DATA DC 23,78,2,45,67,-39,86 #000A #0017 #000B #004E #000C #0002 @@ -217,64 +217,64 @@ Assemble ../../../../as/FUNC/minim_call.casl (1) #000E #0043 #000F #FFD9 #0010 #0056 -../../../../as/FUNC/minim_call.casl:10:CNT DC 7 +../../../../as/FUNC/minim_call.casl: 10:CNT DC 7 #0011 #0007 -../../../../as/FUNC/minim_call.casl:11: END +../../../../as/FUNC/minim_call.casl: 11: END Assemble ../../../../as/FUNC/minim.casl (1) -../../../../as/FUNC/minim.casl:1:;;; GR1のアドレスに格納されたGR2の個数の値の中で、最小値をGR0に格納する -../../../../as/FUNC/minim.casl:2:MINIM START -../../../../as/FUNC/minim.casl:3: LD GR0,0,GR1 +../../../../as/FUNC/minim.casl: 1:;;; GR1のアドレスに格納されたGR2の個数の値の中で、最小値をGR0に格納する +../../../../as/FUNC/minim.casl: 2:MINIM START +../../../../as/FUNC/minim.casl: 3: LD GR0,0,GR1 #0012 #1001 #0013 #0000 -../../../../as/FUNC/minim.casl:4: ST GR0,MIN +../../../../as/FUNC/minim.casl: 4: ST GR0,MIN #0014 #1100 #0015 #002E -../../../../as/FUNC/minim.casl:5: LAD GR3,0 +../../../../as/FUNC/minim.casl: 5: LAD GR3,0 #0016 #1230 #0017 #0000 -../../../../as/FUNC/minim.casl:6:S1 CPA GR3,GR2 +../../../../as/FUNC/minim.casl: 6:S1 CPA GR3,GR2 #0018 #4432 -../../../../as/FUNC/minim.casl:7: JZE LRET +../../../../as/FUNC/minim.casl: 7: JZE LRET #0019 #6300 #001A #002B -../../../../as/FUNC/minim.casl:8: LAD GR1,1,GR1 +../../../../as/FUNC/minim.casl: 8: LAD GR1,1,GR1 #001B #1211 #001C #0001 -../../../../as/FUNC/minim.casl:9: LD GR0,0,GR1 +../../../../as/FUNC/minim.casl: 9: LD GR0,0,GR1 #001D #1001 #001E #0000 -../../../../as/FUNC/minim.casl:10: CPA GR0,MIN +../../../../as/FUNC/minim.casl: 10: CPA GR0,MIN #001F #4000 #0020 #002E -../../../../as/FUNC/minim.casl:11: JPL S2 +../../../../as/FUNC/minim.casl: 11: JPL S2 #0021 #6500 #0022 #0027 -../../../../as/FUNC/minim.casl:12: JZE S2 +../../../../as/FUNC/minim.casl: 12: JZE S2 #0023 #6300 #0024 #0027 -../../../../as/FUNC/minim.casl:13: ST GR0,MIN +../../../../as/FUNC/minim.casl: 13: ST GR0,MIN #0025 #1100 #0026 #002E -../../../../as/FUNC/minim.casl:14:S2 LAD GR3,1,GR3 +../../../../as/FUNC/minim.casl: 14:S2 LAD GR3,1,GR3 #0027 #1233 #0028 #0001 -../../../../as/FUNC/minim.casl:15: JUMP S1 +../../../../as/FUNC/minim.casl: 15: JUMP S1 #0029 #6400 #002A #0018 -../../../../as/FUNC/minim.casl:16:LRET LD GR0,MIN +../../../../as/FUNC/minim.casl: 16:LRET LD GR0,MIN #002B #1000 #002C #002E -../../../../as/FUNC/minim.casl:17: RET +../../../../as/FUNC/minim.casl: 17: RET #002D #8100 -../../../../as/FUNC/minim.casl:18:MIN DS 1 +../../../../as/FUNC/minim.casl: 18:MIN DS 1 #002E #0000 -../../../../as/FUNC/minim.casl:19: END +../../../../as/FUNC/minim.casl: 19: END Assemble ../../../../as/FUNC/outa.casl (1) -../../../../as/FUNC/outa.casl:1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 -../../../../as/FUNC/outa.casl:2:OUTA START -../../../../as/FUNC/outa.casl:3: RPUSH +../../../../as/FUNC/outa.casl: 1:;;; GR1に格納された値を、10進数の整数値(-32768〜32767)として表示 +../../../../as/FUNC/outa.casl: 2:OUTA START +../../../../as/FUNC/outa.casl: 3: RPUSH #002F #7001 #0030 #0000 #0031 #7002 @@ -289,90 +289,90 @@ Assemble ../../../../as/FUNC/outa.casl (1) #003A #0000 #003B #7007 #003C #0000 -../../../../as/FUNC/outa.casl:4: LAD GR2,10 ; GR2に10進数の「10」を格納。 +../../../../as/FUNC/outa.casl: 4: LAD GR2,10 ; GR2に10進数の「10」を格納。 #003D #1220 #003E #000A -../../../../as/FUNC/outa.casl:5: LAD GR0,0 ; GR0 <- 0 +../../../../as/FUNC/outa.casl: 5: LAD GR0,0 ; GR0 <- 0 #003F #1200 #0040 #0000 -../../../../as/FUNC/outa.casl:6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 +../../../../as/FUNC/outa.casl: 6: LAD GR4,0 ; 負数フラグ。GR1が負数の場合、GR4は1 #0041 #1240 #0042 #0000 -../../../../as/FUNC/outa.casl:7: ST GR0,LEN ; LENの初期化 +../../../../as/FUNC/outa.casl: 7: ST GR0,LEN ; LENの初期化 #0043 #1100 #0044 #009D -../../../../as/FUNC/outa.casl:8: AND GR1,GR1 ; GR1をテスト +../../../../as/FUNC/outa.casl: 8: AND GR1,GR1 ; GR1をテスト #0045 #3411 -../../../../as/FUNC/outa.casl:9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ +../../../../as/FUNC/outa.casl: 9: JZE ZPRT ; GR1が0の場合、ZPRTにジャンプ #0046 #6300 #0047 #0068 -../../../../as/FUNC/outa.casl:10: JPL STI ; GR1が正数の場合、STIにジャンプ +../../../../as/FUNC/outa.casl: 10: JPL STI ; GR1が正数の場合、STIにジャンプ #0048 #6500 #0049 #004E -../../../../as/FUNC/outa.casl:11: LAD GR4,1 ; GR1が負数の場合、GR4をオン +../../../../as/FUNC/outa.casl: 11: LAD GR4,1 ; GR1が負数の場合、GR4をオン #004A #1240 #004B #0001 -../../../../as/FUNC/outa.casl:12: CALL OABS ; GR1を正数に変換 +../../../../as/FUNC/outa.casl: 12: CALL OABS ; GR1を正数に変換 #004C #8000 #004D #013F -../../../../as/FUNC/outa.casl:13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 +../../../../as/FUNC/outa.casl: 13:STI CPL GR1,GR2 ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出 #004E #4512 -../../../../as/FUNC/outa.casl:14: JMI STLST ; ↓ +../../../../as/FUNC/outa.casl: 14: JMI STLST ; ↓ #004F #6100 #0050 #005B -../../../../as/FUNC/outa.casl:15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 +../../../../as/FUNC/outa.casl: 15: CALL ODIVL ; GR1とGR2の、商をGR0、剰余をGR3に格納 #0051 #8000 #0052 #00D1 -../../../../as/FUNC/outa.casl:16: LD GR1,GR3 ; GR1にGR3をコピー +../../../../as/FUNC/outa.casl: 16: LD GR1,GR3 ; GR1にGR3をコピー #0053 #1413 -../../../../as/FUNC/outa.casl:17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 17: LD GR1,NCHAR,GR1 ; GR1を文字に変換 #0054 #1011 #0055 #009E -../../../../as/FUNC/outa.casl:18: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 18: CALL STSTR ; GR1をSTR領域に格納 #0056 #8000 #0057 #00C2 -../../../../as/FUNC/outa.casl:19: LD GR1,GR0 ; GR0をGR1にコピー +../../../../as/FUNC/outa.casl: 19: LD GR1,GR0 ; GR0をGR1にコピー #0058 #1410 -../../../../as/FUNC/outa.casl:20: JUMP STI ; ループ終端 +../../../../as/FUNC/outa.casl: 20: JUMP STI ; ループ終端 #0059 #6400 #005A #004E -../../../../as/FUNC/outa.casl:21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 +../../../../as/FUNC/outa.casl: 21:STLST LD GR1,NCHAR,GR1 ; GR1を文字に変換 #005B #1011 #005C #009E -../../../../as/FUNC/outa.casl:22: CALL STSTR ; GR1をSTR領域に格納 +../../../../as/FUNC/outa.casl: 22: CALL STSTR ; GR1をSTR領域に格納 #005D #8000 #005E #00C2 -../../../../as/FUNC/outa.casl:23: AND GR4,GR4 ; 正数の場合 +../../../../as/FUNC/outa.casl: 23: AND GR4,GR4 ; 正数の場合 #005F #3444 -../../../../as/FUNC/outa.casl:24: JZE PRT ; ↓ +../../../../as/FUNC/outa.casl: 24: JZE PRT ; ↓ #0060 #6300 #0061 #006C -../../../../as/FUNC/outa.casl:25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 25: LD GR1,='-' ; 負数の場合、「-」をSTR領域に格納 #0144 #002D #0062 #1010 #0063 #0144 -../../../../as/FUNC/outa.casl:26: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 26: CALL STSTR ; ↓ #0064 #8000 #0065 #00C2 -../../../../as/FUNC/outa.casl:27: JUMP PRT ; PRTにジャンプ +../../../../as/FUNC/outa.casl: 27: JUMP PRT ; PRTにジャンプ #0066 #6400 #0067 #006C -../../../../as/FUNC/outa.casl:28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 +../../../../as/FUNC/outa.casl: 28:ZPRT LD GR1,NCHAR ; 「0」をSTR領域に格納 #0068 #1010 #0069 #009E -../../../../as/FUNC/outa.casl:29: CALL STSTR ; ↓ +../../../../as/FUNC/outa.casl: 29: CALL STSTR ; ↓ #006A #8000 #006B #00C2 -../../../../as/FUNC/outa.casl:30:PRT LD GR2,LEN ; GR2にLENの値を格納 +../../../../as/FUNC/outa.casl: 30:PRT LD GR2,LEN ; GR2にLENの値を格納 #006C #1020 #006D #009D -../../../../as/FUNC/outa.casl:31: LAD GR1,STR ; GR1に文字列のアドレスを格納 +../../../../as/FUNC/outa.casl: 31: LAD GR1,STR ; GR1に文字列のアドレスを格納 #006E #1210 #006F #008C -../../../../as/FUNC/outa.casl:32: CALL REV ; 文字列を逆順に並べ替え +../../../../as/FUNC/outa.casl: 32: CALL REV ; 文字列を逆順に並べ替え #0070 #8000 #0071 #010C -../../../../as/FUNC/outa.casl:33: OUT STR,LEN ; 文字列を出力 +../../../../as/FUNC/outa.casl: 33: OUT STR,LEN ; 文字列を出力 #0072 #7001 #0073 #0000 #0074 #7002 @@ -392,7 +392,7 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0081 #0002 #0082 #7120 #0083 #7110 -../../../../as/FUNC/outa.casl:34: RPOP +../../../../as/FUNC/outa.casl: 34: RPOP #0084 #7170 #0085 #7160 #0086 #7150 @@ -400,9 +400,9 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0088 #7130 #0089 #7120 #008A #7110 -../../../../as/FUNC/outa.casl:35: RET +../../../../as/FUNC/outa.casl: 35: RET #008B #8100 -../../../../as/FUNC/outa.casl:36:STR DS 17 +../../../../as/FUNC/outa.casl: 36:STR DS 17 #008C #0000 #008D #0000 #008E #0000 @@ -420,9 +420,9 @@ Assemble ../../../../as/FUNC/outa.casl (1) #009A #0000 #009B #0000 #009C #0000 -../../../../as/FUNC/outa.casl:37:LEN DS 1 +../../../../as/FUNC/outa.casl: 37:LEN DS 1 #009D #0000 -../../../../as/FUNC/outa.casl:38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' +../../../../as/FUNC/outa.casl: 38:NCHAR DC '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' #009E #0030 #009F #0031 #00A0 #0032 @@ -459,136 +459,136 @@ Assemble ../../../../as/FUNC/outa.casl (1) #00BF #0058 #00C0 #0059 #00C1 #005A -../../../../as/FUNC/outa.casl:39: END -../../../../as/FUNC/outa.casl:40:;; GR1をSTR領域に格納し、LENをインクリメント -../../../../as/FUNC/outa.casl:41:STSTR START -../../../../as/FUNC/outa.casl:42: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 39: END +../../../../as/FUNC/outa.casl: 40:;; GR1をSTR領域に格納し、LENをインクリメント +../../../../as/FUNC/outa.casl: 41:STSTR START +../../../../as/FUNC/outa.casl: 42: PUSH 0,GR1 #00C2 #7001 #00C3 #0000 -../../../../as/FUNC/outa.casl:43: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 43: PUSH 0,GR2 #00C4 #7002 #00C5 #0000 -../../../../as/FUNC/outa.casl:44: LD GR2,LEN ; GR2にLENの値をロード +../../../../as/FUNC/outa.casl: 44: LD GR2,LEN ; GR2にLENの値をロード #00C6 #1020 #00C7 #009D -../../../../as/FUNC/outa.casl:45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 +../../../../as/FUNC/outa.casl: 45: ST GR1,STR,GR2 ; STR+GR2 <- GR1 #00C8 #1112 #00C9 #008C -../../../../as/FUNC/outa.casl:46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 +../../../../as/FUNC/outa.casl: 46: LAD GR2,1,GR2 ; GR2 <- GR2 + 1 #00CA #1222 #00CB #0001 -../../../../as/FUNC/outa.casl:47: ST GR2,LEN ; LENにGR2を格納 +../../../../as/FUNC/outa.casl: 47: ST GR2,LEN ; LENにGR2を格納 #00CC #1120 #00CD #009D -../../../../as/FUNC/outa.casl:48: POP GR2 +../../../../as/FUNC/outa.casl: 48: POP GR2 #00CE #7120 -../../../../as/FUNC/outa.casl:49: POP GR1 +../../../../as/FUNC/outa.casl: 49: POP GR1 #00CF #7110 -../../../../as/FUNC/outa.casl:50: RET +../../../../as/FUNC/outa.casl: 50: RET #00D0 #8100 -../../../../as/FUNC/outa.casl:51: END -../../../../as/FUNC/outa.casl:52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する -../../../../as/FUNC/outa.casl:53:;;; 0〜65535の範囲の数値を扱う -../../../../as/FUNC/outa.casl:54:ODIVL START -../../../../as/FUNC/outa.casl:55: PUSH 0,GR1 +../../../../as/FUNC/outa.casl: 51: END +../../../../as/FUNC/outa.casl: 52:;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する +../../../../as/FUNC/outa.casl: 53:;;; 0〜65535の範囲の数値を扱う +../../../../as/FUNC/outa.casl: 54:ODIVL START +../../../../as/FUNC/outa.casl: 55: PUSH 0,GR1 #00D1 #7001 #00D2 #0000 -../../../../as/FUNC/outa.casl:56: PUSH 0,GR2 +../../../../as/FUNC/outa.casl: 56: PUSH 0,GR2 #00D3 #7002 #00D4 #0000 -../../../../as/FUNC/outa.casl:57: PUSH 0,GR4 +../../../../as/FUNC/outa.casl: 57: PUSH 0,GR4 #00D5 #7004 #00D6 #0000 -../../../../as/FUNC/outa.casl:58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ +../../../../as/FUNC/outa.casl: 58: AND GR2,GR2 ; GR2が0の場合、ODFINへジャンプ #00D7 #3422 -../../../../as/FUNC/outa.casl:59: JZE ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 59: JZE ODFIN ; ↓ #00D8 #6300 #00D9 #0106 -../../../../as/FUNC/outa.casl:60: ST GR2,ODY ; ODYにGR2の初期値を保存 +../../../../as/FUNC/outa.casl: 60: ST GR2,ODY ; ODYにGR2の初期値を保存 #00DA #1120 #00DB #010B -../../../../as/FUNC/outa.casl:61: LAD GR0,0 ; GR0の初期化 +../../../../as/FUNC/outa.casl: 61: LAD GR0,0 ; GR0の初期化 #00DC #1200 #00DD #0000 -../../../../as/FUNC/outa.casl:62: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 62: LAD GR3,0 ; GR3の初期化 #00DE #1230 #00DF #0000 -../../../../as/FUNC/outa.casl:63: LAD GR4,1 ; GR4の初期化。対象ビットを表す +../../../../as/FUNC/outa.casl: 63: LAD GR4,1 ; GR4の初期化。対象ビットを表す #00E0 #1240 #00E1 #0001 -../../../../as/FUNC/outa.casl:64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 +../../../../as/FUNC/outa.casl: 64:ODSL CPL GR2,GR1 ; ループ先頭。(GR2 > GR1)の場合、ODLOOPへループ脱出 #00E2 #4521 -../../../../as/FUNC/outa.casl:65: JPL ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 65: JPL ODLOOP ; ↓ #00E3 #6500 #00E4 #00F5 -../../../../as/FUNC/outa.casl:66: SLL GR4,1 ; GR4を1回左シフト +../../../../as/FUNC/outa.casl: 66: SLL GR4,1 ; GR4を1回左シフト #00E5 #5240 #00E6 #0001 -../../../../as/FUNC/outa.casl:67: SLL GR2,1 ; GR2を1回左シフト +../../../../as/FUNC/outa.casl: 67: SLL GR2,1 ; GR2を1回左シフト #00E7 #5220 #00E8 #0001 -../../../../as/FUNC/outa.casl:68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ +../../../../as/FUNC/outa.casl: 68: JOV ODYOV ; オーバーフローの場合は、ODYOVにジャンプ #00E9 #6600 #00EA #00ED -../../../../as/FUNC/outa.casl:69: JUMP ODSL ; ループ終端 +../../../../as/FUNC/outa.casl: 69: JUMP ODSL ; ループ終端 #00EB #6400 #00EC #00E2 -../../../../as/FUNC/outa.casl:70:ODYOV SRL GR2,1 +../../../../as/FUNC/outa.casl: 70:ODYOV SRL GR2,1 #00ED #5320 #00EE #0001 -../../../../as/FUNC/outa.casl:71: LAD GR2,#8000,GR2 +../../../../as/FUNC/outa.casl: 71: LAD GR2,#8000,GR2 #00EF #1222 #00F0 #8000 -../../../../as/FUNC/outa.casl:72: SRL GR4,1 +../../../../as/FUNC/outa.casl: 72: SRL GR4,1 #00F1 #5340 #00F2 #0001 -../../../../as/FUNC/outa.casl:73: JUMP ODLPIN +../../../../as/FUNC/outa.casl: 73: JUMP ODLPIN #00F3 #6400 #00F4 #0102 -../../../../as/FUNC/outa.casl:74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト +../../../../as/FUNC/outa.casl: 74:ODLOOP SRL GR4,1 ; ループ先頭。GR4を1回右シフト #00F5 #5340 #00F6 #0001 -../../../../as/FUNC/outa.casl:75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 75: JZE ODFIN ; (GR4 = 0)の場合、ループ脱出 #00F7 #6300 #00F8 #0106 -../../../../as/FUNC/outa.casl:76: SRL GR2,1 ; GR2を1回右シフト +../../../../as/FUNC/outa.casl: 76: SRL GR2,1 ; GR2を1回右シフト #00F9 #5320 #00FA #0001 -../../../../as/FUNC/outa.casl:77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 77: CPL GR1,ODY ; (GR1 < ODY)の場合、ループ脱出 #00FB #4110 #00FC #010B -../../../../as/FUNC/outa.casl:78: JMI ODFIN ; ↓ +../../../../as/FUNC/outa.casl: 78: JMI ODFIN ; ↓ #00FD #6100 #00FE #0106 -../../../../as/FUNC/outa.casl:79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ +../../../../as/FUNC/outa.casl: 79: CPL GR1,GR2 ; (GR1 < GR2)の場合、ループ先頭へジャンプ #00FF #4512 -../../../../as/FUNC/outa.casl:80: JMI ODLOOP ; ↓ +../../../../as/FUNC/outa.casl: 80: JMI ODLOOP ; ↓ #0100 #6100 #0101 #00F5 -../../../../as/FUNC/outa.casl:81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 +../../../../as/FUNC/outa.casl: 81:ODLPIN SUBL GR1,GR2 ; GR1 <- GR1 - GR2 #0102 #2712 -../../../../as/FUNC/outa.casl:82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 +../../../../as/FUNC/outa.casl: 82: ADDL GR0,GR4 ; GR0 <- GR0 + GR4 #0103 #2604 -../../../../as/FUNC/outa.casl:83: JUMP ODLOOP ; ループ終端 +../../../../as/FUNC/outa.casl: 83: JUMP ODLOOP ; ループ終端 #0104 #6400 #0105 #00F5 -../../../../as/FUNC/outa.casl:84:ODFIN LD GR3,GR1 +../../../../as/FUNC/outa.casl: 84:ODFIN LD GR3,GR1 #0106 #1431 -../../../../as/FUNC/outa.casl:85: POP GR4 +../../../../as/FUNC/outa.casl: 85: POP GR4 #0107 #7140 -../../../../as/FUNC/outa.casl:86: POP GR2 +../../../../as/FUNC/outa.casl: 86: POP GR2 #0108 #7120 -../../../../as/FUNC/outa.casl:87: POP GR1 +../../../../as/FUNC/outa.casl: 87: POP GR1 #0109 #7110 -../../../../as/FUNC/outa.casl:88: RET +../../../../as/FUNC/outa.casl: 88: RET #010A #8100 -../../../../as/FUNC/outa.casl:89:ODY DS 1 +../../../../as/FUNC/outa.casl: 89:ODY DS 1 #010B #0000 -../../../../as/FUNC/outa.casl:90: END -../../../../as/FUNC/outa.casl:91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える -../../../../as/FUNC/outa.casl:92:;; 例: 12345 -> 54321、54321- -> -12345 -../../../../as/FUNC/outa.casl:93:REV START -../../../../as/FUNC/outa.casl:94: RPUSH +../../../../as/FUNC/outa.casl: 90: END +../../../../as/FUNC/outa.casl: 91:;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える +../../../../as/FUNC/outa.casl: 92:;; 例: 12345 -> 54321、54321- -> -12345 +../../../../as/FUNC/outa.casl: 93:REV START +../../../../as/FUNC/outa.casl: 94: RPUSH #010C #7001 #010D #0000 #010E #7002 @@ -603,54 +603,54 @@ Assemble ../../../../as/FUNC/outa.casl (1) #0117 #0000 #0118 #7007 #0119 #0000 -../../../../as/FUNC/outa.casl:95: LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 95: LAD GR3,0 ; GR3の初期化 #011A #1230 #011B #0000 -../../../../as/FUNC/outa.casl:96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 96:RPU CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 #011C #4532 -../../../../as/FUNC/outa.casl:97: JZE RNEXT ; ↓ +../../../../as/FUNC/outa.casl: 97: JZE RNEXT ; ↓ #011D #6300 #011E #0129 -../../../../as/FUNC/outa.casl:98: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 98: LD GR4,GR1 ; GR4にGR1の値をコピー #011F #1441 -../../../../as/FUNC/outa.casl:99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 99: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 #0120 #2643 -../../../../as/FUNC/outa.casl:100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 +../../../../as/FUNC/outa.casl: 100: LD GR5,0,GR4 ; GR5にアドレスGR4の値を格納 #0121 #1054 #0122 #0000 -../../../../as/FUNC/outa.casl:101: PUSH 0,GR5 ; GR5をプッシュ +../../../../as/FUNC/outa.casl: 101: PUSH 0,GR5 ; GR5をプッシュ #0123 #7005 #0124 #0000 -../../../../as/FUNC/outa.casl:102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 102: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 #0125 #1233 #0126 #0001 -../../../../as/FUNC/outa.casl:103: JUMP RPU ; ループ終端 +../../../../as/FUNC/outa.casl: 103: JUMP RPU ; ループ終端 #0127 #6400 #0128 #011C -../../../../as/FUNC/outa.casl:104:RNEXT LAD GR3,0 ; GR3の初期化 +../../../../as/FUNC/outa.casl: 104:RNEXT LAD GR3,0 ; GR3の初期化 #0129 #1230 #012A #0000 -../../../../as/FUNC/outa.casl:105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 +../../../../as/FUNC/outa.casl: 105:RPO CPL GR3,GR2 ; ループ先頭。(GR3 = GR2)の場合、ループ脱出 #012B #4532 -../../../../as/FUNC/outa.casl:106: JZE RFIN ; ↓ +../../../../as/FUNC/outa.casl: 106: JZE RFIN ; ↓ #012C #6300 #012D #0137 -../../../../as/FUNC/outa.casl:107: POP GR5 ; GR5にポップ +../../../../as/FUNC/outa.casl: 107: POP GR5 ; GR5にポップ #012E #7150 -../../../../as/FUNC/outa.casl:108: LD GR4,GR1 ; GR4にGR1の値をコピー +../../../../as/FUNC/outa.casl: 108: LD GR4,GR1 ; GR4にGR1の値をコピー #012F #1441 -../../../../as/FUNC/outa.casl:109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 +../../../../as/FUNC/outa.casl: 109: ADDL GR4,GR3 ; GR4 <- GR4 + GR3 #0130 #2643 -../../../../as/FUNC/outa.casl:110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 +../../../../as/FUNC/outa.casl: 110: ST GR5,0,GR4 ; アドレスGR4にGR5の値を格納 #0131 #1154 #0132 #0000 -../../../../as/FUNC/outa.casl:111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 +../../../../as/FUNC/outa.casl: 111: LAD GR3,1,GR3 ; GR3 <- GR3 + 1 #0133 #1233 #0134 #0001 -../../../../as/FUNC/outa.casl:112: JUMP RPO ; ループ終端 +../../../../as/FUNC/outa.casl: 112: JUMP RPO ; ループ終端 #0135 #6400 #0136 #012B -../../../../as/FUNC/outa.casl:113:RFIN RPOP +../../../../as/FUNC/outa.casl: 113:RFIN RPOP #0137 #7170 #0138 #7160 #0139 #7150 @@ -658,20 +658,20 @@ Assemble ../../../../as/FUNC/outa.casl (1) #013B #7130 #013C #7120 #013D #7110 -../../../../as/FUNC/outa.casl:114: RET +../../../../as/FUNC/outa.casl: 114: RET #013E #8100 -../../../../as/FUNC/outa.casl:115: END -../../../../as/FUNC/outa.casl:116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 -../../../../as/FUNC/outa.casl:117:;; 例: -10 -> 10, -20 -> 20 -../../../../as/FUNC/outa.casl:118:OABS START -../../../../as/FUNC/outa.casl:119: XOR GR1,=#FFFF ; GR1の値を反転 +../../../../as/FUNC/outa.casl: 115: END +../../../../as/FUNC/outa.casl: 116:;; GR1の値を絶対値に変換する。GR1にはマイナスの数値が格納されていると想定。 +../../../../as/FUNC/outa.casl: 117:;; 例: -10 -> 10, -20 -> 20 +../../../../as/FUNC/outa.casl: 118:OABS START +../../../../as/FUNC/outa.casl: 119: XOR GR1,=#FFFF ; GR1の値を反転 #0146 #FFFF #013F #3210 #0140 #0146 -../../../../as/FUNC/outa.casl:120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 +../../../../as/FUNC/outa.casl: 120: LAD GR1,1,GR1 ; GR1 <- GR1 + 1 #0141 #1211 #0142 #0001 -../../../../as/FUNC/outa.casl:121: RET +../../../../as/FUNC/outa.casl: 121: RET #0143 #8100 -../../../../as/FUNC/outa.casl:122: END +../../../../as/FUNC/outa.casl: 122: END -39 diff --git a/test/integration/casl2/opdspc_err/0.txt b/test/integration/casl2/opdspc_err/0.txt index 44cda55..e1a99b5 100644 --- a/test/integration/casl2/opdspc_err/0.txt +++ b/test/integration/casl2/opdspc_err/0.txt @@ -1,8 +1,8 @@ ../../../../casl2 -slatd ../../../../as/ERR/opdspc_err.casl Assemble ../../../../as/ERR/opdspc_err.casl (0) -../../../../as/ERR/opdspc_err.casl:1:MAIN START BEGIN -../../../../as/ERR/opdspc_err.casl:2:BEGIN LD GR1, A +../../../../as/ERR/opdspc_err.casl: 1:MAIN START BEGIN +../../../../as/ERR/opdspc_err.casl: 2:BEGIN LD GR1, A Assemble error - 121: cannot get operand token ../../../../as/ERR/opdspc_err.casl:2: BEGIN LD GR1, A diff --git a/test/integration/casl2/out0/0.txt b/test/integration/casl2/out0/0.txt index 71363cc..47485d5 100644 --- a/test/integration/casl2/out0/0.txt +++ b/test/integration/casl2/out0/0.txt @@ -1,12 +1,12 @@ ../../../../casl2 -slatd ../../../../as/CMD/out0.casl Assemble ../../../../as/CMD/out0.casl (0) -../../../../as/CMD/out0.casl:1:MAIN START -../../../../as/CMD/out0.casl:2: OUT BUF,LEN -../../../../as/CMD/out0.casl:3: RET -../../../../as/CMD/out0.casl:4:BUF DC '0' -../../../../as/CMD/out0.casl:5:LEN DC 1 -../../../../as/CMD/out0.casl:6: END +../../../../as/CMD/out0.casl: 1:MAIN START +../../../../as/CMD/out0.casl: 2: OUT BUF,LEN +../../../../as/CMD/out0.casl: 3: RET +../../../../as/CMD/out0.casl: 4:BUF DC '0' +../../../../as/CMD/out0.casl: 5:LEN DC 1 +../../../../as/CMD/out0.casl: 6: END Label:::: MAIN.BUF ---> #0013 @@ -14,8 +14,8 @@ MAIN ---> #0000 MAIN.LEN ---> #0014 Assemble ../../../../as/CMD/out0.casl (1) -../../../../as/CMD/out0.casl:1:MAIN START -../../../../as/CMD/out0.casl:2: OUT BUF,LEN +../../../../as/CMD/out0.casl: 1:MAIN START +../../../../as/CMD/out0.casl: 2: OUT BUF,LEN #0000 #7001 #0001 #0000 #0002 #7002 @@ -35,13 +35,13 @@ Assemble ../../../../as/CMD/out0.casl (1) #000F #0002 #0010 #7120 #0011 #7110 -../../../../as/CMD/out0.casl:3: RET +../../../../as/CMD/out0.casl: 3: RET #0012 #8100 -../../../../as/CMD/out0.casl:4:BUF DC '0' +../../../../as/CMD/out0.casl: 4:BUF DC '0' #0013 #0030 -../../../../as/CMD/out0.casl:5:LEN DC 1 +../../../../as/CMD/out0.casl: 5:LEN DC 1 #0014 #0001 -../../../../as/CMD/out0.casl:6: END +../../../../as/CMD/out0.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/out1/0.txt b/test/integration/casl2/out1/0.txt index 7d5a04c..5fce11c 100644 --- a/test/integration/casl2/out1/0.txt +++ b/test/integration/casl2/out1/0.txt @@ -8,9 +8,9 @@ OTEST ---> #0000 OTEST.IOBUF ---> #0013 Assemble ../../../../as/CMD/out1.casl (1) -../../../../as/CMD/out1.casl:1:;;; OUTの使用例 -../../../../as/CMD/out1.casl:2:OTEST START -../../../../as/CMD/out1.casl:3: OUT IOBUF,IOLEN +../../../../as/CMD/out1.casl: 1:;;; OUTの使用例 +../../../../as/CMD/out1.casl: 2:OTEST START +../../../../as/CMD/out1.casl: 3: OUT IOBUF,IOLEN #0000 #7001 #0001 #0000 #0002 #7002 @@ -30,9 +30,9 @@ Assemble ../../../../as/CMD/out1.casl (1) #000F #0002 #0010 #7120 #0011 #7110 -../../../../as/CMD/out1.casl:4: RET +../../../../as/CMD/out1.casl: 4: RET #0012 #8100 -../../../../as/CMD/out1.casl:5:IOBUF DC 'aaaa',10,'b','c',10,'as','qwerty','111111' +../../../../as/CMD/out1.casl: 5:IOBUF DC 'aaaa',10,'b','c',10,'as','qwerty','111111' #0013 #0061 #0014 #0061 #0015 #0061 @@ -55,9 +55,9 @@ Assemble ../../../../as/CMD/out1.casl (1) #0026 #0031 #0027 #0031 #0028 #0031 -../../../../as/CMD/out1.casl:6:IOLEN DC 24 +../../../../as/CMD/out1.casl: 6:IOLEN DC 24 #0029 #0018 -../../../../as/CMD/out1.casl:7: END +../../../../as/CMD/out1.casl: 7: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/pushpop/0.txt b/test/integration/casl2/pushpop/0.txt index 88cf37d..0779ad0 100644 --- a/test/integration/casl2/pushpop/0.txt +++ b/test/integration/casl2/pushpop/0.txt @@ -1,48 +1,48 @@ ../../../../casl2 -slatd ../../../../as/CMD/pushpop.casl Assemble ../../../../as/CMD/pushpop.casl (0) -../../../../as/CMD/pushpop.casl:1:PUSHPOP START -../../../../as/CMD/pushpop.casl:2: LAD GR1,1 -../../../../as/CMD/pushpop.casl:3: LAD GR2,2 -../../../../as/CMD/pushpop.casl:4: PUSH 0,GR1 -../../../../as/CMD/pushpop.casl:5: PUSH 0,GR2 -../../../../as/CMD/pushpop.casl:6: LAD GR1,0 -../../../../as/CMD/pushpop.casl:7: LAD GR2,0 -../../../../as/CMD/pushpop.casl:8: POP GR2 -../../../../as/CMD/pushpop.casl:9: POP GR1 -../../../../as/CMD/pushpop.casl:10: RET -../../../../as/CMD/pushpop.casl:11: END +../../../../as/CMD/pushpop.casl: 1:PUSHPOP START +../../../../as/CMD/pushpop.casl: 2: LAD GR1,1 +../../../../as/CMD/pushpop.casl: 3: LAD GR2,2 +../../../../as/CMD/pushpop.casl: 4: PUSH 0,GR1 +../../../../as/CMD/pushpop.casl: 5: PUSH 0,GR2 +../../../../as/CMD/pushpop.casl: 6: LAD GR1,0 +../../../../as/CMD/pushpop.casl: 7: LAD GR2,0 +../../../../as/CMD/pushpop.casl: 8: POP GR2 +../../../../as/CMD/pushpop.casl: 9: POP GR1 +../../../../as/CMD/pushpop.casl: 10: RET +../../../../as/CMD/pushpop.casl: 11: END Label:::: PUSHPOP ---> #0000 Assemble ../../../../as/CMD/pushpop.casl (1) -../../../../as/CMD/pushpop.casl:1:PUSHPOP START -../../../../as/CMD/pushpop.casl:2: LAD GR1,1 +../../../../as/CMD/pushpop.casl: 1:PUSHPOP START +../../../../as/CMD/pushpop.casl: 2: LAD GR1,1 #0000 #1210 #0001 #0001 -../../../../as/CMD/pushpop.casl:3: LAD GR2,2 +../../../../as/CMD/pushpop.casl: 3: LAD GR2,2 #0002 #1220 #0003 #0002 -../../../../as/CMD/pushpop.casl:4: PUSH 0,GR1 +../../../../as/CMD/pushpop.casl: 4: PUSH 0,GR1 #0004 #7001 #0005 #0000 -../../../../as/CMD/pushpop.casl:5: PUSH 0,GR2 +../../../../as/CMD/pushpop.casl: 5: PUSH 0,GR2 #0006 #7002 #0007 #0000 -../../../../as/CMD/pushpop.casl:6: LAD GR1,0 +../../../../as/CMD/pushpop.casl: 6: LAD GR1,0 #0008 #1210 #0009 #0000 -../../../../as/CMD/pushpop.casl:7: LAD GR2,0 +../../../../as/CMD/pushpop.casl: 7: LAD GR2,0 #000A #1220 #000B #0000 -../../../../as/CMD/pushpop.casl:8: POP GR2 +../../../../as/CMD/pushpop.casl: 8: POP GR2 #000C #7120 -../../../../as/CMD/pushpop.casl:9: POP GR1 +../../../../as/CMD/pushpop.casl: 9: POP GR1 #000D #7110 -../../../../as/CMD/pushpop.casl:10: RET +../../../../as/CMD/pushpop.casl: 10: RET #000E #8100 -../../../../as/CMD/pushpop.casl:11: END +../../../../as/CMD/pushpop.casl: 11: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/sla2/0.txt b/test/integration/casl2/sla2/0.txt index 0aea41c..9faf742 100644 --- a/test/integration/casl2/sla2/0.txt +++ b/test/integration/casl2/sla2/0.txt @@ -1,28 +1,28 @@ ../../../../casl2 -slatd ../../../../as/CMD/sla2.casl Assemble ../../../../as/CMD/sla2.casl (0) -../../../../as/CMD/sla2.casl:1:SLA2 START BEGIN -../../../../as/CMD/sla2.casl:2:BEGIN LAD GR1,3 -../../../../as/CMD/sla2.casl:3: SLA GR1,2 -../../../../as/CMD/sla2.casl:4: RET -../../../../as/CMD/sla2.casl:5: END -../../../../as/CMD/sla2.casl:6: +../../../../as/CMD/sla2.casl: 1:SLA2 START BEGIN +../../../../as/CMD/sla2.casl: 2:BEGIN LAD GR1,3 +../../../../as/CMD/sla2.casl: 3: SLA GR1,2 +../../../../as/CMD/sla2.casl: 4: RET +../../../../as/CMD/sla2.casl: 5: END +../../../../as/CMD/sla2.casl: 6: Label:::: SLA2 ---> #0000 SLA2.BEGIN ---> #0000 Assemble ../../../../as/CMD/sla2.casl (1) -../../../../as/CMD/sla2.casl:1:SLA2 START BEGIN -../../../../as/CMD/sla2.casl:2:BEGIN LAD GR1,3 +../../../../as/CMD/sla2.casl: 1:SLA2 START BEGIN +../../../../as/CMD/sla2.casl: 2:BEGIN LAD GR1,3 #0000 #1210 #0001 #0003 -../../../../as/CMD/sla2.casl:3: SLA GR1,2 +../../../../as/CMD/sla2.casl: 3: SLA GR1,2 #0002 #5010 #0003 #0002 -../../../../as/CMD/sla2.casl:4: RET +../../../../as/CMD/sla2.casl: 4: RET #0004 #8100 -../../../../as/CMD/sla2.casl:5: END -../../../../as/CMD/sla2.casl:6: +../../../../as/CMD/sla2.casl: 5: END +../../../../as/CMD/sla2.casl: 6: Executing machine codes #0000: Register:::: #0000: GR0: 0 = #0000 = 0000000000000000 diff --git a/test/integration/casl2/sra2/0.txt b/test/integration/casl2/sra2/0.txt index 6fb1361..8c97668 100644 --- a/test/integration/casl2/sra2/0.txt +++ b/test/integration/casl2/sra2/0.txt @@ -1,27 +1,27 @@ ../../../../casl2 -slatd ../../../../as/CMD/sra2.casl Assemble ../../../../as/CMD/sra2.casl (0) -../../../../as/CMD/sra2.casl:1:SRA2 START BEGIN -../../../../as/CMD/sra2.casl:2:BEGIN LAD GR4,124 -../../../../as/CMD/sra2.casl:3: SRA GR4,2 -../../../../as/CMD/sra2.casl:4: RET -../../../../as/CMD/sra2.casl:5: END +../../../../as/CMD/sra2.casl: 1:SRA2 START BEGIN +../../../../as/CMD/sra2.casl: 2:BEGIN LAD GR4,124 +../../../../as/CMD/sra2.casl: 3: SRA GR4,2 +../../../../as/CMD/sra2.casl: 4: RET +../../../../as/CMD/sra2.casl: 5: END Label:::: SRA2.BEGIN ---> #0000 SRA2 ---> #0000 Assemble ../../../../as/CMD/sra2.casl (1) -../../../../as/CMD/sra2.casl:1:SRA2 START BEGIN -../../../../as/CMD/sra2.casl:2:BEGIN LAD GR4,124 +../../../../as/CMD/sra2.casl: 1:SRA2 START BEGIN +../../../../as/CMD/sra2.casl: 2:BEGIN LAD GR4,124 #0000 #1240 #0001 #007C -../../../../as/CMD/sra2.casl:3: SRA GR4,2 +../../../../as/CMD/sra2.casl: 3: SRA GR4,2 #0002 #5140 #0003 #0002 -../../../../as/CMD/sra2.casl:4: RET +../../../../as/CMD/sra2.casl: 4: RET #0004 #8100 -../../../../as/CMD/sra2.casl:5: END +../../../../as/CMD/sra2.casl: 5: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/sra3/0.txt b/test/integration/casl2/sra3/0.txt index 04b1258..5f9abbc 100644 --- a/test/integration/casl2/sra3/0.txt +++ b/test/integration/casl2/sra3/0.txt @@ -1,12 +1,12 @@ ../../../../casl2 -slatd ../../../../as/CMD/sra3.casl Assemble ../../../../as/CMD/sra3.casl (0) -../../../../as/CMD/sra3.casl:1:SLA2 START BEGIN -../../../../as/CMD/sra3.casl:2:BEGIN LD GR0,X -../../../../as/CMD/sra3.casl:3: SRA GR0,2 -../../../../as/CMD/sra3.casl:4: RET -../../../../as/CMD/sra3.casl:5:X DC #7A31 -../../../../as/CMD/sra3.casl:6: END +../../../../as/CMD/sra3.casl: 1:SLA2 START BEGIN +../../../../as/CMD/sra3.casl: 2:BEGIN LD GR0,X +../../../../as/CMD/sra3.casl: 3: SRA GR0,2 +../../../../as/CMD/sra3.casl: 4: RET +../../../../as/CMD/sra3.casl: 5:X DC #7A31 +../../../../as/CMD/sra3.casl: 6: END Label:::: SLA2 ---> #0000 @@ -14,18 +14,18 @@ SLA2.X ---> #0005 SLA2.BEGIN ---> #0000 Assemble ../../../../as/CMD/sra3.casl (1) -../../../../as/CMD/sra3.casl:1:SLA2 START BEGIN -../../../../as/CMD/sra3.casl:2:BEGIN LD GR0,X +../../../../as/CMD/sra3.casl: 1:SLA2 START BEGIN +../../../../as/CMD/sra3.casl: 2:BEGIN LD GR0,X #0000 #1000 #0001 #0005 -../../../../as/CMD/sra3.casl:3: SRA GR0,2 +../../../../as/CMD/sra3.casl: 3: SRA GR0,2 #0002 #5100 #0003 #0002 -../../../../as/CMD/sra3.casl:4: RET +../../../../as/CMD/sra3.casl: 4: RET #0004 #8100 -../../../../as/CMD/sra3.casl:5:X DC #7A31 +../../../../as/CMD/sra3.casl: 5:X DC #7A31 #0005 #7A31 -../../../../as/CMD/sra3.casl:6: END +../../../../as/CMD/sra3.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/sra4/0.txt b/test/integration/casl2/sra4/0.txt index b2f7831..b350a80 100644 --- a/test/integration/casl2/sra4/0.txt +++ b/test/integration/casl2/sra4/0.txt @@ -1,14 +1,14 @@ ../../../../casl2 -slatd ../../../../as/CMD/sra4.casl Assemble ../../../../as/CMD/sra4.casl (0) -../../../../as/CMD/sra4.casl:1:SRA4 START BEGIN -../../../../as/CMD/sra4.casl:2:BEGIN LD GR0,X -../../../../as/CMD/sra4.casl:3: LD GR1,Y -../../../../as/CMD/sra4.casl:4: SRA GR0,1,GR1 -../../../../as/CMD/sra4.casl:5: RET -../../../../as/CMD/sra4.casl:6:X DC #A238 -../../../../as/CMD/sra4.casl:7:Y DC 2 -../../../../as/CMD/sra4.casl:8: END +../../../../as/CMD/sra4.casl: 1:SRA4 START BEGIN +../../../../as/CMD/sra4.casl: 2:BEGIN LD GR0,X +../../../../as/CMD/sra4.casl: 3: LD GR1,Y +../../../../as/CMD/sra4.casl: 4: SRA GR0,1,GR1 +../../../../as/CMD/sra4.casl: 5: RET +../../../../as/CMD/sra4.casl: 6:X DC #A238 +../../../../as/CMD/sra4.casl: 7:Y DC 2 +../../../../as/CMD/sra4.casl: 8: END Label:::: SRA4.X ---> #0007 @@ -17,23 +17,23 @@ SRA4.BEGIN ---> #0000 SRA4 ---> #0000 Assemble ../../../../as/CMD/sra4.casl (1) -../../../../as/CMD/sra4.casl:1:SRA4 START BEGIN -../../../../as/CMD/sra4.casl:2:BEGIN LD GR0,X +../../../../as/CMD/sra4.casl: 1:SRA4 START BEGIN +../../../../as/CMD/sra4.casl: 2:BEGIN LD GR0,X #0000 #1000 #0001 #0007 -../../../../as/CMD/sra4.casl:3: LD GR1,Y +../../../../as/CMD/sra4.casl: 3: LD GR1,Y #0002 #1010 #0003 #0008 -../../../../as/CMD/sra4.casl:4: SRA GR0,1,GR1 +../../../../as/CMD/sra4.casl: 4: SRA GR0,1,GR1 #0004 #5101 #0005 #0001 -../../../../as/CMD/sra4.casl:5: RET +../../../../as/CMD/sra4.casl: 5: RET #0006 #8100 -../../../../as/CMD/sra4.casl:6:X DC #A238 +../../../../as/CMD/sra4.casl: 6:X DC #A238 #0007 #A238 -../../../../as/CMD/sra4.casl:7:Y DC 2 +../../../../as/CMD/sra4.casl: 7:Y DC 2 #0008 #0002 -../../../../as/CMD/sra4.casl:8: END +../../../../as/CMD/sra4.casl: 8: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/st0/0.txt b/test/integration/casl2/st0/0.txt index 97d08e5..28f4e1e 100644 --- a/test/integration/casl2/st0/0.txt +++ b/test/integration/casl2/st0/0.txt @@ -1,30 +1,30 @@ ../../../../casl2 -slatd ../../../../as/CMD/st0.casl Assemble ../../../../as/CMD/st0.casl (0) -../../../../as/CMD/st0.casl:1:MAIN START -../../../../as/CMD/st0.casl:2: LAD GR0,286 -../../../../as/CMD/st0.casl:3: ST GR0,A -../../../../as/CMD/st0.casl:4: RET -../../../../as/CMD/st0.casl:5:A DS 1 -../../../../as/CMD/st0.casl:6: END +../../../../as/CMD/st0.casl: 1:MAIN START +../../../../as/CMD/st0.casl: 2: LAD GR0,286 +../../../../as/CMD/st0.casl: 3: ST GR0,A +../../../../as/CMD/st0.casl: 4: RET +../../../../as/CMD/st0.casl: 5:A DS 1 +../../../../as/CMD/st0.casl: 6: END Label:::: MAIN.A ---> #0005 MAIN ---> #0000 Assemble ../../../../as/CMD/st0.casl (1) -../../../../as/CMD/st0.casl:1:MAIN START -../../../../as/CMD/st0.casl:2: LAD GR0,286 +../../../../as/CMD/st0.casl: 1:MAIN START +../../../../as/CMD/st0.casl: 2: LAD GR0,286 #0000 #1200 #0001 #011E -../../../../as/CMD/st0.casl:3: ST GR0,A +../../../../as/CMD/st0.casl: 3: ST GR0,A #0002 #1100 #0003 #0005 -../../../../as/CMD/st0.casl:4: RET +../../../../as/CMD/st0.casl: 4: RET #0004 #8100 -../../../../as/CMD/st0.casl:5:A DS 1 +../../../../as/CMD/st0.casl: 5:A DS 1 #0005 #0000 -../../../../as/CMD/st0.casl:6: END +../../../../as/CMD/st0.casl: 6: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/st1/0.txt b/test/integration/casl2/st1/0.txt index a247d1b..645c976 100644 --- a/test/integration/casl2/st1/0.txt +++ b/test/integration/casl2/st1/0.txt @@ -1,37 +1,37 @@ ../../../../casl2 -slatd ../../../../as/CMD/st1.casl Assemble ../../../../as/CMD/st1.casl (0) -../../../../as/CMD/st1.casl:1:MAIN START -../../../../as/CMD/st1.casl:2: LAD GR0,286 -../../../../as/CMD/st1.casl:3: LAD GR1,3 -../../../../as/CMD/st1.casl:4: ST GR0,A,GR1 -../../../../as/CMD/st1.casl:5: RET -../../../../as/CMD/st1.casl:6:A DS 4 -../../../../as/CMD/st1.casl:7: END +../../../../as/CMD/st1.casl: 1:MAIN START +../../../../as/CMD/st1.casl: 2: LAD GR0,286 +../../../../as/CMD/st1.casl: 3: LAD GR1,3 +../../../../as/CMD/st1.casl: 4: ST GR0,A,GR1 +../../../../as/CMD/st1.casl: 5: RET +../../../../as/CMD/st1.casl: 6:A DS 4 +../../../../as/CMD/st1.casl: 7: END Label:::: MAIN.A ---> #0007 MAIN ---> #0000 Assemble ../../../../as/CMD/st1.casl (1) -../../../../as/CMD/st1.casl:1:MAIN START -../../../../as/CMD/st1.casl:2: LAD GR0,286 +../../../../as/CMD/st1.casl: 1:MAIN START +../../../../as/CMD/st1.casl: 2: LAD GR0,286 #0000 #1200 #0001 #011E -../../../../as/CMD/st1.casl:3: LAD GR1,3 +../../../../as/CMD/st1.casl: 3: LAD GR1,3 #0002 #1210 #0003 #0003 -../../../../as/CMD/st1.casl:4: ST GR0,A,GR1 +../../../../as/CMD/st1.casl: 4: ST GR0,A,GR1 #0004 #1101 #0005 #0007 -../../../../as/CMD/st1.casl:5: RET +../../../../as/CMD/st1.casl: 5: RET #0006 #8100 -../../../../as/CMD/st1.casl:6:A DS 4 +../../../../as/CMD/st1.casl: 6:A DS 4 #0007 #0000 #0008 #0000 #0009 #0000 #000A #0000 -../../../../as/CMD/st1.casl:7: END +../../../../as/CMD/st1.casl: 7: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/sum_10_s/0.txt b/test/integration/casl2/sum_10_s/0.txt index 533d3c4..4288cd2 100644 --- a/test/integration/casl2/sum_10_s/0.txt +++ b/test/integration/casl2/sum_10_s/0.txt @@ -1,22 +1,22 @@ ../../../../casl2 -s ../../../../as/FUNC/sum_10.casl Assemble ../../../../as/FUNC/sum_10.casl (0) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 -../../../../as/FUNC/sum_10.casl:13: RET -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 13: RET +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 17: END Assemble ../../../../as/FUNC/sum_10.casl (1) diff --git a/test/integration/casl2/sum_10_sL/0.txt b/test/integration/casl2/sum_10_sL/0.txt index 0aff92e..71cdf34 100644 --- a/test/integration/casl2/sum_10_sL/0.txt +++ b/test/integration/casl2/sum_10_sL/0.txt @@ -1,23 +1,23 @@ ../../../../casl2 -sL ../../../../as/FUNC/sum_10.casl Assemble ../../../../as/FUNC/sum_10.casl (0) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 -../../../../as/FUNC/sum_10.casl:13: RET -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 13: RET +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 17: END Label:::: MAIN.FST ---> #0011 diff --git a/test/integration/casl2/sum_10_slA/0.txt b/test/integration/casl2/sum_10_slA/0.txt index 3810dbc..8ccbe24 100644 --- a/test/integration/casl2/sum_10_slA/0.txt +++ b/test/integration/casl2/sum_10_slA/0.txt @@ -1,23 +1,23 @@ ../../../../casl2 -slA ../../../../as/FUNC/sum_10.casl Assemble ../../../../as/FUNC/sum_10.casl (0) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 -../../../../as/FUNC/sum_10.casl:13: RET -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 13: RET +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 17: END Label:::: MAIN.FST ---> #0011 @@ -28,40 +28,40 @@ MAIN.STEP ---> #0013 MAIN.FIN ---> #000F Assemble ../../../../as/FUNC/sum_10.casl (1) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 #0000 #7001 #0001 #0000 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 #0002 #1200 #0003 #0000 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 #0004 #1010 #0005 #0011 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 #0006 #2601 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 #0007 #2210 #0008 #0013 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 #0009 #4110 #000A #0012 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ #000B #6500 #000C #000F -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 #000D #6400 #000E #0006 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 #000F #7110 -../../../../as/FUNC/sum_10.casl:13: RET +../../../../as/FUNC/sum_10.casl: 13: RET #0010 #8100 -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 #0011 #0001 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 #0012 #000A -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 #0013 #0001 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 17: END diff --git a/test/integration/casl2/sum_10_slaO/0.txt b/test/integration/casl2/sum_10_slaO/0.txt index 5efe751..3071c58 100644 --- a/test/integration/casl2/sum_10_slaO/0.txt +++ b/test/integration/casl2/sum_10_slaO/0.txt @@ -1,23 +1,23 @@ ../../../../casl2 -sla -O ../../../../as/FUNC/sum_10.casl Assemble ../../../../as/FUNC/sum_10.casl (0) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 -../../../../as/FUNC/sum_10.casl:13: RET -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 13: RET +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 17: END Label:::: MAIN.FST ---> #0011 @@ -28,43 +28,43 @@ MAIN.STEP ---> #0013 MAIN.FIN ---> #000F Assemble ../../../../as/FUNC/sum_10.casl (1) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 #0000 #7001 #0001 #0000 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 #0002 #1200 #0003 #0000 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 #0004 #1010 #0005 #0011 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 #0006 #2601 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 #0007 #2210 #0008 #0013 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 #0009 #4110 #000A #0012 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ #000B #6500 #000C #000F -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 #000D #6400 #000E #0006 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 #000F #7110 -../../../../as/FUNC/sum_10.casl:13: RET +../../../../as/FUNC/sum_10.casl: 13: RET #0010 #8100 -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 #0011 #0001 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 #0012 #000A -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 #0013 #0001 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 17: END od -t x2 a.o 0000000 7001 0000 1200 0000 1010 0011 2601 2210 diff --git a/test/integration/casl2/sum_10_slaOn/0.txt b/test/integration/casl2/sum_10_slaOn/0.txt index 114acaa..e510097 100644 --- a/test/integration/casl2/sum_10_slaOn/0.txt +++ b/test/integration/casl2/sum_10_slaOn/0.txt @@ -1,23 +1,23 @@ ../../../../casl2 -sla -Osum_10.o ../../../../as/FUNC/sum_10.casl Assemble ../../../../as/FUNC/sum_10.casl (0) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 -../../../../as/FUNC/sum_10.casl:13: RET -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 13: RET +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 17: END Label:::: MAIN.FST ---> #0011 @@ -28,43 +28,43 @@ MAIN.STEP ---> #0013 MAIN.FIN ---> #000F Assemble ../../../../as/FUNC/sum_10.casl (1) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 #0000 #7001 #0001 #0000 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 #0002 #1200 #0003 #0000 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 #0004 #1010 #0005 #0011 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 #0006 #2601 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 #0007 #2210 #0008 #0013 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 #0009 #4110 #000A #0012 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ #000B #6500 #000C #000F -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 #000D #6400 #000E #0006 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 #000F #7110 -../../../../as/FUNC/sum_10.casl:13: RET +../../../../as/FUNC/sum_10.casl: 13: RET #0010 #8100 -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 #0011 #0001 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 #0012 #000A -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 #0013 #0001 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 17: END od -t x2 sum_10.o 0000000 7001 0000 1200 0000 1010 0011 2601 2210 diff --git a/test/integration/casl2/sum_10_slaoT/0.txt b/test/integration/casl2/sum_10_slaoT/0.txt index e4a2d7b..eb1a745 100644 --- a/test/integration/casl2/sum_10_slaoT/0.txt +++ b/test/integration/casl2/sum_10_slaoT/0.txt @@ -1,23 +1,23 @@ ../../../../casl2 -slaTo ../../../../as/FUNC/sum_10.casl Assemble ../../../../as/FUNC/sum_10.casl (0) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 -../../../../as/FUNC/sum_10.casl:13: RET -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 13: RET +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 17: END Label:::: MAIN.FST ---> #0011 @@ -28,43 +28,43 @@ MAIN.STEP ---> #0013 MAIN.FIN ---> #000F Assemble ../../../../as/FUNC/sum_10.casl (1) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 #0000 #7001 #0001 #0000 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 #0002 #1200 #0003 #0000 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 #0004 #1010 #0005 #0011 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 #0006 #2601 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 #0007 #2210 #0008 #0013 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 #0009 #4110 #000A #0012 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ #000B #6500 #000C #000F -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 #000D #6400 #000E #0006 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 #000F #7110 -../../../../as/FUNC/sum_10.casl:13: RET +../../../../as/FUNC/sum_10.casl: 13: RET #0010 #8100 -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 #0011 #0001 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 #0012 #000A -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 #0013 #0001 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 17: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/sum_10_slaot/0.txt b/test/integration/casl2/sum_10_slaot/0.txt index d808ec4..035df6e 100644 --- a/test/integration/casl2/sum_10_slaot/0.txt +++ b/test/integration/casl2/sum_10_slaot/0.txt @@ -1,23 +1,23 @@ ../../../../casl2 -slat -o ../../../../as/FUNC/sum_10.casl Assemble ../../../../as/FUNC/sum_10.casl (0) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 -../../../../as/FUNC/sum_10.casl:13: RET -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 13: RET +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 17: END Label:::: MAIN.FST ---> #0011 @@ -28,43 +28,43 @@ MAIN.STEP ---> #0013 MAIN.FIN ---> #000F Assemble ../../../../as/FUNC/sum_10.casl (1) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 #0000 #7001 #0001 #0000 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 #0002 #1200 #0003 #0000 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 #0004 #1010 #0005 #0011 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 #0006 #2601 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 #0007 #2210 #0008 #0013 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 #0009 #4110 #000A #0012 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ #000B #6500 #000C #000F -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 #000D #6400 #000E #0006 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 #000F #7110 -../../../../as/FUNC/sum_10.casl:13: RET +../../../../as/FUNC/sum_10.casl: 13: RET #0010 #8100 -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 #0011 #0001 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 #0012 #000A -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 #0013 #0001 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 17: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/sum_10_slaotd/0.txt b/test/integration/casl2/sum_10_slaotd/0.txt index 0e962f5..6838362 100644 --- a/test/integration/casl2/sum_10_slaotd/0.txt +++ b/test/integration/casl2/sum_10_slaotd/0.txt @@ -1,23 +1,23 @@ ../../../../casl2 -slatdo ../../../../as/FUNC/sum_10.casl Assemble ../../../../as/FUNC/sum_10.casl (0) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 -../../../../as/FUNC/sum_10.casl:13: RET -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 13: RET +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 17: END Label:::: MAIN.FST ---> #0011 @@ -28,43 +28,43 @@ MAIN.STEP ---> #0013 MAIN.FIN ---> #000F Assemble ../../../../as/FUNC/sum_10.casl (1) -../../../../as/FUNC/sum_10.casl:1:;;; sum_10.casl -../../../../as/FUNC/sum_10.casl:2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 -../../../../as/FUNC/sum_10.casl:3:MAIN START -../../../../as/FUNC/sum_10.casl:4: PUSH 0,GR1 +../../../../as/FUNC/sum_10.casl: 1:;;; sum_10.casl +../../../../as/FUNC/sum_10.casl: 2:;;; 出力 GR0: 1から10までの整数をすべて加算した値 +../../../../as/FUNC/sum_10.casl: 3:MAIN START +../../../../as/FUNC/sum_10.casl: 4: PUSH 0,GR1 #0000 #7001 #0001 #0000 -../../../../as/FUNC/sum_10.casl:5: LAD GR0,0 ; GR0を初期化 +../../../../as/FUNC/sum_10.casl: 5: LAD GR0,0 ; GR0を初期化 #0002 #1200 #0003 #0000 -../../../../as/FUNC/sum_10.casl:6: LD GR1,FST ; GR1に初項を転送 +../../../../as/FUNC/sum_10.casl: 6: LD GR1,FST ; GR1に初項を転送 #0004 #1010 #0005 #0011 -../../../../as/FUNC/sum_10.casl:7:LOOP ADDL GR0,GR1 ; ループ先頭 +../../../../as/FUNC/sum_10.casl: 7:LOOP ADDL GR0,GR1 ; ループ先頭 #0006 #2601 -../../../../as/FUNC/sum_10.casl:8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 +../../../../as/FUNC/sum_10.casl: 8: ADDL GR1,STEP ; GR1 <- GR1 + 公差 #0007 #2210 #0008 #0013 -../../../../as/FUNC/sum_10.casl:9: CPL GR1,LST ; GR1が末項より大きい場合は終了 +../../../../as/FUNC/sum_10.casl: 9: CPL GR1,LST ; GR1が末項より大きい場合は終了 #0009 #4110 #000A #0012 -../../../../as/FUNC/sum_10.casl:10: JPL FIN ; ↓ +../../../../as/FUNC/sum_10.casl: 10: JPL FIN ; ↓ #000B #6500 #000C #000F -../../../../as/FUNC/sum_10.casl:11: JUMP LOOP ; ループ終端 +../../../../as/FUNC/sum_10.casl: 11: JUMP LOOP ; ループ終端 #000D #6400 #000E #0006 -../../../../as/FUNC/sum_10.casl:12:FIN POP GR1 +../../../../as/FUNC/sum_10.casl: 12:FIN POP GR1 #000F #7110 -../../../../as/FUNC/sum_10.casl:13: RET +../../../../as/FUNC/sum_10.casl: 13: RET #0010 #8100 -../../../../as/FUNC/sum_10.casl:14:FST DC 1 ; 初項 +../../../../as/FUNC/sum_10.casl: 14:FST DC 1 ; 初項 #0011 #0001 -../../../../as/FUNC/sum_10.casl:15:LST DC 10 ; 末項 +../../../../as/FUNC/sum_10.casl: 15:LST DC 10 ; 末項 #0012 #000A -../../../../as/FUNC/sum_10.casl:16:STEP DC 1 ; 公差 +../../../../as/FUNC/sum_10.casl: 16:STEP DC 1 ; 公差 #0013 #0001 -../../../../as/FUNC/sum_10.casl:17: END +../../../../as/FUNC/sum_10.casl: 17: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/svc2/0.txt b/test/integration/casl2/svc2/0.txt index 94811fd..fc6a7a4 100644 --- a/test/integration/casl2/svc2/0.txt +++ b/test/integration/casl2/svc2/0.txt @@ -1,18 +1,18 @@ ../../../../casl2 -slatd ../../../../as/CMD/svc2.casl Assemble ../../../../as/CMD/svc2.casl (0) -../../../../as/CMD/svc2.casl:1:;;; 「SVC 2」で数値を表示 -../../../../as/CMD/svc2.casl:2:;;; casl2 svctest.casl div10.casl -../../../../as/CMD/svc2.casl:3:MAIN START -../../../../as/CMD/svc2.casl:4:BEGIN LAD GR1,D -../../../../as/CMD/svc2.casl:5: LAD GR2,A -../../../../as/CMD/svc2.casl:6: SVC 2 -../../../../as/CMD/svc2.casl:7: LAD GR1,=#A -../../../../as/CMD/svc2.casl:8: SVC 2 -../../../../as/CMD/svc2.casl:9: RET -../../../../as/CMD/svc2.casl:10:D DC '0' -../../../../as/CMD/svc2.casl:11:A DS 1 -../../../../as/CMD/svc2.casl:12: END +../../../../as/CMD/svc2.casl: 1:;;; 「SVC 2」で数値を表示 +../../../../as/CMD/svc2.casl: 2:;;; casl2 svctest.casl div10.casl +../../../../as/CMD/svc2.casl: 3:MAIN START +../../../../as/CMD/svc2.casl: 4:BEGIN LAD GR1,D +../../../../as/CMD/svc2.casl: 5: LAD GR2,A +../../../../as/CMD/svc2.casl: 6: SVC 2 +../../../../as/CMD/svc2.casl: 7: LAD GR1,=#A +../../../../as/CMD/svc2.casl: 8: SVC 2 +../../../../as/CMD/svc2.casl: 9: RET +../../../../as/CMD/svc2.casl: 10:D DC '0' +../../../../as/CMD/svc2.casl: 11:A DS 1 +../../../../as/CMD/svc2.casl: 12: END Label:::: MAIN.A ---> #000C @@ -21,32 +21,32 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/svc2.casl (1) -../../../../as/CMD/svc2.casl:1:;;; 「SVC 2」で数値を表示 -../../../../as/CMD/svc2.casl:2:;;; casl2 svctest.casl div10.casl -../../../../as/CMD/svc2.casl:3:MAIN START -../../../../as/CMD/svc2.casl:4:BEGIN LAD GR1,D +../../../../as/CMD/svc2.casl: 1:;;; 「SVC 2」で数値を表示 +../../../../as/CMD/svc2.casl: 2:;;; casl2 svctest.casl div10.casl +../../../../as/CMD/svc2.casl: 3:MAIN START +../../../../as/CMD/svc2.casl: 4:BEGIN LAD GR1,D #0000 #1210 #0001 #000B -../../../../as/CMD/svc2.casl:5: LAD GR2,A +../../../../as/CMD/svc2.casl: 5: LAD GR2,A #0002 #1220 #0003 #000C -../../../../as/CMD/svc2.casl:6: SVC 2 +../../../../as/CMD/svc2.casl: 6: SVC 2 #0004 #F000 #0005 #0002 -../../../../as/CMD/svc2.casl:7: LAD GR1,=#A +../../../../as/CMD/svc2.casl: 7: LAD GR1,=#A #000D #000A #0006 #1210 #0007 #000D -../../../../as/CMD/svc2.casl:8: SVC 2 +../../../../as/CMD/svc2.casl: 8: SVC 2 #0008 #F000 #0009 #0002 -../../../../as/CMD/svc2.casl:9: RET +../../../../as/CMD/svc2.casl: 9: RET #000A #8100 -../../../../as/CMD/svc2.casl:10:D DC '0' +../../../../as/CMD/svc2.casl: 10:D DC '0' #000B #0030 -../../../../as/CMD/svc2.casl:11:A DS 1 +../../../../as/CMD/svc2.casl: 11:A DS 1 #000C #0000 -../../../../as/CMD/svc2.casl:12: END +../../../../as/CMD/svc2.casl: 12: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/svc2_out/0.txt b/test/integration/casl2/svc2_out/0.txt index 1ed2b01..3957e4f 100644 --- a/test/integration/casl2/svc2_out/0.txt +++ b/test/integration/casl2/svc2_out/0.txt @@ -1,22 +1,22 @@ ../../../../casl2 -slatd ../../../../as/CMD/svc2_out.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 +../../../../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 Label:::: OTEST ---> #0000 @@ -24,47 +24,47 @@ OTEST.OBUF ---> #0013 OTEST.LEN ---> #0017 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 +../../../../as/CMD/svc2_out.casl: 1:;;; 「OUT」と同等のプログラム +../../../../as/CMD/svc2_out.casl: 2:OTEST START +../../../../as/CMD/svc2_out.casl: 3: PUSH 0,GR1 #0000 #7001 #0001 #0000 -../../../../as/CMD/svc2_out.casl:4: PUSH 0,GR2 +../../../../as/CMD/svc2_out.casl: 4: PUSH 0,GR2 #0002 #7002 #0003 #0000 -../../../../as/CMD/svc2_out.casl:5: LAD GR1,OBUF +../../../../as/CMD/svc2_out.casl: 5: LAD GR1,OBUF #0004 #1210 #0005 #0013 -../../../../as/CMD/svc2_out.casl:6: LD GR2,LEN +../../../../as/CMD/svc2_out.casl: 6: LD GR2,LEN #0006 #1020 #0007 #0017 -../../../../as/CMD/svc2_out.casl:7: SVC 2 +../../../../as/CMD/svc2_out.casl: 7: SVC 2 #0008 #F000 #0009 #0002 -../../../../as/CMD/svc2_out.casl:8: LAD GR1,=#A +../../../../as/CMD/svc2_out.casl: 8: LAD GR1,=#A #0018 #000A #000A #1210 #000B #0018 -../../../../as/CMD/svc2_out.casl:9: LAD GR2,1 +../../../../as/CMD/svc2_out.casl: 9: LAD GR2,1 #000C #1220 #000D #0001 -../../../../as/CMD/svc2_out.casl:10: SVC 2 +../../../../as/CMD/svc2_out.casl: 10: SVC 2 #000E #F000 #000F #0002 -../../../../as/CMD/svc2_out.casl:11: POP GR2 +../../../../as/CMD/svc2_out.casl: 11: POP GR2 #0010 #7120 -../../../../as/CMD/svc2_out.casl:12: POP GR1 +../../../../as/CMD/svc2_out.casl: 12: POP GR1 #0011 #7110 -../../../../as/CMD/svc2_out.casl:13: RET +../../../../as/CMD/svc2_out.casl: 13: RET #0012 #8100 -../../../../as/CMD/svc2_out.casl:14:OBUF DC 'abcd' +../../../../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 +../../../../as/CMD/svc2_out.casl: 15:LEN DC 4 #0017 #0004 -../../../../as/CMD/svc2_out.casl:16: END +../../../../as/CMD/svc2_out.casl: 16: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/xor0/0.txt b/test/integration/casl2/xor0/0.txt index bf8001f..6e81f94 100644 --- a/test/integration/casl2/xor0/0.txt +++ b/test/integration/casl2/xor0/0.txt @@ -1,14 +1,14 @@ ../../../../casl2 -slatd ../../../../as/CMD/xor0.casl Assemble ../../../../as/CMD/xor0.casl (0) -../../../../as/CMD/xor0.casl:1:MAIN START -../../../../as/CMD/xor0.casl:2:BEGIN LD GR1,A -../../../../as/CMD/xor0.casl:3: LD GR2,A -../../../../as/CMD/xor0.casl:4: XOR GR1,GR2 -../../../../as/CMD/xor0.casl:5: RET -../../../../as/CMD/xor0.casl:6:A DC #8001 -../../../../as/CMD/xor0.casl:7:B DC #3521 -../../../../as/CMD/xor0.casl:8: END +../../../../as/CMD/xor0.casl: 1:MAIN START +../../../../as/CMD/xor0.casl: 2:BEGIN LD GR1,A +../../../../as/CMD/xor0.casl: 3: LD GR2,A +../../../../as/CMD/xor0.casl: 4: XOR GR1,GR2 +../../../../as/CMD/xor0.casl: 5: RET +../../../../as/CMD/xor0.casl: 6:A DC #8001 +../../../../as/CMD/xor0.casl: 7:B DC #3521 +../../../../as/CMD/xor0.casl: 8: END Label:::: MAIN.A ---> #0006 @@ -17,22 +17,22 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/xor0.casl (1) -../../../../as/CMD/xor0.casl:1:MAIN START -../../../../as/CMD/xor0.casl:2:BEGIN LD GR1,A +../../../../as/CMD/xor0.casl: 1:MAIN START +../../../../as/CMD/xor0.casl: 2:BEGIN LD GR1,A #0000 #1010 #0001 #0006 -../../../../as/CMD/xor0.casl:3: LD GR2,A +../../../../as/CMD/xor0.casl: 3: LD GR2,A #0002 #1020 #0003 #0006 -../../../../as/CMD/xor0.casl:4: XOR GR1,GR2 +../../../../as/CMD/xor0.casl: 4: XOR GR1,GR2 #0004 #3612 -../../../../as/CMD/xor0.casl:5: RET +../../../../as/CMD/xor0.casl: 5: RET #0005 #8100 -../../../../as/CMD/xor0.casl:6:A DC #8001 +../../../../as/CMD/xor0.casl: 6:A DC #8001 #0006 #8001 -../../../../as/CMD/xor0.casl:7:B DC #3521 +../../../../as/CMD/xor0.casl: 7:B DC #3521 #0007 #3521 -../../../../as/CMD/xor0.casl:8: END +../../../../as/CMD/xor0.casl: 8: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/xor1/0.txt b/test/integration/casl2/xor1/0.txt index 3fd3b69..8eae3b1 100644 --- a/test/integration/casl2/xor1/0.txt +++ b/test/integration/casl2/xor1/0.txt @@ -1,13 +1,13 @@ ../../../../casl2 -slatd ../../../../as/CMD/xor1.casl Assemble ../../../../as/CMD/xor1.casl (0) -../../../../as/CMD/xor1.casl:1:MAIN START -../../../../as/CMD/xor1.casl:2:BEGIN LAD GR0,#3444 -../../../../as/CMD/xor1.casl:3: LD GR1,A -../../../../as/CMD/xor1.casl:4: XOR GR0,A -../../../../as/CMD/xor1.casl:5: RET -../../../../as/CMD/xor1.casl:6:A DC #00DD -../../../../as/CMD/xor1.casl:7: END +../../../../as/CMD/xor1.casl: 1:MAIN START +../../../../as/CMD/xor1.casl: 2:BEGIN LAD GR0,#3444 +../../../../as/CMD/xor1.casl: 3: LD GR1,A +../../../../as/CMD/xor1.casl: 4: XOR GR0,A +../../../../as/CMD/xor1.casl: 5: RET +../../../../as/CMD/xor1.casl: 6:A DC #00DD +../../../../as/CMD/xor1.casl: 7: END Label:::: MAIN.A ---> #0007 @@ -15,21 +15,21 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/xor1.casl (1) -../../../../as/CMD/xor1.casl:1:MAIN START -../../../../as/CMD/xor1.casl:2:BEGIN LAD GR0,#3444 +../../../../as/CMD/xor1.casl: 1:MAIN START +../../../../as/CMD/xor1.casl: 2:BEGIN LAD GR0,#3444 #0000 #1200 #0001 #3444 -../../../../as/CMD/xor1.casl:3: LD GR1,A +../../../../as/CMD/xor1.casl: 3: LD GR1,A #0002 #1010 #0003 #0007 -../../../../as/CMD/xor1.casl:4: XOR GR0,A +../../../../as/CMD/xor1.casl: 4: XOR GR0,A #0004 #3200 #0005 #0007 -../../../../as/CMD/xor1.casl:5: RET +../../../../as/CMD/xor1.casl: 5: RET #0006 #8100 -../../../../as/CMD/xor1.casl:6:A DC #00DD +../../../../as/CMD/xor1.casl: 6:A DC #00DD #0007 #00DD -../../../../as/CMD/xor1.casl:7: END +../../../../as/CMD/xor1.casl: 7: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/xor3/0.txt b/test/integration/casl2/xor3/0.txt index cd46bc7..50d5d39 100644 --- a/test/integration/casl2/xor3/0.txt +++ b/test/integration/casl2/xor3/0.txt @@ -1,13 +1,13 @@ ../../../../casl2 -slatd ../../../../as/CMD/xor3.casl Assemble ../../../../as/CMD/xor3.casl (0) -../../../../as/CMD/xor3.casl:1:MAIN START -../../../../as/CMD/xor3.casl:2:BEGIN LAD GR0,#3444 -../../../../as/CMD/xor3.casl:3: LD GR1,A -../../../../as/CMD/xor3.casl:4: XOR GR0,A -../../../../as/CMD/xor3.casl:5: RET -../../../../as/CMD/xor3.casl:6:A DC #00DD -../../../../as/CMD/xor3.casl:7: END +../../../../as/CMD/xor3.casl: 1:MAIN START +../../../../as/CMD/xor3.casl: 2:BEGIN LAD GR0,#3444 +../../../../as/CMD/xor3.casl: 3: LD GR1,A +../../../../as/CMD/xor3.casl: 4: XOR GR0,A +../../../../as/CMD/xor3.casl: 5: RET +../../../../as/CMD/xor3.casl: 6:A DC #00DD +../../../../as/CMD/xor3.casl: 7: END Label:::: MAIN.A ---> #0007 @@ -15,21 +15,21 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/xor3.casl (1) -../../../../as/CMD/xor3.casl:1:MAIN START -../../../../as/CMD/xor3.casl:2:BEGIN LAD GR0,#3444 +../../../../as/CMD/xor3.casl: 1:MAIN START +../../../../as/CMD/xor3.casl: 2:BEGIN LAD GR0,#3444 #0000 #1200 #0001 #3444 -../../../../as/CMD/xor3.casl:3: LD GR1,A +../../../../as/CMD/xor3.casl: 3: LD GR1,A #0002 #1010 #0003 #0007 -../../../../as/CMD/xor3.casl:4: XOR GR0,A +../../../../as/CMD/xor3.casl: 4: XOR GR0,A #0004 #3200 #0005 #0007 -../../../../as/CMD/xor3.casl:5: RET +../../../../as/CMD/xor3.casl: 5: RET #0006 #8100 -../../../../as/CMD/xor3.casl:6:A DC #00DD +../../../../as/CMD/xor3.casl: 6:A DC #00DD #0007 #00DD -../../../../as/CMD/xor3.casl:7: END +../../../../as/CMD/xor3.casl: 7: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/xor4/0.txt b/test/integration/casl2/xor4/0.txt index d289b68..0e72420 100644 --- a/test/integration/casl2/xor4/0.txt +++ b/test/integration/casl2/xor4/0.txt @@ -1,19 +1,19 @@ ../../../../casl2 -slatd ../../../../as/CMD/xor4.casl Assemble ../../../../as/CMD/xor4.casl (0) -../../../../as/CMD/xor4.casl:1:;;; XORで、GR1の内容をクリア -../../../../as/CMD/xor4.casl:2:MAIN START -../../../../as/CMD/xor4.casl:3:BEGIN XOR GR2,GR2 -../../../../as/CMD/xor4.casl:4:LOOP CPA GR2,LEN -../../../../as/CMD/xor4.casl:5: JZE FIN -../../../../as/CMD/xor4.casl:6: LD GR1,A,GR2 -../../../../as/CMD/xor4.casl:7: XOR GR1,GR1 -../../../../as/CMD/xor4.casl:8: LAD GR2,1,GR2 -../../../../as/CMD/xor4.casl:9: JUMP LOOP -../../../../as/CMD/xor4.casl:10:FIN RET -../../../../as/CMD/xor4.casl:11:A DC #8001,#8000,#FFFF,#51,#7FFF -../../../../as/CMD/xor4.casl:12:LEN DC 5 -../../../../as/CMD/xor4.casl:13: END +../../../../as/CMD/xor4.casl: 1:;;; XORで、GR1の内容をクリア +../../../../as/CMD/xor4.casl: 2:MAIN START +../../../../as/CMD/xor4.casl: 3:BEGIN XOR GR2,GR2 +../../../../as/CMD/xor4.casl: 4:LOOP CPA GR2,LEN +../../../../as/CMD/xor4.casl: 5: JZE FIN +../../../../as/CMD/xor4.casl: 6: LD GR1,A,GR2 +../../../../as/CMD/xor4.casl: 7: XOR GR1,GR1 +../../../../as/CMD/xor4.casl: 8: LAD GR2,1,GR2 +../../../../as/CMD/xor4.casl: 9: JUMP LOOP +../../../../as/CMD/xor4.casl: 10:FIN RET +../../../../as/CMD/xor4.casl: 11:A DC #8001,#8000,#FFFF,#51,#7FFF +../../../../as/CMD/xor4.casl: 12:LEN DC 5 +../../../../as/CMD/xor4.casl: 13: END Label:::: MAIN.A ---> #000D @@ -24,38 +24,38 @@ MAIN.FIN ---> #000C MAIN.LEN ---> #0012 Assemble ../../../../as/CMD/xor4.casl (1) -../../../../as/CMD/xor4.casl:1:;;; XORで、GR1の内容をクリア -../../../../as/CMD/xor4.casl:2:MAIN START -../../../../as/CMD/xor4.casl:3:BEGIN XOR GR2,GR2 +../../../../as/CMD/xor4.casl: 1:;;; XORで、GR1の内容をクリア +../../../../as/CMD/xor4.casl: 2:MAIN START +../../../../as/CMD/xor4.casl: 3:BEGIN XOR GR2,GR2 #0000 #3622 -../../../../as/CMD/xor4.casl:4:LOOP CPA GR2,LEN +../../../../as/CMD/xor4.casl: 4:LOOP CPA GR2,LEN #0001 #4020 #0002 #0012 -../../../../as/CMD/xor4.casl:5: JZE FIN +../../../../as/CMD/xor4.casl: 5: JZE FIN #0003 #6300 #0004 #000C -../../../../as/CMD/xor4.casl:6: LD GR1,A,GR2 +../../../../as/CMD/xor4.casl: 6: LD GR1,A,GR2 #0005 #1012 #0006 #000D -../../../../as/CMD/xor4.casl:7: XOR GR1,GR1 +../../../../as/CMD/xor4.casl: 7: XOR GR1,GR1 #0007 #3611 -../../../../as/CMD/xor4.casl:8: LAD GR2,1,GR2 +../../../../as/CMD/xor4.casl: 8: LAD GR2,1,GR2 #0008 #1222 #0009 #0001 -../../../../as/CMD/xor4.casl:9: JUMP LOOP +../../../../as/CMD/xor4.casl: 9: JUMP LOOP #000A #6400 #000B #0001 -../../../../as/CMD/xor4.casl:10:FIN RET +../../../../as/CMD/xor4.casl: 10:FIN RET #000C #8100 -../../../../as/CMD/xor4.casl:11:A DC #8001,#8000,#FFFF,#51,#7FFF +../../../../as/CMD/xor4.casl: 11:A DC #8001,#8000,#FFFF,#51,#7FFF #000D #8001 #000E #8000 #000F #FFFF #0010 #0051 #0011 #7FFF -../../../../as/CMD/xor4.casl:12:LEN DC 5 +../../../../as/CMD/xor4.casl: 12:LEN DC 5 #0012 #0005 -../../../../as/CMD/xor4.casl:13: END +../../../../as/CMD/xor4.casl: 13: END Executing machine codes #0000: Register:::: diff --git a/test/integration/casl2/xor5/0.txt b/test/integration/casl2/xor5/0.txt index 3a280ad..3dc46ec 100644 --- a/test/integration/casl2/xor5/0.txt +++ b/test/integration/casl2/xor5/0.txt @@ -1,13 +1,13 @@ ../../../../casl2 -slatd ../../../../as/CMD/xor5.casl Assemble ../../../../as/CMD/xor5.casl (0) -../../../../as/CMD/xor5.casl:1:MAIN START -../../../../as/CMD/xor5.casl:2:BEGIN LD GR1,A -../../../../as/CMD/xor5.casl:3: XOR GR1,B -../../../../as/CMD/xor5.casl:4: RET -../../../../as/CMD/xor5.casl:5:A DC 3 -../../../../as/CMD/xor5.casl:6:B DC #FFFF -../../../../as/CMD/xor5.casl:7: END +../../../../as/CMD/xor5.casl: 1:MAIN START +../../../../as/CMD/xor5.casl: 2:BEGIN LD GR1,A +../../../../as/CMD/xor5.casl: 3: XOR GR1,B +../../../../as/CMD/xor5.casl: 4: RET +../../../../as/CMD/xor5.casl: 5:A DC 3 +../../../../as/CMD/xor5.casl: 6:B DC #FFFF +../../../../as/CMD/xor5.casl: 7: END Label:::: MAIN.A ---> #0005 @@ -16,20 +16,20 @@ MAIN.BEGIN ---> #0000 MAIN ---> #0000 Assemble ../../../../as/CMD/xor5.casl (1) -../../../../as/CMD/xor5.casl:1:MAIN START -../../../../as/CMD/xor5.casl:2:BEGIN LD GR1,A +../../../../as/CMD/xor5.casl: 1:MAIN START +../../../../as/CMD/xor5.casl: 2:BEGIN LD GR1,A #0000 #1010 #0001 #0005 -../../../../as/CMD/xor5.casl:3: XOR GR1,B +../../../../as/CMD/xor5.casl: 3: XOR GR1,B #0002 #3210 #0003 #0006 -../../../../as/CMD/xor5.casl:4: RET +../../../../as/CMD/xor5.casl: 4: RET #0004 #8100 -../../../../as/CMD/xor5.casl:5:A DC 3 +../../../../as/CMD/xor5.casl: 5:A DC 3 #0005 #0003 -../../../../as/CMD/xor5.casl:6:B DC #FFFF +../../../../as/CMD/xor5.casl: 6:B DC #FFFF #0006 #FFFF -../../../../as/CMD/xor5.casl:7: END +../../../../as/CMD/xor5.casl: 7: END Executing machine codes #0000: Register::::