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

import sep3.Model;
import sep3.model.CPU;
import sep3.model.operation.InstructionSet;

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


		// Fromオペランドで指定されたレジスタの値(R6とする)を MARへ送る

		//指定されたレジスタからAバスに流す
		cpu.getABusSelector().selectFrom(CPU.REG_R6);
		//ALUをそのまま貫通してSバスに流す
        cpu.getALU().operate(InstructionSet.OP_THRA);
		//SバスからMARに送る
        cpu.getSBusSelector().selectTo(CPU.REG_MAR);


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

}
package sep3.model.cycle;

import sep3.Model;
import sep3.model.CPU;
import sep3.model.operation.InstructionSet;

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


		// Fromオペランドで指定されたレジスタの値(R6とする)を MARへ送る

		//指定されたレジスタからAバスに流す
		cpu.getABusSelector().selectFrom(CPU.REG_R6);
		//ALUをそのまま貫通してSバスに流す
        cpu.getALU().operate(InstructionSet.OP_THRA);
		//SバスからMARに送る
        cpu.getSBusSelector().selectTo(CPU.REG_MAR);


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

}

No one still commented. Please first comment.