sra
命令を廃止する。代わりに、即値ではなくレジスタでジャンプ先が指定できる命令を追加する。exec_jnc.vhdのsra
命令の部分を下のように書き換える。
--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 # レジスタに記憶してあるアドレスへジャンプ