Files
EMARS/docs/mars/mips/hardware/RegisterFile.html
T
adolphenom 0da1c5dcca Source code of MARS Assembler
First commit of the 4.5 version (latest version available)
2014-12-21 12:49:28 +01:00

682 lines
29 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_33) on Tue Aug 20 12:20:51 EDT 2013 -->
<TITLE>
RegisterFile
</TITLE>
<META NAME="date" CONTENT="2013-08-20">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RegisterFile";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../mars/mips/hardware/RegisterAccessNotice.html" title="class in mars.mips.hardware"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?mars/mips/hardware/RegisterFile.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="RegisterFile.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
mars.mips.hardware</FONT>
<BR>
Class RegisterFile</H2>
<PRE>
<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>mars.mips.hardware.RegisterFile</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>RegisterFile</B><DT>extends <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
</PRE>
<P>
Represents the collection of MIPS registers.
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD>Jason Bumgarner, Jason Shrewsbury</DD>
</DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#GLOBAL_POINTER_REGISTER">GLOBAL_POINTER_REGISTER</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#STACK_POINTER_REGISTER">STACK_POINTER_REGISTER</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#RegisterFile()">RegisterFile</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#addRegistersObserver(java.util.Observer)">addRegistersObserver</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;observer)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Each individual register is a separate object and Observable.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#deleteRegistersObserver(java.util.Observer)">deleteRegistersObserver</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;observer)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Each individual register is a separate object and Observable.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#getInitialProgramCounter()">getInitialProgramCounter</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For returning the program counter's initial (reset) value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#getNumber(java.lang.String)">getNumber</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;n)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For getting the number representation of the register.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#getProgramCounter()">getProgramCounter</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For returning the program counters value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../mars/mips/hardware/Register.html" title="class in mars.mips.hardware">Register</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#getProgramCounterRegister()">getProgramCounterRegister</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns Register object for program counter.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../mars/mips/hardware/Register.html" title="class in mars.mips.hardware">Register</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#getRegisters()">getRegisters</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For returning the set of registers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../mars/mips/hardware/Register.html" title="class in mars.mips.hardware">Register</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#getUserRegister(java.lang.String)">getUserRegister</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;Rname)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get register object corresponding to given name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#getValue(int)">getValue</A></B>(int&nbsp;num)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the register who's number is num.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#incrementPC()">incrementPC</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to increment the Program counter in the general case (not a jump or branch).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#initializeProgramCounter(boolean)">initializeProgramCounter</A></B>(boolean&nbsp;startAtMain)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Will initialize the Program Counter to either the default reset value, or the address
associated with source program global label "main", if it exists as a text segment label
and the global setting is set.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#initializeProgramCounter(int)">initializeProgramCounter</A></B>(int&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For initializing the Program Counter.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#resetRegisters()">resetRegisters</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to reinitialize the values of the registers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#setProgramCounter(int)">setProgramCounter</A></B>(int&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For setting the Program Counter.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#showRegisters()">showRegisters</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method for displaying the register values for debugging.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#updateRegister(int, int)">updateRegister</A></B>(int&nbsp;num,
int&nbsp;val)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method updates the register value who's number is num.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/RegisterFile.html#updateRegister(java.lang.String, int)">updateRegister</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;reg,
int&nbsp;val)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the register given to the value given.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="GLOBAL_POINTER_REGISTER"><!-- --></A><H3>
GLOBAL_POINTER_REGISTER</H3>
<PRE>
public static final int <B>GLOBAL_POINTER_REGISTER</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#mars.mips.hardware.RegisterFile.GLOBAL_POINTER_REGISTER">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="STACK_POINTER_REGISTER"><!-- --></A><H3>
STACK_POINTER_REGISTER</H3>
<PRE>
public static final int <B>STACK_POINTER_REGISTER</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#mars.mips.hardware.RegisterFile.STACK_POINTER_REGISTER">Constant Field Values</A></DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="RegisterFile()"><!-- --></A><H3>
RegisterFile</H3>
<PRE>
public <B>RegisterFile</B>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="showRegisters()"><!-- --></A><H3>
showRegisters</H3>
<PRE>
public static void <B>showRegisters</B>()</PRE>
<DL>
<DD>Method for displaying the register values for debugging.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="updateRegister(int, int)"><!-- --></A><H3>
updateRegister</H3>
<PRE>
public static int <B>updateRegister</B>(int&nbsp;num,
int&nbsp;val)</PRE>
<DL>
<DD>This method updates the register value who's number is num. Also handles the lo and hi registers
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>num</CODE> - Register to set the value of.<DD><CODE>val</CODE> - The desired value for the register.</DL>
</DD>
</DL>
<HR>
<A NAME="updateRegister(java.lang.String, int)"><!-- --></A><H3>
updateRegister</H3>
<PRE>
public static void <B>updateRegister</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;reg,
int&nbsp;val)</PRE>
<DL>
<DD>Sets the value of the register given to the value given.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>reg</CODE> - Name of register to set the value of.<DD><CODE>val</CODE> - The desired value for the register.</DL>
</DD>
</DL>
<HR>
<A NAME="getValue(int)"><!-- --></A><H3>
getValue</H3>
<PRE>
public static int <B>getValue</B>(int&nbsp;num)</PRE>
<DL>
<DD>Returns the value of the register who's number is num.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>num</CODE> - The register number.
<DT><B>Returns:</B><DD>The value of the given register.</DL>
</DD>
</DL>
<HR>
<A NAME="getNumber(java.lang.String)"><!-- --></A><H3>
getNumber</H3>
<PRE>
public static int <B>getNumber</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;n)</PRE>
<DL>
<DD>For getting the number representation of the register.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n</CODE> - The string formatted register name to look for.
<DT><B>Returns:</B><DD>The number of the register represented by the string
or -1 if no match.</DL>
</DD>
</DL>
<HR>
<A NAME="getRegisters()"><!-- --></A><H3>
getRegisters</H3>
<PRE>
public static <A HREF="../../../mars/mips/hardware/Register.html" title="class in mars.mips.hardware">Register</A>[] <B>getRegisters</B>()</PRE>
<DL>
<DD>For returning the set of registers.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The set of registers.</DL>
</DD>
</DL>
<HR>
<A NAME="getUserRegister(java.lang.String)"><!-- --></A><H3>
getUserRegister</H3>
<PRE>
public static <A HREF="../../../mars/mips/hardware/Register.html" title="class in mars.mips.hardware">Register</A> <B>getUserRegister</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;Rname)</PRE>
<DL>
<DD>Get register object corresponding to given name. If no match, return null.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>Rname</CODE> - The register name, either in $0 or $zero format.
<DT><B>Returns:</B><DD>The register object,or null if not found.</DL>
</DD>
</DL>
<HR>
<A NAME="initializeProgramCounter(int)"><!-- --></A><H3>
initializeProgramCounter</H3>
<PRE>
public static void <B>initializeProgramCounter</B>(int&nbsp;value)</PRE>
<DL>
<DD>For initializing the Program Counter. Do not use this to implement jumps and
branches, as it will NOT record a backstep entry with the restore value.
If you need backstepping capability, use setProgramCounter instead.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - The value to set the Program Counter to.</DL>
</DD>
</DL>
<HR>
<A NAME="initializeProgramCounter(boolean)"><!-- --></A><H3>
initializeProgramCounter</H3>
<PRE>
public static void <B>initializeProgramCounter</B>(boolean&nbsp;startAtMain)</PRE>
<DL>
<DD>Will initialize the Program Counter to either the default reset value, or the address
associated with source program global label "main", if it exists as a text segment label
and the global setting is set.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>startAtMain</CODE> - If true, will set program counter to address of statement labeled
'main' (or other defined start label) if defined. If not defined, or if parameter false,
will set program counter to default reset value.</DL>
</DD>
</DL>
<HR>
<A NAME="setProgramCounter(int)"><!-- --></A><H3>
setProgramCounter</H3>
<PRE>
public static int <B>setProgramCounter</B>(int&nbsp;value)</PRE>
<DL>
<DD>For setting the Program Counter. Note that ordinary PC update should be done using
incrementPC() method. Use this only when processing jumps and branches.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - The value to set the Program Counter to.
<DT><B>Returns:</B><DD>previous PC value</DL>
</DD>
</DL>
<HR>
<A NAME="getProgramCounter()"><!-- --></A><H3>
getProgramCounter</H3>
<PRE>
public static int <B>getProgramCounter</B>()</PRE>
<DL>
<DD>For returning the program counters value.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The program counters value as an int.</DL>
</DD>
</DL>
<HR>
<A NAME="getProgramCounterRegister()"><!-- --></A><H3>
getProgramCounterRegister</H3>
<PRE>
public static <A HREF="../../../mars/mips/hardware/Register.html" title="class in mars.mips.hardware">Register</A> <B>getProgramCounterRegister</B>()</PRE>
<DL>
<DD>Returns Register object for program counter. Use with caution.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>program counter's Register object.</DL>
</DD>
</DL>
<HR>
<A NAME="getInitialProgramCounter()"><!-- --></A><H3>
getInitialProgramCounter</H3>
<PRE>
public static int <B>getInitialProgramCounter</B>()</PRE>
<DL>
<DD>For returning the program counter's initial (reset) value.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The program counter's initial value</DL>
</DD>
</DL>
<HR>
<A NAME="resetRegisters()"><!-- --></A><H3>
resetRegisters</H3>
<PRE>
public static void <B>resetRegisters</B>()</PRE>
<DL>
<DD>Method to reinitialize the values of the registers.
<b>NOTE:</b> Should <i>not</i> be called from command-mode MARS because this
this method uses global settings from the registry. Command-mode must operate
using only the command switches, not registry settings. It can be called
from tools running stand-alone, and this is done in
<code>AbstractMarsToolAndApplication</code>.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="incrementPC()"><!-- --></A><H3>
incrementPC</H3>
<PRE>
public static void <B>incrementPC</B>()</PRE>
<DL>
<DD>Method to increment the Program counter in the general case (not a jump or branch).
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addRegistersObserver(java.util.Observer)"><!-- --></A><H3>
addRegistersObserver</H3>
<PRE>
public static void <B>addRegistersObserver</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;observer)</PRE>
<DL>
<DD>Each individual register is a separate object and Observable. This handy method
will add the given Observer to each one. Currently does not apply to Program
Counter.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="deleteRegistersObserver(java.util.Observer)"><!-- --></A><H3>
deleteRegistersObserver</H3>
<PRE>
public static void <B>deleteRegistersObserver</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;observer)</PRE>
<DL>
<DD>Each individual register is a separate object and Observable. This handy method
will delete the given Observer from each one. Currently does not apply to Program
Counter.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../mars/mips/hardware/RegisterAccessNotice.html" title="class in mars.mips.hardware"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?mars/mips/hardware/RegisterFile.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="RegisterFile.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>