anonymous No title
No License Java
2020年08月17日
Copy
package sep3.model.cycle;


import sep3.Model;
import sep3.model.CPU;
import sep3.model.Memory;

public class ReadFromOpe1 extends State {
	@Override
	public State clockstep(Model model) {
		//System.out.println("%% IF1 %%");
		// ステータスカウンタの設定。次の2行は、すべての状態において、最初に必ず記述すること
		CPU cpu = model.getCPU();
		cpu.getRegister(CPU.REG_SC).setInitValue(StateFactory.SC_FF1);

		// MARに格納されている番地から命令を読み出してISRへ送る

		// MAR をアドレスバスに流す
		model.getAddrBusSelector().selectFrom(CPU.REG_MAR);
		// メモリを読み出してデータバスへ出力
		model.getMemory().access(Memory.MEM_RD);
		// データバスの値をMDRへ送る
		model.getDataBusSelector().selectTo(CPU.REG_MDR);

		// 次の状態へ
		//return cpu.getStateFactory().getState(StateFactory.SC_HLT);
		return cpu.getStateFactory().getState(StateFactory.SC_FF2);
	}
}
package sep3.model.cycle;


import sep3.Model;
import sep3.model.CPU;
import sep3.model.Memory;

public class ReadFromOpe1 extends State {
	@Override
	public State clockstep(Model model) {
		//System.out.println("%% IF1 %%");
		// ステータスカウンタの設定。次の2行は、すべての状態において、最初に必ず記述すること
		CPU cpu = model.getCPU();
		cpu.getRegister(CPU.REG_SC).setInitValue(StateFactory.SC_FF1);

		// MARに格納されている番地から命令を読み出してISRへ送る

		// MAR をアドレスバスに流す
		model.getAddrBusSelector().selectFrom(CPU.REG_MAR);
		// メモリを読み出してデータバスへ出力
		model.getMemory().access(Memory.MEM_RD);
		// データバスの値をMDRへ送る
		model.getDataBusSelector().selectTo(CPU.REG_MDR);

		// 次の状態へ
		//return cpu.getStateFactory().getState(StateFactory.SC_HLT);
		return cpu.getStateFactory().getState(StateFactory.SC_FF2);
	}
}

No one still commented. Please first comment.