X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=as%2Ffe_tests%2F2010_10%2FQ12%2Fprevrs.casl;fp=as%2Ffe_tests%2F2010_10%2FQ12%2Fprevrs.casl;h=66a6fbf807497be46b837573176f1e3b4f00bb49;hb=424f582a6be629ccdbf605a53ae22f5ce60a41f7;hp=0000000000000000000000000000000000000000;hpb=d1f82970bf7d41db2fea11b08cd8e308f6cb8138;p=YACASL2.git diff --git a/as/fe_tests/2010_10/Q12/prevrs.casl b/as/fe_tests/2010_10/Q12/prevrs.casl new file mode 100644 index 0000000..66a6fbf --- /dev/null +++ b/as/fe_tests/2010_10/Q12/prevrs.casl @@ -0,0 +1,20 @@ +PREVRS START + RPUSH + LD GR4,0,GR1 ; ビット列を保存 + CALL REVRS ; ビット列のビットの並びを逆転 + LD GR5,0,GR1 ; GR5 ← 逆転したビット列 + LD GR6,=16 + SUBA GR6,GR3 ; GR6 ← 16 - q + SRL GR5,0,GR2 ; 逆転した部分ビット列αを右端に移動 + SLL GR5,0,GR6 ; 逆転した部分ビット列αを左端に移動 + SRL GR5,0,GR2 ; 逆転した部分ビット列αを p ビットに移動 + LD GR6,=#8000 + SRA GR6,-1,GR3 ; q ビット連続した1の並びを作成 + SRL GR6,0,GR2 + XOR GR6,=#FFFF + AND GR6,GR4 ; 元のビット列中の部分ビット列αにゼロを設定 + OR GR6,GR5 + ST GR6,0,GR1 + RPOP + RET + END