⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cu.java

📁 熟悉非常简单CPU模拟器 1、将所给模拟器的源程序编译成执行程序。 2、运行并观察非常简单CPU模拟器
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;

public
class CU
   extends Frame
   implements ActionListener
{

   public CU( Frame parent, String windowTitle )
   {
      super( windowTitle );

      CPUBox = ( CPU ) parent;

      MenuBar mbar = new MenuBar();

      setMenuBar( mbar );

      Menu file = new Menu( "File" );

      closeWindowMenuItem = new MenuItem( "Close Window" );
      closeWindowMenuItem.addActionListener( this );

      file.add( closeWindowMenuItem );
      mbar.add( file );

      addWindowListener(

            new WindowAdapter()
            {

               public void windowClosing( WindowEvent e )
               {
                  setVisible( false );
               }

            }

         );

      setSize( 340, 365 );
   }

   public void clear()
   {
		m =0;
		n =0;
		o =0;

		m2 =0;
		n2 =0;
		o2 =0;

		m3 =0;
		n3 =0;
		o3 =0;

		m4 =0;
		n4 =0;
		o4 =0;

		m5 =0;
		n5 =0;
		o5 =0;

		m6 =0;
		n6 =0;
		o6 =0;

		m7 =0;
		n7 =0;
		o7 =0;

		m8 =0;
		n8 =0;
		o8 =0;

		m9 =0;
		n9 =0;
		o9 =0;

		m10 =0;
		n10 =0;
		o10 =0;

		m11 =0;
		n11 =0;
		o11 =0;

		m12 =0;
		n12 =0;
		o12 =0;

		m13 =0;
		n13 =0;
		o13 =0;

		m14 =0;
		n14 =0;
		o14 =0;

		m15 =0;
		n15 =0;
		o15 =0;

		m16 =0;
		n16 =0;
		o16 =0;

		m17 =0;
		n17 =0;
		o17 =0;

		m18 =0;
		n18 =0;
		o18 =0;

		m19 =0;
		n19 =0;
		o19 =0;

		m20 =0;
		n20 =0;
		o20 =0;

		m21 =0;
		n21 =0;
		o21 =0;

		m22 =0;
		n22 =0;
		o22 =0;

                m23 =0;
		n23 =0;
		o23 =0;

		m24 =0;
		n24 =0;
		o24 =0;

		m25 =0;
		n25 =0;
		o25 =0;

		m26 =0;
		n26 =0;
		o26 =0;
   }

   public void setActive( boolean b )
   {
      active = b;
   }

   public boolean getActive()
   {
      return ( active );
   }

   public void actionPerformed( ActionEvent evt )
   {
      Object eventSource = evt.getSource();

      if ( eventSource == closeWindowMenuItem )
      {
         setVisible( false );
      }

   }

   public void paint( Graphics g )
   {

      if ( ! hasBeenPainted )
      {
         setSize( 340, 365 );
         hasBeenPainted = true;
      }

      Color c0 = Color.black;
      Color c1 = new Color( m, n, o );
      Color c2 = new Color( m2, n2, o2 );
      Color c3 = new Color(m3,n3,o3);
      Color c4 = new Color(m4,n4,o4);
      Color c5 = new Color(m5,n5,o5);
      Color c6 = new Color(m6,n6,o6);
      Color c7 = new Color(m7,n7,o7);
      Color c8 = new Color(m8,n8,o8);
      Color c9 = new Color(m9,n9,o9);
      Color c10 = new Color(m10,n10,o10);
      Color c11 = new Color(m11,n11,o11);
      Color c12 = new Color(m12,n12,o12);
      Color c13 = new Color(m13,n13,o13);
      Color c14 = new Color(m14,n14,o14);
      Color c15 = new Color(m15,n15,o15);
      Color c16 = new Color(m16,n16,o16);
      Color c17 = new Color(m17,n17,o17);
      Color c18 = new Color(m18,n18,o18);
      Color c19 = new Color(m19,n19,o19);
      Color c20 = new Color(m20,n20,o20);
      Color c21 = new Color(m21,n21,o21);
      Color c22 = new Color(m22,n22,o22);
      Color c23 = new Color(m23,n23,o23);
      Color c24 = new Color(m24,n24,o24);
      Color c25 = new Color(m25,n25,o25);
      Color c26 = new Color(m26,n26,o26);

      Font f3 = new Font( "Times New Roman", Font.PLAIN, 9 );

      g.setFont( f3 );

      g.drawRect(190,53,70,193);               //Decoder

/*      g.setColor(c1);
      g.drawString("E",82,333);
      g.drawLine(85,335,85,370);
      g.drawLine(85,370,81,370);
      g.setColor(c0);
*/
      g.setColor(c2);
      g.drawLine(260,63,266,63);
      g.drawString("FETCH1",272,67);
      g.setColor(c0);


		g.setColor(c3);
                g.drawLine(260,80,266,80);
                g.drawString("FETCH2",272,84);
                g.setColor(c0);

		g.setColor(c4);
                g.drawLine(260,97,266,97);
                g.drawString("FETCH3",272,101);
		g.setColor(c0);

		g.setColor(c5);
                g.drawLine(260,131,266,131);
                g.drawString("ADD1",272,135);
		g.setColor(c0);

		g.setColor(c6);
                g.drawLine(260,148,266,148);
                g.drawString("ADD2",272,152);
		g.setColor(c0);

		g.setColor(c7);
                g.drawLine(260,165,266,165);
                g.drawString("AND1",272,169);
		g.setColor(c0);

		g.setColor(c8);
                g.drawLine(260,182,266,182);
                g.drawString("AND2",272,186);
		g.setColor(c0);

		g.setColor(c9);
                g.drawLine(260,199,266,199);
                g.drawString("JMP1",272,204);
		g.setColor(c0);

                g.setColor(c10);
                g.drawLine(260,233,266,233);
                g.drawString("INC1",272,237);
		g.setColor(c0);
/*
		g.setColor(c11);
		g.drawLine(115,218,121,218);
		g.drawString("ISUB",124,221);
		g.setColor(c0);

		g.setColor(c12);
		g.drawLine(115,235,121,235);
                g.drawString("IINAC",124,238);
		g.setColor(c0);

		g.setColor(c13);
		g.drawLine(115,252,121,252);
		g.drawString("ICLAC",124,255);
		g.setColor(c0);

		g.setColor(c14);
		g.drawLine(115,269,121,269);
		g.drawString("IAND",124,272);
		g.setColor(c0);

		g.setColor(c15);
		g.drawLine(115,286,121,286);
		g.drawString("IOR",124,289);
		g.setColor(c0);

		g.setColor(c16);
		g.drawLine(115,303,121,303);
		g.drawString("IXOR",124,306);
		g.setColor(c0);

		g.setColor(c17);
		g.drawLine(115,320,121,320);
		g.drawString("INOT",124,323);
*/
                g.setColor(c0);
                g.drawString("DECODER",201,118);
                g.drawString("0",250,67);
                g.drawString("1",250,84);
                g.drawString("2",250,101);
//                g.drawString("3",250,120);
//                g.drawString("4",108,137);
//                g.drawString("5",108,154);
//                g.drawString("6",108,171);
//                g.drawString("7",108,188);
                g.drawString("8",250,135);
                g.drawString("9",250,152);
                g.drawString("10",246,169);
                g.drawString("11",246,186);
                g.drawString("12",246,204);
//                g.drawString("13",104,290);
                g.drawString("14",246,237);
                g.fillOval(250,216,4,4);
                g.fillOval(250,107,4,4);
                g.fillOval(250,116,4,4);
//                g.drawString("15",104,324);
//                g.drawArc(33,355,10,30,90,-173); //NOR
//                g.drawArc(-6,355,80,30,84,-166); //NOR
//                g.drawOval(75,367,6,6);          //NOR

                g.setColor(c14);
                g.drawString("FETCH3",56,254);// at the or gate
                g.drawLine(70,235,70,245);
                g.drawString("LD",65,233);
                g.setColor(c0);

                g.setColor(c22);
                g.drawString("CLR",107,233);
                g.drawLine(115,235,115,275);
                g.drawLine(115,275,133,275);
                g.drawArc(173,260,10,30,90,180); //small part of the arc
                g.drawArc(134,260,80,30,87,188); //big part of the arc
                g.setColor(c0);

                g.setColor(c16);
                g.drawLine(175,265,180,265);   // at the or gate
                g.drawString("ADD2",182,269);  // at the or gate

                g.setColor(c18);
                g.drawLine(173,272,210,272);   // at the or gate
                g.drawString("AND2",213,276);  // at the or gate

                g.setColor(c19);
                g.drawLine(173,280,180,280);   // at the or gate
                g.drawString("JMP1",182,284);  // at the or gate

                g.setColor(c20);
                g.drawLine(175,286,210,286);   // at the or gate
                g.drawString("INC1",213,291);  // at the or gate


                g.setColor(c21);
                g.drawString("INC",85,233);
                g.drawLine(93,235,93,319);
                g.drawLine(93,319,133,319);
                g.drawArc(173,304,10,30,90,180); //small part of the arc
                g.drawArc(134,304,80,30,87,188); //big part of the arc
                g.setColor(c0);

                g.setColor(c12);
                g.drawLine(175,309,180,309);   // at the or gate
                g.drawString("FETCH1",182,313);// at the or gate
                g.setColor(c0);
                
                g.setColor(c13);                
                g.drawLine(173,316,210,316);    // at the or gate
                g.drawString("FETCH2",213,321); // at the or gate

                g.setColor(c15);
                g.drawLine(173,324,180,324);    // at the or gate
                g.drawString("ADD1",182,328);   // at the or gate

                g.setColor(c17);
                g.drawLine(175,330,210,330);    // at the or gate
                g.drawString("AND1",213,335);   // at the or gate
                g.setColor(c0);

//                g.drawString("IR[7..4]",7,373);

                g.setColor(c14);
                g.drawLine(60,145,50,145);
                g.drawString("1IR[1..0]0",10,148);
                g.setColor(c0);

                g.drawLine(130,145,190,145);

                g.drawRect(60,60,70,175);                     //COUNTER
                g.drawString("COUNTER",74,118);


                             

/*
                g.drawString("0",219,137);
		g.drawString("1",219,154);
		g.drawString("2",219,171);
		g.drawString("3",219,188);
		g.drawString("4",219,205);
		g.drawString("5",219,222);
		g.drawString("6",219,239);
		g.drawString("7",219,256);


		g.setColor(c18);
		g.drawLine(199,262,199,268);   // line to clk
		g.drawString("CLK",191,277);
		g.setColor(c0);

		g.setColor(c19);
		g.drawLine(228,133,233,133);
		g.drawString("T0",235,136);
		g.setColor(c0);

		g.setColor(c20);
		g.drawLine(228,150,233,150);
		g.drawString("T1",235,153);
		g.setColor(c0);


		g.setColor(c21);
		g.drawLine(228,167,233,167);
		g.drawString("T2",235,170);
		g.setColor(c0);

		g.setColor(c22);
		g.drawLine(228,184,233,184);
		g.drawString("T3",235,187);
		g.setColor(c0);

		g.setColor(c23);
		g.drawLine(228,201,233,201);
		g.drawString("T4",235,204);
		g.setColor(c0);

		g.setColor(c24);
		g.drawLine(228,218,233,218);
		g.drawString("T5",235,221);
		g.setColor(c0);

		g.setColor(c25);
		g.drawLine(228,235,233,235);
		g.drawString("T6",235,238);
		g.setColor(c0);

		g.setColor(c26);
		g.drawLine(228,252,233,252);
		g.drawString("T7",235,255);
		g.setColor(c0);
*/
   }

   public int m = 0;
   public int n = 0;
   public int o = 0;

   public int m2 = 0;
   public int n2 = 0;
   public int o2 = 0;

   public int m3 = 0;
   public int n3 = 0;
   public int o3 = 0;

   public int m4 = 0;
   public int n4 = 0;
   public int o4 = 0;

   public int m5 = 0;
   public int n5 = 0;
   public int o5 = 0;

   public int m6 = 0;
   public int n6 = 0;
   public int o6 = 0;

   public int m7 = 0;
   public int n7 = 0;
   public int o7 = 0;

   public int m8 = 0;
   public int n8 = 0;
   public int o8 = 0;

   public int m9 = 0;
   public int n9 = 0;
   public int o9 = 0;

   public int m10 = 0;
   public int n10 = 0;
   public int o10 = 0;

   public int m11 = 0;
   public int n11 = 0;
   public int o11 = 0;

   public int m12 = 0;
   public int n12 = 0;
   public int o12 = 0;

   public int m13 = 0;
   public int n13 = 0;
   public int o13 = 0;

   public int m14 = 0;
   public int n14 = 0;
   public int o14 = 0;

   public int m15 = 0;
   public int n15 = 0;
   public int o15 = 0;

   public int m16 = 0;
   public int n16 = 0;
   public int o16 = 0;

   public int m17 = 0;
   public int n17 = 0;
   public int o17 = 0;

   public int m18 = 0;
   public int n18 = 0;
   public int o18 = 0;

   public int m19 = 0;
   public int n19 = 0;
   public int o19 = 0;

   public int m20 = 0;
   public int n20 = 0;
   public int o20 = 0;

   public int m21 = 0;
   public int n21 = 0;
   public int o21 = 0;

   public int m22 = 0;
   public int n22 = 0;
   public int o22 = 0;
   public int m23 = 0;
   public int n23 = 0;
   public int o23 = 0;

   public int m24 = 0;
   public int n24 = 0;
   public int o24 = 0;

   public int m25 = 0;
   public int n25 = 0;
   public int o25 = 0;

   public int m26 = 0;
   public int n26 = 0;
   public int o26 = 0;

   private CPU CPUBox;

   private MenuItem closeWindowMenuItem;

   private boolean hasBeenPainted = false;
   private boolean active;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -