X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=as%2Ffe_tests%2F2011_06%2FQ12%2Frotate2.casl;fp=as%2Ffe_tests%2F2011_06%2FQ12%2Frotate2.casl;h=d2d7061da6dbb3694a188170d0849f913f8830c5;hb=fe3360c6043b31888d5a0ce928096ed0c57905f6;hp=0000000000000000000000000000000000000000;hpb=624b3647b7e85ff83585e8acd6eaf2f276ecf282;p=YACASL2.git diff --git a/as/fe_tests/2011_06/Q12/rotate2.casl b/as/fe_tests/2011_06/Q12/rotate2.casl new file mode 100644 index 0000000..d2d7061 --- /dev/null +++ b/as/fe_tests/2011_06/Q12/rotate2.casl @@ -0,0 +1,42 @@ +ROTATE START + RPUSH + ST GR3,N + LD GR4,GR3 + LD GR5,GR1 + LD GR6,GR2 + LD GR7,=16 + SUBA GR7,GR3 +SHIFT LD GR0,0,GR5 + SLL GR0,0,GR3 + ST GR0,0,GR6 ; 結果の領域 ← GR0 + LAD GR5,1,GR5 ; 元の図形の1語のアドレス更新 + LAD GR6,1,GR6 ; 結果の図形の1語のアドレス更新 + SUBA GR4,=1 ; n語処理済み? + JNZ SHIFT +COPY SUBA GR7,=1 ; 残りの語の内容を結果の領域に複写 + JMI LOOP1 + LD GR0,0,GR5 + ST GR0,0,GR6 + LAD GR5,0,GR5 + LAD GR6,0,GR6 + JUMP COPY +N DS 1 +LOOP1 LD GR4,N + LD GR5,GR2 ; GR5 ← 結果の領域のアドレス + LD GR6,0,GR1 ; GR6 ← 元の図形の先頭語の内容 +LOOP2 LD GR7,0,GR5 ; GR7 ← 結果の領域の1語の内容 + SRL GR7,1 + SLL GR6,1 + JOV ON + JUMP CONT +ON OR GR7,=#8000 +CONT ST GR7,0,GR5 ; 処理した1語を結果の領域に格納 + LAD GR5,1,GR5 + SUBA GR4,=1 + JNZ LOOP2 + LAD GR1,1,GR1 + SUBA GR3,=1 + JNZ LOOP1 + RPOP + RET + END