diff --git a/boot_code/brainfuck_mandelbrot.stage b/boot_code/brainfuck_mandelbrot.stage new file mode 100644 index 0000000..2cb91ac Binary files /dev/null and b/boot_code/brainfuck_mandelbrot.stage differ diff --git a/system/decoder.v b/system/decoder.v index f6c042d..bf2c3dc 100644 --- a/system/decoder.v +++ b/system/decoder.v @@ -539,6 +539,27 @@ always @( CIR or SIMPLE_MICRO or seq_addr_input ) begin ALU_1OP=`ALU_OP_ADD; OUT_MOD=3'b101; end + 11'b1100_011x_000:begin + /* MOV - Move immediate to register/memory */ + /* 1 1 0 0 0 1 1 W | MOD 0 0 0 R/M | < DISP-LO > | < DISP-HI > | DATA | DATA if W */ + Wbit=CIR[8:8]; + opcode_size=1; + has_operands=1; + in_alu1_sel1=2'b00; + in_alu1_sel2=2'b11; + if(Wbit==1)begin + `start_aligning_instruction; + next_state=`PROC_DE_LOAD_16_PARAM; + end else begin + `start_unaligning_instruction; + next_state=`PROC_DE_LOAD_8_PARAM; + end + + OUT_MOD={1'b0,CIR[7:6]}; + IN_MOD=3'b011; + RM=CIR[2:0]; + + end default:begin `invalid_instruction end