`ifdef EXECUTE
`INSN_VOP_INTR: begin
case (cycle)
- 0: begin
- address <= {registers[`REG_SPH],registers[`REG_SPL]} - 1;
- wdata <= registers[`REG_PCH];
- wr <= 1;
- end
- 1: begin
- address <= {registers[`REG_SPH],registers[`REG_SPL]} - 2;
- wdata <= registers[`REG_PCL];
- wr <= 1;
- end
- 2: begin
- `EXEC_NEWCYCLE;
- end
+ 0: `EXEC_WRITE(`_SP - 1, `_PCH);
+ 1: `EXEC_WRITE(`_SP - 2, `_PCL);
+ 2: `EXEC_NEWCYCLE;
endcase
end
`endif
1: begin end
2: begin
ie <= 0;
- {registers[`REG_PCH],registers[`REG_PCL]} <=
- {8'b0,jaddr};
- {registers[`REG_SPH],registers[`REG_SPL]} <=
- {registers[`REG_SPH],registers[`REG_SPL]} - 2;
+ `_PC <= {8'b0, jaddr};
+ `_SP <= `_SP - 2;
end
endcase
end