sra命令(算術右シフト)を廃止してjmp_reg命令(ジャンプ先のアドレスをレジスタで指定)を追加する

sra命令を廃止する。代わりに、即値ではなくレジスタでジャンプ先が指定できる命令を追加する。exec_jnc.vhdsra命令の部分を下のように書き換える。

                  --when "0111" => -- SRA
                   --  REG_IN_TEMP <= '0' & REG_A(15) & REG_A(15 downto 1);
                       --REG_WEN <= '1';
                       --RAM_WEN <= '0';
                       --PC <= PC + 1;
                    when "0111" => -- JMP_REG
                        PC <= REG_A(7 downto 0);
                        REG_WEN <= '0';
                        RAM_WEN <= '0';

したがってアセンブラ(のようなもの)もsraの部分を下のように書き換える。

#def sra(ra):       return  7 << 11 | ra << 8                 # 算術右シフト
def jmp_reg(ra):   return  7 << 11 | ra << 8                 # レジスタに記憶してあるアドレスへジャンプ